请教各位大神,我想通过LISP凭空创建一个图块应该如何写
比如我现在需要生成一个图块,图形文件中本不存在这个块并且也没有制作图块的对象,我的想法是在block表内添加表来创建图块,但是不知道用什么函数来实现,请问各位大神能否给我指条路?或者说有没有更好的办法?最后实现的效果可能和天正插入图块的效果差不多 entmake 或者 vla-Add 都可以呀 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85342&extra=page%3D1%26filter%3Dtypeid%26typeid%3D109 提供个恩特马克的例子,仅供参考(defun c:tt (/ bn p p1 p2 p3 p4 pt)
(setq bn "飞翔标高")
(if (null (tblsearch "BLOCK" bn))
(progn
(setq p2 '(0 0 0))
(setq p1 (polar p2 (* pi 0.75) 2.))
(setq p3 (polar p2 (* pi 0.25) 2.))
(setq p4 (polar p3 pi 8.))
(setq pt (polar p4 (* pi 0.5) 1.))
(entmake
(list '(0 . "BLOCK")
(cons 2 bn)
'(70 . 2)
(cons 10 p2)
)
)
(entmake
(list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
'(90 . 4)
(cons 10 p1)
(cons 10 p2)
(cons 10 p3)
(cons 10 p4)
'(70 . 0)
)
)
(entmake
(list '(0 . "ATTDEF")
'(100 . "AcDbEntity")
'(100 . "AcDbText")
(cons 10 pt)
(cons 40 1.8)
(cons 1 "0.000")
'(100 . "AcDbAttributeDefinition")
(cons 3 "标高")
(cons 2 "标高")
'(70 . 0)
)
)
(entmake '((0 . "ENDBLK")))
)
)
(if (setq p (getpoint))
(progn
(entmakeX
(list '(0 . "INSERT")
'(100 . "AcDbEntity")
'(100 . "AcDbBlockReference")
(cons 2 bn)
(cons 10 p)
)
)
(vl-cmdf "attsync" "n" bn)
)
)
) soly2006 发表于 2023-12-11 16:18
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=85342&extra=page%3D1%26filter%3Dtypeid%26typeid%3D1 ...
感谢,我研究研究 bonny 发表于 2023-12-11 16:19
提供个恩特马克的例子,仅供参考
非常好的例子,能用上了,感谢 新建空白块并进入编辑,飞诗写的。
http://bbs.mjtd.com/thread-188899-1-1.html
页:
[1]