明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: itoboy

[提问] 执行ENTSEL时,如何设置对象捕捉?

[复制链接]
发表于 2017-8-11 22:32:50 | 显示全部楼层

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

  10. ;;测试
  11. (DEFUN c:tt (/ e pts)
  12.   (IF (SETQ e (ENTSEL "\n选择多义线:"))
  13.     (PROGN (SETQ pts (GetSegAtPline (VLAX-ENAME->VLA-OBJECT (CAR e)) (CADR e)))
  14.            (COMMAND ".line" (car pts) (cadr pts) "")
  15.     )
  16.   )
  17.   (PRINC)
  18. )
复制代码
发表于 2017-8-12 08:50:19 | 显示全部楼层
itoboy 发表于 2017-8-11 20:24
很显然,你说的这些都是能查到的,请问跟我的问题有什么关系?

自己想去,真是无语,搞笑
 楼主| 发表于 2017-8-12 13:02:37 | 显示全部楼层
被承包的东子 发表于 2017-8-12 08:50
自己想去,真是无语,搞笑

就是想不明白才来请教啊
烦请高手明示
发表于 2017-8-15 09:53:03 | 显示全部楼层
如果只是要entsel所点击位置附近的最近点或者最近端点的话就比较简单,
  1. (defun tt(ent f / e p);;ent(曲线图元 点)f=T 最近端点 nil最近点
  2.   (vl-load-com)
  3.   (if(VL-CATCH-ALL-ERROR-P(setq e(car ent)p(VL-CATCH-ALL-APPLY'vlax-curve-getClosestPointTo ent)))
  4.     nil
  5.     (if f(vlax-curve-getpointatparam e(fix(+(vlax-curve-getparamatpoint e p)0.5)))p)))
发表于 2017-9-13 21:44:12 | 显示全部楼层
(setq mpt (osnap (last(entsel)) "_nod,_int,_nea"))  ;;捕捉节点,交点,最近点
发表于 2017-9-14 09:02:17 | 显示全部楼层
0,无  
1,end
2,mid
4,cen
8,节点
16,象限点
32,int
64,插入点
128,垂直点。
256,切点
512,nea
1024,快捷
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 06:47 , Processed in 0.138788 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表