Advertisement
Guest User

Untitled

a guest
Mar 17th, 2012
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.99 KB | None | 0 0
  1. ;рисование многострочного текста по точке, высоте, типу привязки, ширине
  2. ;текстового блока и содержанию текста, ниже следует пример вызова
  3. ;(mkmtxt (getpoint) 3 "mc" 0.45 12 "teststring value")
  4. (defun mkmtxt (pt th just row_space cellw txtstr / base)
  5.  
  6.     (setq base (list
  7.             0 "MTEXT" 100 "AcDbEntity" 100 "AcDbMText" 1 txtstr 40 th 10 pt 11 pt      
  8.             41 cellw 44 row_space 50 0.0
  9.         ))
  10.    
  11.     (setq just
  12.         (cond
  13.             ((= just "tl") '(71 1))
  14.             ((= just "tc") '(71 2))
  15.             ((= just "tr") '(71 3))
  16.             ((= just "ml") '(71 4))
  17.             ((= just "mc") '(71 5))
  18.             ((= just "mr") '(71 6))
  19.             ((= just "bl") '(71 7))
  20.             ((= just "bc") '(71 8))
  21.             ((= just "br") '(71 9))
  22.         )
  23.     )
  24.  
  25.     (entmake (ccons (append base just)))
  26. )
  27.  
  28. ; Функция расставляет текст по спискам точек, привязок, значений текста,
  29. ; интервалов между вертикальными разделителями таблицы
  30. ;(drawtxtptstrlst ptlistx txth justlst (cadr (gtable)) interlist)
  31. (defun drawtxtptstrlst (ptlistx txth justlst ptstrlst interlist)
  32.     (mapcar '(lambda (x y z n) (if (not (eq "" z))
  33.         (drawtxt (if (eq y "bc") (ofstx x (/ n 2)) (ofstx x 1.5)) txth y z)
  34.         )) ptlistx justlst ptstrlst interlist
  35.     )
  36. )
  37.  
  38. ; Функция расставляет текст от исходного списка значений коодинат точек с приращением,
  39. ; по вертикали. Значения текстовых полей выбираются из прямоугольного массива
  40. ; значений (список списков)
  41. ;(mdrtxt2 ptlistx txth justlst (cdr (gtable)) interlist theight)
  42. (defun mdrtxt2 (ptlistx txth justlst str interlist theight)
  43.     (while str
  44.         (drawtxtptstrlst ptlistx txth justlst (car str) interlist)
  45.         (setq ptlistx (mapcar '(lambda (x) (ofsty x theight)) ptlistx))
  46.         (setq str (cdr str))
  47.     )
  48. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement