本帖最后由 作者 于 2006-1-14 20:06:15 编辑
楼上,情况不是像你说的这样的,但只是偶尔出现这种情况,重新打开CAD程序又没有问题了。
龙兄,帮忙看看这段程序错在哪里呀(有时真的是乱来的,根本没法用):
;★长度型标注断开 (defun zm (et x /) (cdr (assoc x (entget et)))) (defun pzm (nwzm y obj /) (entmod(subst(cons y nwzm)(assoc y (entget obj)) (entget obj))) ) (defun objnm (ent) (vla-get-objectname (vlax-ename->vla-object ent)) ) (defun maxlst (pts / js i x tt jl ds) (setq js 0 i 0) (repeat (length pts) (setq tt (nth i pts)) (mapcar '(lambda (x) (if (> (setq ds (distance tt x)) js) (setq js ds jl (list x tt))) )pts) (setq i (1+ i)))jl ) (defun c:db (/ ENT ENT1 GETPT JPT PT1 PT2 XL) (vl-load-com)(vl-cmdf "undo" "be") (if (setq ent (car (entsel "\n选择要断开的标注<退出>:"))) (progn (redraw ent 3) (setq getpt (getpoint "\n点取断开点:")) (redraw ent 4) (vl-cmdf ".copy" ent "" '(0 0) "@") (setq ent1 (entlast)) (setq pt1 (zm ent 13)pt2(zm ent 14)) (if (= (objnm ent) "AcDbAlignedDimension") (vl-cmdf ".xline" pt1 pt2 "") (vl-cmdf ".xline" "a" (angtos (zm ent 50) 0 4) pt1 "") ) (setq xl(entlast)) (pzm(setq jpt (vlax-curve-getClosestPointTo xl getpt))13 ent) (pzm jpt 14 ent1)(vl-cmdf ".erase" xl "")) )(vl-cmdf "undo" "e")(princ) ) |