我想创建一个新的块u
我有一个lisp例程来执行此操作,但我希望可以选择块的新名称或autocad生成的随机块名称。我该如何修改这个lisp例程来做到这一点?
我正在查看的命令是(nb)for new block。
谢谢
兰迪
BLKEDIT。lsp 您缺少了其中的一些功能。。。。 我已经更新了lisp文件。 我会以这样的方式主演:
(defun c:copyblk (/ vars ss en ed bn td fe nb)
(setq vars '(("CELTYPE" . "BYLAYER")
("THICKNESS" . 0.0)
("CELTSCALE" . 1.0)
("CECOLOR" . "BYLAYER")))
(foreach v vars
(if (getvar (car v))
(setvar (car v) (cdr v))))
(if (and (princ "\nSelect A Single Standard INSERT...")
(setq ss (ssget '((0 . "INSERT"))))
(= (sslength ss) 1)
(setq en (ssname ss 0)
ed (entget en)
bn (cdr (assoc 2 ed))
td (tblsearch "BLOCK" bn)
fe (cdr (assoc -2 td)))
(not (assoc 1 td))
(princ (strcat "\nRename Block " (strcase bn) " as:"))
(while (or (not nb)
(not (snvalid nb)))
(setq nb (strcase (getstring "\nNew Block Name: ")))))
(progn
(entmake (list (cons 0 "BLOCK")(cons 2 nb)(assoc 10 td)(assoc 70 td)))
(while fe
(entmake (entget fe))
(setq fe (entnext fe)))
(entmake (list (cons 0 "ENDBLK")(cons 8 "0")))
(entmod (subst (cons 2 nb) (assoc 2 ed) ed))
(entupd en)))
(prin1))
-大卫 大卫,
谢谢
您是否知道如何为块命名或让Autocad创建自己的块名(例如A$C7E723876)。就像复制并粘贴为块一样。
兰迪 试试附件,它应该适用于任何类型的块(属性、动态等)
复制块。lsp
我可以把它变成一个匿名街区。它们的名字以*U开头,然后是递增的数字。
我不知道ACAD用C美元做了什么。。。命名约定。
也许有人可以解释一下-大卫
页:
[1]