fools 发表于 2017-8-11 22:32:50


;;获取PLINE线上选取点处的“段”信息
(DEFUN GetSegAtPline (obj p / P1 P2 PA PN)
(SETQ        pn (VLAX-CURVE-GETCLOSESTPOINTTO obj (TRANS p 1 0))
        pa (FIX (VLAX-CURVE-GETPARAMATPOINT obj pn))
        p1 (VLAX-CURVE-GETPOINTATPARAM obj pa) ;_选取段起点
        p2 (VLAX-CURVE-GETPOINTATPARAM obj (1+ pa)) ;_选取段终点
)
(list p1 p2) ;_返回需要的点或点集
)

;;测试
(DEFUN c:tt (/ e pts)
(IF (SETQ e (ENTSEL "\n选择多义线:"))
    (PROGN (SETQ pts (GetSegAtPline (VLAX-ENAME->VLA-OBJECT (CAR e)) (CADR e)))
           (COMMAND ".line" (car pts) (cadr pts) "")
    )
)
(PRINC)
)

被承包的东子 发表于 2017-8-12 08:50:19

itoboy 发表于 2017-8-11 20:24
很显然,你说的这些都是能查到的,请问跟我的问题有什么关系?

自己想去,真是无语,搞笑

itoboy 发表于 2017-8-12 13:02:37

被承包的东子 发表于 2017-8-12 08:50
自己想去,真是无语,搞笑

就是想不明白才来请教啊
烦请高手明示

llsheng_73 发表于 2017-8-15 09:53:03

如果只是要entsel所点击位置附近的最近点或者最近端点的话就比较简单,(defun tt(ent f / e p);;ent(曲线图元 点)f=T 最近端点 nil最近点
(vl-load-com)
(if(VL-CATCH-ALL-ERROR-P(setq e(car ent)p(VL-CATCH-ALL-APPLY'vlax-curve-getClosestPointTo ent)))
    nil
    (if f(vlax-curve-getpointatparam e(fix(+(vlax-curve-getparamatpoint e p)0.5)))p)))

clh521 发表于 2017-9-13 21:44:12

(setq mpt (osnap (last(entsel)) "_nod,_int,_nea"));;捕捉节点,交点,最近点

WSF001 发表于 2017-9-14 09:02:17

0,无
1,end
2,mid
4,cen
8,节点
16,象限点
32,int
64,插入点
128,垂直点。
256,切点
512,nea
1024,快捷
页: 1 [2]
查看完整版本: 执行ENTSEL时,如何设置对象捕捉?