乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: ketxu

[编程交流] 检查点是否为直线

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:00:21 | 显示全部楼层
 
将UCS设置为“世界”,然后尝试:
 
  1. (ST:Geo-Linear '(1.0 1.0 1.0) '(2.0 2.0 4.0) '(3.0 3.0 3.0))

 
 
如果你仔细研究我的函数,你会注意到,如果任何三个点不共线,递归调用将无法实现。
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-6 10:03:04 | 显示全部楼层
其他剥猫皮的方法
 
  1. (defun c:point@line (/AUX-PT E E-OBJ ENT PT PT-XYZ   )
  2. ;; Tharwat 13. 07. 2011
  3. ;; add by DEVITG
  4. (VL-LOAD-COM)
  5. (if
  6.    (and
  7.      (setq e (car (entsel "\n Select a Line :")))
  8.      (eq (cdr (assoc 0 (setq ent (entget e)))) "LINE")
  9.     (setq pt (car (entsel "\n Select a point :")))
  10.     (eq (cdr (assoc 0 (setq ent (entget pt)))) "POINT")
  11.    );_and
  12. (progn
  13. (setq e-obj (vlax-ename->vla-object e))
  14. (setq pt-xyz (cdr (assoc 10 (setq ent (entget pt)))))
  15. (setq aux-pt (vlax-curve-getclosestpointto e-obj pt-xyz t))
  16. (if (equal aux-pt pt-xyz)
  17. (alert "point belong to line")
  18.    (alert "point is out the  line")
  19. )
  20.      
  21. );_ progn
  22.    );_ if
  23.    
  24. );_ end defun
回复

使用道具 举报

22

主题

326

帖子

185

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
243
发表于 2022-7-6 10:08:46 | 显示全部楼层
哦,现在我明白了^它看起来不在Z坐标内^,所以我将返回距离。。
在您的ListCollinar中,它使用“递归”,而我在这种情况下并不擅长。嗨。。
我还得学习越来越多。非常感谢你。祝您今天过得愉快
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:13:42 | 显示全部楼层
 
不客气,你也是
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 04:54 , Processed in 0.626998 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表