[求助])lisp以一个图层名称来做定义块名称怎么实现
<p>我需要将一个图形变成自定义命名块,我选中需要变成块的图形后程序会自动识别将PATTERN_NAME图层里面的文字内容名称直接转换成块的名称。谁能帮我修改下吗 </p><p>(defun c:bb (/ ss name pt)<br/> (princ "\n请选择对象:")<br/> (setq ss (ssget))<br/> (if (= ss nil)<br/> (exit))<br/> (setq name (entsel "\请选择文字:"))<br/> (if (= name nil)<br/> (setq name (getvar "cdate"))<br/> (setq name (cdr (assoc 1 (entget (car name))))))<br/> (setq pt (getpoint "\n请指定点:"))<br/> (if (= pt nil)<br/> (setq pt (list 0 0 0)))<br/> (command "block" name pt ss "")<br/> (command "insert" name "s" "1" pt "")<br/> (princ)<br/> )</p> <p>;;==>PATTERN_NAME圖層裏面的文字內容名稱直接轉換成塊的名稱<br/>;;以上看不太懂</p><p>(defun C:BB (/ SS NAME PT)<br/> (if (and (setq SS (ssget))<br/> (setq<br/> NAME<br/> (cdr<br/> (assoc<br/> 1<br/> (entget (ssname (ssget "x" '((8 . "PATTERN_NAME"))) 0))<br/> )<br/> )<br/> )<br/> )<br/> (progn<br/> (setq PT (getpoint "\n請指定點: "))<br/> (if (= PT NIL)<br/> (setq PT (list 0 0 0))<br/> )<br/> (command "_.block" NAME "non" PT SS "")<br/> (command "_.insert" NAME "s" "1" "non" PT "")<br/> )<br/> )<br/> (princ)<br/>)</p><p></p> 不能用,咋的,参数类型错误;;==> ATTERN_NAME圖層裏面的文字內容名稱直接轉換成塊的名稱
;;以上看不太懂
(defun C:BB (/ SS NAME PT)
(if (and (setq SS (ssget))
(setq
NAME
(cdr
(assoc
1
(entget (ssname (ssget "x" '((8 . "PATTERN_NAME"))) 0))
)
)
)
)
(progn
(setq PT (getpoint "\n請指定點: "))
(if (= PT NIL)
(setq PT (list 0 0 0))
)
(command "_.block" NAME "non" PT SS "")
(command "_.insert" NAME "s" "1" "non" PT "")
)
)
(princ)
)
這個程式,為什麼有時可以用,有時不可以用 ,
页:
[1]