在继续之前,非常感谢您的技能和时间!
我真的很喜欢你处理积木的方式。我有一个使用insert的有效解决方案,但后来我不得不处理我不想处理的缩放和旋转,而你的解决方案在动态块和vis状态下工作得更好。
然而,关于PLINEWID,我无法使你的lisp正常工作。在设置plw后,它似乎不想将值设置为PLINEWID。。。不知道为什么,因为我尝试了不同的方法。
无论如何,我添加了椭圆支持,现在我将处理图案填充。
- (defun c:qwremake (/ s en e plw)
- (if (and (setq s (entsel "\nSelect any object: "))
- (wcmatch (setq en (cdr (assoc 0 (setq e (entget (car s))))))
- "LINE,CIRCLE,ARC,ELLIPSE,*POLYLINE,INSERT"
- )
- )
- (progn
- ;; layer
- (setvar 'CLAYER (cdr (assoc 8 e)))
- ;; linetype
- (if (cdr (assoc 6 e))
- (setvar 'CELTYPE (cdr (assoc 6 e)))
- (setvar 'CELTYPE "ByLayer")
- )
- ;; color
- (if (cdr (assoc 62 e))
- (setvar 'CECOLOR (itoa (cdr (assoc 62 e))))
- (setvar 'CECOLOR "ByLayer")
- )
- ;; polyline width
- (if (cdr (assoc 43 e))
- (setvar 'PLINEWID (cdr (assoc 43 e)))
- )
- (cond ((wcmatch en "LINE,CIRCLE,ARC,ELLIPSE")
- (command en)
- ) ;end condition
- ((eq en "INSERT")
- (command "_.copy"
- s
- ""
- (cadr s)
- "\"
- )
- ) ;end condition
- ((wcmatch en "*POLYLINE")
- (command "pline")
- ) ;end condition
- )
- )
- )
- (prompt "\nObject not compatible.")
- (princ)
- )
非常感谢。 |