- 积分
- 3375
- 明经币
- 个
- 注册时间
- 2013-9-22
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
自己做了个工具箱,在32系统下 cad2004运行正常。换电脑后装64位win7 因为没有64位的2004,装的2009.结果大多数程序运行不正常,现在截取其中一个小程序,如下,大家帮忙分析下怎么解决??
此程序2004 xp运行正常 2009 win7 64位提示无效命令。
;****************************************************连接断线程序
(defun c:lj (/ ent ent1 pt1 pt2 pt3 pt4 ptlst ptls kj fltrad memb sel sel1 x y)
(setq fltrad (getvar "filletrad"))(setvar "filletrad" 0)
(setq sel (entsel"\n拾取第一条线<LINE,PLINE,ARC>:") ent (car sel)
sel1 (entsel"\n拾取另一条线<LINE,PLINE,ARC>:")ent1 (car sel1))
(setq pt1(vlax-curve-getStartPoint ent)
pt3(vlax-curve-getStartPoint ent1)
pt2(vlax-curve-getEndPoint ent)
pt4(vlax-curve-getEndPoint ent1))
(if(and(and(=(cdr(assoc 0(entget ent)))"LINE")
(=(cdr(assoc 0(entget ent1)))"LINE"))
(and(null(inters pt1 pt2 pt3 pt4 nil))
(equal(angle pt1 pt3)(angle pt1 pt4)0.0000001))
)
(progn
(setq ptlst (list (list pt1 pt3)
(list pt1 pt4)
(list pt2 pt3)
(list pt2 pt4)
)
)
(mapcar '(lambda (x)
(setq kj (cons(apply 'distance x)kj))
)
ptlst
)
(mapcar '(lambda (y)
(if (=(apply 'distance y)(apply 'max kj))
(setq ptls y)
)
)ptlst
)
(cond((/=(setq memb (member(car ptls)(list pt1 pt2)))nil)
(if(=(cadr ptls)pt3)
(vla-put-endpoint (vlax-ename->vla-object ent1)
(vlax-3d-point(car ptls)))
(vla-put-startpoint (vlax-ename->vla-object ent1)
(vlax-3d-point(car ptls)))
)(vl-cmdf ".erase" ent "")
)
(t(if(=(car ptls)pt1)
(vla-put-endpoint (vlax-ename->vla-object ent)
(vlax-3d-point(cadr ptls)))
(vla-put-startpoint (vlax-ename->vla-object ent)
(vlax-3d-point(cadr ptls)))
)(vl-cmdf ".erase" ent1 ""))))
(vl-cmdf ".fillet" sel sel1)
)(setvar "filletrad" fltrad)(princ)
) |
|