本帖最后由 ZZXXQQ 于 2015-6-26 16:17 编辑
;近似画法 - (defun c:tt ()
- (setvar "CMDECHO" 0)
- (if (setq ln (getdist "\n长度: "))
- (if (setq ss (ssget '((0 . "ARC,*POLYLINE,SPLINE"))))
- (repeat (setq i (sslength ss))
- (setq en (ssname ss (setq i (1- i))))
- (setq ent (entget en))
- (setq ptlst (list
- (if (= (cdr(assoc 0 ent)) "ARC")
- (polar (cdr(assoc 10 ent)) (cdr(assoc 51 ent)) (cdr(assoc 40 ent)))
- (cdr(assoc 10 (reverse ent)))
- )
- ))
- (command "_.MEASURE" en ln)
- (setq sspt (ssget "P"))
- (repeat (setq j (sslength sspt))
- (setq ptlst (cons (cdr(assoc 10 (entget(ssname sspt (setq j (1- j)))))) ptlst))
- )
- (command "_.ERASE" sspt "")
- (if (= (cdr(assoc 0 ent)) "ARC")
- (command "_.PLINE" (polar (cdr(assoc 10 ent)) (cdr(assoc 50 ent)) (cdr(assoc 40 ent))))
- (command "_.PLINE" (cdr(assoc 10 ent)))
- )
- (foreach pt ptlst (command pt))
- (command "")
- )
- )
- )
- (setvar "CMDECHO" 1)
- (princ)
- )
|