ll_j
发表于 2014-5-19 08:15:31
z1234567890 发表于 2014-5-19 07:52 static/image/common/back.gif
entmake 这个不能设置对齐点。比如上中。 下中。这些问题。DXF里好像没有信息只有一个11 信息。。。不好设置 ...
其实,不管从程序的稳定性还是执行速度,entmake都比command更有优势。
z1234567890
发表于 2014-5-19 08:42:38
有没有方法设置文字的上中下中正中。这些对齐问题。用entmake
davide888
发表于 2014-5-19 09:21:25
ll_j
发表于 2014-5-19 09:50:29
z1234567890 发表于 2014-5-19 08:42 static/image/common/back.gif
有没有方法设置文字的上中下中正中。这些对齐问题。用entmake
当然有办法,左中右和上中下分别是72和73组码表示,看帮助文件就可以,基本上任何版本acad都有关于dxf的内容(开发者章节或附录中),设置也不困难。
关于text的10、11组码,需要说明一下,这两者在实用中多数只有一个是关键的(对齐和调整除外),而在这许多组合中,只有在默认的左(72=0)基线(73=0)对齐时,组码10才是关键的,其它都是11组码为关键组码,虽然另一个非关键组码在entmake也是必须,但其值是不控制的。
z1234567890
发表于 2014-5-19 12:04:48
给个例子吧。
那个11码还需要计算点的位置吗。
ll_j
发表于 2014-5-19 14:32:50
z1234567890 发表于 2014-5-19 12:04 static/image/common/back.gif
给个例子吧。
那个11码还需要计算点的位置吗。
一般情况,10、11点只需要算一个。
(defun mktext(str pt10 j72 j73 / sty);写文字
(entmake
(list
'(0 . "TEXT")
(cons 1 str)
(cons 10 pt10)
(cons 11 pt10)
(cons 7 (setq sty(getvar "textstyle")))
(cons 40 (getvar "textsize"))
(cons 41 (cdr (assoc 41 (tblsearch "style" sty))))
; (cons 50 alf)
(cons 51 (cdr (assoc 50 (tblsearch "style" sty))))
'(71 . 0)
(cons 72 j72)
(cons 73 j73)
)
)
)
cqh746952
发表于 2014-5-20 23:39:34
我也觉得好奇怪啊。不知道怎么回事。
z1234567890
发表于 2014-5-21 10:05:47
ll_j 发表于 2014-5-19 14:32 static/image/common/back.gif
一般情况,10、11点只需要算一个。
谢谢这位仁兄分享。后面的72 73怎么变才对应着不同的位置呢。
z1234567890
发表于 2014-5-21 10:07:50
(COND ((= MODE 1) '((72 . 0) (73 . 1)))
((= MODE 2) '((72 . 1) (73 . 1)))
((= MODE 3) '((72 . 2) (73 . 1)))
((= MODE 4) '((72 . 0) (73 . 2)))
((= MODE 5) '((72 . 1) (73 . 2)))
((= MODE 6) '((72 . 2) (73 . 2)))
((= MODE 7) '((72 . 0) (73 . 3)))
((= MODE 8) '((72 . 1) (73 . 3)))
((= MODE 9) '((72 . 2) (73 . 3)))
)
ll_j
发表于 2014-5-21 11:08:26
z1234567890 发表于 2014-5-21 10:05 static/image/common/back.gif
谢谢这位仁兄分享。后面的72 73怎么变才对应着不同的位置呢。
这要看看帮助文件了。DXF的帮助在那个版本的ACAD中都有,本论坛也有下载。
各版本的DXF会有少许差别,但基本元素是不变的。
理解DXF对于用户编程来说,可能比看函数更有用,因为DXF更能对应ACAD的实体和本质。
看联机帮助是个好习惯,比抱着书本要强得多。