- 积分
- 91
- 精华
- 阅读权限
- 30
- 注册时间
- 2013-11-6
- 最后登录
- 1970-1-1
|
发表于 2015-3-16 22:54:34
|Error|
显示全部楼层
- (defun c:ff ( / ka01 pt1 KENT KENTLIST karc knea ka1 ka2 ka3 ka4 klj pt11 )
- (setq ka01 (entsel "请选择直线或圆弧:"))(if ka01
- (progn(setq KENT (car ka01))(setq KENTLIST (entget KENT))
- (if(not(or(eq "ARC" (cdr(assoc 0 KENTLIST)))(eq "LINE" (cdr(assoc 0 KENTLIST)))))
- (princ "\n您选择的不是直线或圆弧!") (progn(princ "\n按右键显示路径.")
- (setq pt1 (cadr ka01))(setq KENT (car ka01))(setq KENTLIST (entget KENT))
- (if (eq "ARC" (cdr(assoc 0 KENTLIST)))(setq karc t)(setq karc nil))
- (setq ka1 (vlax-ename->vla-object KENT))
- (if (<(distance pt1 (vlax-curve-getStartPoint ka1))(distance pt1
- (vlax-curve-getEndPoint ka1)))(setq knea t)(setq knea nil))
- (while ka1
- (setq ka2 (grread t 12 2) ka3 (car ka2) ka4 (cadr ka2))
- (if (= ka3 25)(if klj(setq klj nil)(setq klj t)))
- (cond ((= ka3 5)
- (progn (setq pt11 (vlax-curve-getClosestPointTo ka1 ka4 t))
- (if(not karc)(if knea
- (if (> (distance pt11 (vlax-curve-getEndPoint ka1)) 0.1)
- (vla-put-StartPoint ka1 (vlax-3d-point pt11)))
- (if(> (distance pt11 (vlax-curve-getStartPoint ka1)) 0.1)
- (vla-put-EndPoint ka1 (vlax-3d-point pt11)))
- )
- (if knea(vlax-put-property ka1 'StartAngle (angle (cdr(assoc 10 KENTLIST))pt11))
- (vlax-put-property ka1 'EndAngle (angle (cdr(assoc 10 KENTLIST))pt11))))
- (if klj (progn(redraw)(grdraw ka4 pt11 2 4)))
- )
- )
- ((= ka3 3)(setq ka1 nil))
- ;((= ka3 25)(princ ka3)(princ ka4))
- ;(t (princ ka2)(princ " "))
- ;(t (princ ka3)(princ ",")(princ ka4)(princ " "))
- )) )) )) (redraw) (princ)
- )
复制代码 |
|