摆脱旋转/缩放
我相信不久前我在这个网站上找到了这个LISP,它实际上非常好用。它用于复制和插入块,这也需要新的属性定义。我需要帮助的是,每次复制块时,插入后它都会要求缩放和旋转。如果可能的话,我想去掉这两个步骤。
感谢您的帮助!
;;; Create a duplicate block definition
(defun c:DD (/ en ed bname nname fname fdia)
(if (and (setq en (entsel "\nPick block: "))
(setq ed (entget (car en)))
(= (cdr (assoc 0 ed)) "INSERT")
(setq nname (getstring nil "\nNew name: "))
) ;_ end of and
(progn
(setq bname (cdr (assoc 2 ed))
fname (strcat (getvar "TEMPPREFIX") nname ".DWG")
) ;_ end of setq
(if (findfile fname)
(vl-file-delete fname)
) ;_ end of if
(setq fdia (getvar "FILEDIA"))
(setvar "FILEDIA" 0)
(command ".-WBLOCK" fname bname)
(command ".-INSERT" fname)
(setvar "FILEDIA" fdia)
) ;_ end of progn
) ;_ end of if
(princ)
) ;_ end of defun 丑陋的但会奏效。。。。
;;; Create a duplicate block definition
(defun c:DD (/ en ed bname nname fname fdia)
(if (and (setq en (entsel "\nPick block: "))
(setq ed (entget (car en)))
(= (cdr (assoc 0 ed)) "INSERT")
(setq nname (getstring nil "\nNew name: "))
) ;_ end of and
(progn
(setq bname (cdr (assoc 2 ed))
fname (strcat (getvar "TEMPPREFIX") nname ".DWG")
) ;_ end of setq
(if (findfile fname)
(vl-file-delete fname)
) ;_ end of if
(setq fdia (getvar "FILEDIA"))
(setvar "FILEDIA" 0)
(command ".-WBLOCK" fname bname)
(command ".-INSERT" fname (getpoint) 1 1 0)
(setvar "FILEDIA" fdia)
) ;_ end of progn
) ;_ end of if
(princ)
) ;_ end of defun
所以你想要的只是一个和另一个名字不同的街区一样的街区? 我有一个具有3个属性的块,我需要在图形的不同部分重复复制/粘贴不同的信息。
插入块时,我真正需要的唯一输入是块名和另一个属性,我在创建块时设置了这个属性。
这个lisp就是这样做的,除了当我插入块时,它要求缩放/旋转,这对我来说只是几个不必要的步骤
页:
[1]