马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
;plw(plw)线宽匹配,用undo——Back 恢复------lxx-----2001.1.[2001.4]
;对line,arc,circle,pline, 有效。
;请保留princ信息行。
;main

- (DEFUN C:plw (/ t went wentn wid s i ent entn)
- (princ "线宽匹配------lxx-----2001.1.22")
- (princ "\n请选择匹配源:")(setq t "true")
- (command "undo" "m")
- (while t
- (setq went (car (entsel)))
- (if went (setq wentn (cdr(assoc 0 (entget went)))) )
- (cond
- ((not went) (princ "\n未选中实体,请再选择:"))
- ((or (= wentn "POLYLINE")(= wentn "LWPOLYLINE"))
- (setq wid (cdr (assoc 40 (entget went)))) ;get width
- (setq t nil)
- )
- (t (setq wid 0)(setq t nil))
- )
- );while end
- (princ "\n线宽=")(princ wid)
- (princ "\n选择需要匹配的实体:")
- (setq s (ssget '((0 . "POLYLINE,LWPOLYLINE,LINE,ARC,CIRCLE")) ) i 0)
- (repeat (sslength s)
- (setq ent (ssname s i) entn (cdr (assoc 0 (entget ent))))
- (cond
- ((or(= entn "POLYLINE")(= entn "LWPOLYLINE"))(command "pedit" ent "w" wid ""))
- ((or (= entn "LINE") (= entn "ARC"))
- (command "pedit" ent "y" "w" wid ""))
- ((= entn "CIRCLE")
- (progn
- (setq cen (cdr (assoc 10 (entget ent)))
- rad (cdr (assoc 40 (entget ent)))
- d1 (- (* 2 rad) wid)
- d2 (+ (* 2 rad) wid)
- )
- (command "donut" d1 d2 cen "") ;;;erase circle ,create donut
- (entdel ent)
- ))
- ) ;;;cond
- (setq i (+ 1 i))
- ) ;repeat
- (princ "\n用undo——Back 恢复")(princ)
- )
- (princ "plw线宽匹配------lxx-----2001.1.22")(princ)
|