现有块另存为新块
请教怎么个思路? 在不炸开块的情况下实现?在当前打开的图形中,存在一个名为“家具”的块。编写一个程序,选择该块,复制出一个内容一样,块名不一样的新块。
进入块编辑器,然后将块另存为。命令是 BSAVEAS
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=178798&highlight=%D6%D8%C3%FC%C3%FB ;;来源论坛,多年前收集
;;图块克隆
(defun c:tkkl (/ e en j new old ss)
(defun dxf (a b) (cdr (assoc a b)))
(setvar "cmdecho" 0)
(command "undo" "group")
(if
(and (setq ss (ssget '((0 . "INSERT"))))
(setq new (getstring "\n输入新名称:"))
(not (tblsearch "block" new))
)
(progn (setq old (dxf 2 (entget (ssname ss 0))))
(command "-insert" old '(0 0) "1" "1" 0)
(command "explode" (entlast))
(command "-block" new '(0 0) "P" "")
(setq j 0)
(repeat (sslength ss)
(setq e(ssname ss j)
en (entget
e
)
en (subst (cons 2 new) (assoc 2 en) en)
)
(entmod en)
(setq j (1+ j))
)
)
)
(command "undo" "end")
(princ)
)
liunian0524 发表于 2023-12-17 08:01
;;来源论坛,多年前收集
;;图块克隆
(defun c:tkkl (/ e en j new old ss)
感谢, 能不能不炸开图形呢 把原块WBLOCK出去,改DWG名字再插回来。其他方式将会丢失动态块参数。 mokson 发表于 2023-12-16 08:14
进入块编辑器,然后将块另存为。命令是 BSAVEAS
command 不能用 BSAVEAS kozmosovia 发表于 2023-12-19 09:44
把原块WBLOCK出去,改DWG名字再插回来。其他方式将会丢失动态块参数。
感谢 感谢 动态块,可以把块copy到新图,改块名,再copy回来 alexmai 发表于 2023-12-20 18:12
动态块,可以把块copy到新图,改块名,再copy回来
不需要copyobjects到新图,可以用DBX,不过对很多人来说有门槛,不如command wblock/insert来得容易。
页:
[1]
2