mochaolong 发表于 2007-12-14 23:01:36

[编程申请]:entmake创建单行文字

请各位帮忙这个问题很麻烦,在使用ENTMAKE创建单行文字的时候,如果单行文字是默谁的对齐方式的话,那创建就没什么麻烦.
但是如果需要创建非默认对齐方式的文本(如正中\,右上\,右下)就出现问题了,写好对齐方式组码的值,以及对齐点的坐标,但是无法求出插入点的坐标.使得无法创建指定对齐方式的单行文字,即使创建了也自动对齐到了(0,0,0)这个位置.

不知除了使用(command)方法外还有其它方式创建指定对齐方式的单行文本吗?

zxq0220 发表于 2007-12-15 21:05:42


;entmake建立单行文本晓东 zxq0220 2007.12.15
(defun mktext (txt pt hi ang style layer al)
(setq al (strcase al nil) pt1 '(0.0 0.0 0.0))
(cond
((= al "TL") (setq a72 0 a73 3 pt1 pt))
((= al "TC") (setq a72 1 a73 3 pt1 pt))
((= al "TR") (setq a72 2 a73 3 pt1 pt))
((= al "ML") (setq a72 0 a73 2 pt1 pt))
((= al "MC") (setq a72 1 a73 2 pt1 pt))
((= al "MR") (setq a72 2 a73 2 pt1 pt))
((= al "L") (setq a72 0 a73 0 pt1 pt))
((= al "C") (setq a72 1 a73 0 pt1 pt))
((= al "R") (setq a72 2 a73 0 pt1 pt))
((= al "BL") (setq a72 0 a73 1 pt1 pt))
((= al "BC") (setq a72 1 a73 1 pt1 pt))
((= al "BR") (setq a72 2 a73 1 pt1 pt))
((= al "A") (setq a72 3 a73 0 pt1 (getpoint pt "\nNextPoint :")))
((= al "M") (setq a72 4 a73 0 pt1 pt))
((= al "F") (setq a72 5 a73 0 pt1 (getpoint pt "\nNextPoint :")))
(T (setq a72 0 a73 0 pt1 pt))
)
(entmake
(list
   '(0 . "TEXT")
   '(100 . "AcDbEntity")
   '(67 . 0)
   '(410 . "Model")
   (cons 8 layer)
   '(100 . "AcDbText")
   (cons 10 pt)
   (cons 40 hi)
   (cons 1 txt)
   (cons 50 ang)
   '(41 . 1.0)
   '(51 . 0.0)
   (cons 7 style)
   '(71 . 0)
   (cons 72 a72)
   (cons 11 pt1)
   '(210 0.0 0.0 1.0)
   '(100 . "AcDbText")
   (cons 73 a73)
)
)
)

mochaolong 发表于 2007-12-16 12:31:03

谢谢二楼朋友的代码,通过测试已经可以生成单行文字. 谢谢二楼朋友的代码,通过测试已经可以生成单行文字. *-*3

tm010111 发表于 2009-9-26 02:41:10

用entmake生成的字体,宽度比例好像就是1.0,能改成文字样式的比例么,譬如0.7

hnzkhyyl 发表于 2023-9-26 21:59:07

zxq0220 发表于 2007-12-15 21:05
;entmake建立单行文本晓东 zxq0220 2007.12.15
(defun mktext (txt pt hi ang style layer al)
(set ...

怎么使用快捷键呢
页: [1]
查看完整版本: [编程申请]:entmake创建单行文字