ForYang 发表于 2021-4-15 20:34:00

如何创建块?

请问各位大神,如何利用lisp或vlisp创建块?具体功能是随便打开dwg文件创建带属性的块,再插入块。
(command "insert" ...)貌似要求现有块才能插入,不知道如何解决。

ForYang 发表于 2021-4-18 14:51:56

(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)
)

start4444 发表于 2021-4-16 10:14:01

(command "insert" "块文件路径")
属性块创建麻烦,直接插入文件就好了

ForYang 发表于 2021-4-17 10:49:40

start4444 发表于 2021-4-16 10:14
(command "insert" "块文件路径")
属性块创建麻烦,直接插入文件就好了

我的意思是随便打开一个空白dwg文件,直接运行命令生成块,如果用(command "insert")需要输入块明,而这个文件里面本就没有块,没法输入呀

he378980280 发表于 2021-4-19 09:14:29

创建属性块是 ATTDEF命令 command "ATTDEF" ""试试

迷失2004 发表于 2021-4-19 14:32:28

我是建了个文件夹,设置为 支持文件搜索路径;把图形存在文件夹里 再插入dwg文件名name
或者在name前加dwg文件的路径
你试试 是不是你要的效果
(command "-insert" (strcat name ".dwg") (getpoint "插入点") 1 0)       ;块不打散
(command "-insert" (strcat "*" name ".dwg") (getpoint "插入点") 1 0);块打散

luqzcm 发表于 2021-4-20 09:33:09

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=92482&highlight=entmake

entmake看看
页: [1]
查看完整版本: 如何创建块?