马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我的程序只能是单根的多义线,如果多义线有转折,则不对了,谁帮我修改一下。
- (defun c:tpl (/ p1 p2 l1 l2 w1 w2 a1 a2 pt1 pt2 pt11 pt12 pt21 pt22 ps1 ps2
- p0 mp1 mp2
- )
- (begin0)
- (setq p1 (entsel)
- p2 (entsel)
- )
- (setq l1 (entget (car p1))
- l2 (entget (car p2))
- )
- (setq w1 (cdr (assoc 40 l1))
- w2 (cdr (assoc 40 l2))
- )
- (command "explode" p1)
- (setq a1 (entlast))
- (command "explode" p2)
- (setq a2 (entlast))
- (setq pt1 (entget a1)
- pt2 (entget a2)
- pt11 (cdr (assoc 10 pt1))
- pt12 (cdr (assoc 11 pt1))
- pt21 (cdr (assoc 10 pt2))
- pt22 (cdr (assoc 11 pt2))
- ps1 (car (cdr p1))
- ps2 (car (cdr p2))
- )
- (setq p0 (inters
- pt11
- pt12
- pt21
- pt22
- nil
- )
- )
- (setq mp1 (list 10 (car p0) (cadr p0))
- mp2 (list 11 (car p0) (cadr p0))
- )
- (if (or
- (< (* (- (car pt11) (car ps1)) (- (car p0) (car ps1))) 0)
- (< (* (- (cadr pt11) (cadr ps1)) (- (cadr p0) (cadr ps1))) 0)
- )
- (setq pt1 (subst
- mp2
- (assoc 11 pt1)
- pt1
- )
- )
- (setq pt1 (subst
- mp1
- (assoc 10 pt1)
- pt1
- )
- )
- )
- (entmod pt1)
- (if (or
- (< (* (- (car pt21) (car ps2)) (- (car p0) (car ps2))) 0)
- (< (* (- (cadr pt21) (cadr ps2)) (- (cadr p0) (cadr ps2))) 0)
- )
- (setq pt2 (subst
- mp2
- (assoc 11 pt2)
- pt2
- )
- )
- (setq pt2 (subst
- mp1
- (assoc 10 pt2)
- pt2
- )
- )
- )
- (entmod pt2)
- (command "pedit" a1 "y" "w" (rtos w1 2 2) "")
- (command "pedit" a2 "y" "w" (rtos w2 2 2) "")
- (end0)
- (princ)
- )
|