掉线了。。
CAD2006测试通过批量打断
- (defun c:ny(/ center circle index lineobj point point_01 point_02 radius ssline syh center_lst)
- (vl-load-com)
- (setvar "cmdecho" 0)
- (princ "\n请选取要处理的直线对象")
- (if(setq ssLine (ssget '((0 . "LINE"))))
- (progn (setq syh 0)
- (vl-cmdf ".zoom" "e")
- (repeat (sslength ssLine)
- (entmod(setq LineObj(ssname ssLine syh)syh(1+ syh)
- point(entget LineObj)
- LineObj(vlax-ename->vla-object LineObj)
- Point_01(cdr(assoc 10 point))
- Point_01(list(car Point_01)(cadr Point_01)0)
- Point_02(cdr(assoc 11 point))
- Point_02(list(car Point_02)(cadr Point_02)0)
- point(subst(cons 10 Point_01)(assoc 10 point)point)
- point(subst(cons 11 Point_02)(assoc 11 point)point)))
- (if(setq ssCircle(ssget"F"(list Point_01 Point_02)'((0 . "CIRCLE"))))
- (progn (setq index 0 center_lst '())
- (repeat (sslength ssCircle)
- (entmod(setq Circle (entget(ssname ssCircle index))index(1+ index)
- radius(cdr(assoc 40 Circle))
- Center(vlax-curve-getClosestPointTo LineObj (cdr(assoc 10 Circle)) t)
- center(if(<(distance Point_01 Center)radius)Point_01
- (if(<(distance Point_02 Center)radius)Point_02 Center))
- circle(subst(cons 10 Center)(assoc 10 Circle)Circle)))
- (setq center_lst (cons Center center_lst))
- )
- (if (/= center_lst '())(mapcar '(lambda(x)(vl-cmdf "_.break" x x )) center_lst))
- )))
- (vl-cmdf ".zoom" "p")
- (alert "完成!")
- ))
- (princ)
- )
|