;;我是这样处理的,仅供参考
 - ;;1 取得线长or点取
- (defun GetCurveLeng (/ ent curve-obj leng en)
- (vl-load-com)
- (if (setq ent (entsel "\n>>>>>>拾取线条、尺寸、[回车]"))
- (progn
- (setq en (entget (car ent)))
- (cond
- ((wcmatch (LI_item 0 en) "DIMENSION")
- (if (or (wcmatch (LI_item 1 en) "*<>*") (= (LI_item 1 en) ""))
- (setq leng (LI_item 42 en))
- (setq leng (LI_item 1 en))
- )
- )
- (T
- (if (= (cdr (assoc 0 en)) "INSERT")
- (setq ent (nentselp "" (cadr ent)))
- )
- (setq curve-obj (vlax-ename->vla-object (car ent)))
- (redraw (car ent) 3)
- (setq leng (vlax-curve-getDistAtParam
- curve-obj
- (vlax-curve-getEndParam curve-obj)
- )
- )
- )
- )
- )
- (progn
- (initget 1)
- (setq leng (getpoint "\n 拾取型材一端点"))
- (setq leng (getdist leng "\n 拾取型材另一端点\n\n"))
- )
- )
- (setq leng (rtos leng 2 0))
- )
|