Nkey 发表于 2022-7-13 21:44:24

现有区块的名称

大家好。创建显示现有块名称的文字或引线的最快方法是什么?我知道我可以创建一个字段,选择对象和名称,但我有很多不同的块需要命名。我试图创建一个宏来自动化这个过程,但没有成功。有一个口齿不清可以做到这一点吗?

mhupp 发表于 2022-7-13 22:53:39

这是我用来在块上创建文本的
 
;;----------------------------------------------------------------------------;;
;; LABLE BLOCKS BY NAME MIDPOINT OF BOUNDINB BOX
(defun C:BLKNAME (/ SS e Name LL UR MPT)
(if (setq SS (ssget '((0 . "INSERT"))))
    (foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex SS)))
      (setq Name (cdr (assoc 2 (entget e))))
      (vla-getboundingbox (vlax-ename->vla-object e) 'minpt 'maxpt)
      (setq LL (vlax-safearray->list minpt)
            UR (vlax-safearray->list maxpt)
            MPT (mapcar '/ (mapcar '+ LL UR) '(2 2 2))
      )
      (vl-cmdf "_.Text" "J" "MC" "_non" MPT "0.250" "0" Name) ;change 0.25 to text height you want.
    )
    (prompt "\nNo Blocks Selected")
)
(princ)
)
页: [1]
查看完整版本: 现有区块的名称