如何创建块?
请问各位大神,如何利用lisp或vlisp创建块?具体功能是随便打开dwg文件创建带属性的块,再插入块。(command "insert" ...)貌似要求现有块才能插入,不知道如何解决。
(defun c:IBlock()
(vl-load-com)
(setq acadobj (vlax-get-acad-object))
(setq dwgobj (vla-get-activedocument acadobj))
(setq mspace (vla-get-modelspace dwgobj))
;;;建立图块
(setq ip (vlax-3d-point (list 0 0 0)))
(setq blocks (vla-get-blocks dwgobj))
(setq blockobj (vla-add blocks ip "Test"))
;;;加入圆到图块
(setq center (vlax-3d-point (list 0 0 0)))
(setq radius 1)
(setq circleobj (vla-addcircle blockobj center radius))
;;;插入图块
(setq insertionpnt (vlax-3d-point (getpoint)))
(setq blockrefobj (vla-insertblock mspace insertionpnt "Test" 1 1 1 0))
(vla-zoomextents acadobj)
) (command "insert" "块文件路径")
属性块创建麻烦,直接插入文件就好了 start4444 发表于 2021-4-16 10:14
(command "insert" "块文件路径")
属性块创建麻烦,直接插入文件就好了
我的意思是随便打开一个空白dwg文件,直接运行命令生成块,如果用(command "insert")需要输入块明,而这个文件里面本就没有块,没法输入呀 创建属性块是 ATTDEF命令 command "ATTDEF" ""试试 我是建了个文件夹,设置为 支持文件搜索路径;把图形存在文件夹里 再插入dwg文件名name
或者在name前加dwg文件的路径
你试试 是不是你要的效果
(command "-insert" (strcat name ".dwg") (getpoint "插入点") 1 0) ;块不打散
(command "-insert" (strcat "*" name ".dwg") (getpoint "插入点") 1 0);块打散 http://bbs.mjtd.com/forum.php?mod=viewthread&tid=92482&highlight=entmake
entmake看看
页:
[1]