Nico 发表于 2023-12-15 21:48:47

现有块另存为新块

请教怎么个思路? 在不炸开块的情况下实现?
在当前打开的图形中,存在一个名为“家具”的块。编写一个程序,选择该块,复制出一个内容一样,块名不一样的新块。


mokson 发表于 2023-12-16 08:14:10

进入块编辑器,然后将块另存为。命令是 BSAVEAS

3278 发表于 2023-12-16 15:55:51

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=178798&highlight=%D6%D8%C3%FC%C3%FB

liunian0524 发表于 2023-12-17 08:01:28

;;来源论坛,多年前收集
;;图块克隆
(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)
)

Nico 发表于 2023-12-18 21:31:43

liunian0524 发表于 2023-12-17 08:01
;;来源论坛,多年前收集
;;图块克隆
(defun c:tkkl (/ e en j new old ss)


感谢, 能不能不炸开图形呢

kozmosovia 发表于 2023-12-19 09:44:22

把原块WBLOCK出去,改DWG名字再插回来。其他方式将会丢失动态块参数。

Nico 发表于 2023-12-19 19:13:11

mokson 发表于 2023-12-16 08:14
进入块编辑器,然后将块另存为。命令是 BSAVEAS

command 不能用   BSAVEAS      

Nico 发表于 2023-12-19 19:20:10

kozmosovia 发表于 2023-12-19 09:44
把原块WBLOCK出去,改DWG名字再插回来。其他方式将会丢失动态块参数。

感谢   感谢

alexmai 发表于 2023-12-20 18:12:28

动态块,可以把块copy到新图,改块名,再copy回来

kozmosovia 发表于 2023-12-20 23:56:16

alexmai 发表于 2023-12-20 18:12
动态块,可以把块copy到新图,改块名,再copy回来

不需要copyobjects到新图,可以用DBX,不过对很多人来说有门槛,不如command wblock/insert来得容易。
页: [1] 2
查看完整版本: 现有块另存为新块