Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;рисование многострочного текста по точке, высоте, типу привязки, ширине
- ;текстового блока и содержанию текста, ниже следует пример вызова
- ;(mkmtxt (getpoint) 3 "mc" 0.45 12 "teststring value")
- (defun mkmtxt (pt th just row_space cellw txtstr / base)
- (setq base (list
- 0 "MTEXT" 100 "AcDbEntity" 100 "AcDbMText" 1 txtstr 40 th 10 pt 11 pt
- 41 cellw 44 row_space 50 0.0
- ))
- (setq just
- (cond
- ((= just "tl") '(71 1))
- ((= just "tc") '(71 2))
- ((= just "tr") '(71 3))
- ((= just "ml") '(71 4))
- ((= just "mc") '(71 5))
- ((= just "mr") '(71 6))
- ((= just "bl") '(71 7))
- ((= just "bc") '(71 8))
- ((= just "br") '(71 9))
- )
- )
- (entmake (ccons (append base just)))
- )
- ; Функция расставляет текст по спискам точек, привязок, значений текста,
- ; интервалов между вертикальными разделителями таблицы
- ;(drawtxtptstrlst ptlistx txth justlst (cadr (gtable)) interlist)
- (defun drawtxtptstrlst (ptlistx txth justlst ptstrlst interlist)
- (mapcar '(lambda (x y z n) (if (not (eq "" z))
- (drawtxt (if (eq y "bc") (ofstx x (/ n 2)) (ofstx x 1.5)) txth y z)
- )) ptlistx justlst ptstrlst interlist
- )
- )
- ; Функция расставляет текст от исходного списка значений коодинат точек с приращением,
- ; по вертикали. Значения текстовых полей выбираются из прямоугольного массива
- ; значений (список списков)
- ;(mdrtxt2 ptlistx txth justlst (cdr (gtable)) interlist theight)
- (defun mdrtxt2 (ptlistx txth justlst str interlist theight)
- (while str
- (drawtxtptstrlst ptlistx txth justlst (car str) interlist)
- (setq ptlistx (mapcar '(lambda (x) (ofsty x theight)) ptlistx))
- (setq str (cdr str))
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement