不客气,霍辛!
作为演示,我的建议是在运行代码之前测试有效的选择集和有效的块名。。。
- (defun c:demo (/ BEN BENIP BENL BN BSS DEG I NBFN XSC YSC)
- (prompt "\n*REPLACE BLOCK* ")
- (if (and (setq BN (getstring "\nEnter block name to replace: "))
- (setq NBFN (getstring "\nEnter block name to replace with: "))
- (setq BSS (ssget "x" (list (cons 2 BN))))
- (or (tblsearch "BLOCK" NBFN)
- (findfile NBFN)
- );; or
- );; and
- (repeat (setq I (sslength BSS))
- (setq BEN (ssname BSS (setq I (1- I)))
- BENL (entget BEN)
- BENIP (cdr (assoc 10 BENL))
- DEG (* 180.0 (/ (cdr (assoc 50 BENL)) pi));; rotation
- XSC (cdr (assoc 41 BENL));; x scale
- YSC (cdr (assoc 42 BENL));; y scale
- )
- (entdel BEN)
- (command "_.insert" NBFN BENIP XSC YSC DEG)
- );; repeat
- );; if
- (princ)
- );; demo
HTH公司
亨里克 |