ZZombie 发表于 2022-7-6 14:16:51

摆脱旋转/缩放

我相信不久前我在这个网站上找到了这个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

Commandobill 发表于 2022-7-6 15:05:54

丑陋的但会奏效。。。。
 
;;; 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
 
所以你想要的只是一个和另一个名字不同的街区一样的街区?

ZZombie 发表于 2022-7-6 15:32:57

我有一个具有3个属性的块,我需要在图形的不同部分重复复制/粘贴不同的信息。
 
插入块时,我真正需要的唯一输入是块名和另一个属性,我在创建块时设置了这个属性。
 
这个lisp就是这样做的,除了当我插入块时,它要求缩放/旋转,这对我来说只是几个不必要的步骤
页: [1]
查看完整版本: 摆脱旋转/缩放