乐筑天下

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

如何得到框选范围内所有直线的交点?

[复制链接]

15

主题

28

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2004-9-27 13:35:00 | 显示全部楼层 |阅读模式
如何得到框选范围内所有直线的交点?
说说你的思路?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-9-27 13:42:00 | 显示全部楼层
(defun GetInterPoint (ent1 ent2 / intpoints points i)
         (setq intpoints (vla-intersectwith ent1 ent2 acextendnone))
         (setq intpoints (vlax-variant-value intpoints))
         (setq i 0)
         (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
                         (repeat (/ (+ 1
                                                                                                         (- (vlax-safearray-get-u-bound intpoints 1)
                                                                                                                                 (vlax-safearray-get-l-bound intpoints 1)
                                                                                                         )
                                                                                 )
                                                                                 3
                                                         )
                                         (setq points (append points (list (list
                                                         (vlax-safearray-get-element intpoints i)
                                                         (vlax-safearray-get-element intpoints (+ i 1))
                                                         (vlax-safearray-get-element intpoints (+ i 2))
                                         )))
                                         )
                                         (setq i (+ 3 i))
                         )
         )
         points
)
(defun c:main( / ss n i j ent1 ent2 points)
         (setq ss (ssget))
         (if ss
                         (setq n (sslength ss))
         )
         (setq i 0 j 0)
         (while ( (vlax-safearray-get-u-bound intpoints 1) 0)
                         (repeat (/ (+ 1
                                                                                                         (- (vlax-safearray-get-u-bound intpoints 1)
                                                                                                                                 (vlax-safearray-get-l-bound intpoints 1)
                                                                                                         )
                                                                                 )
                                                                                 3
                                                         )
                                         (setq points (append points (list (list
                                                         (vlax-safearray-get-element intpoints i)
                                                         (vlax-safearray-get-element intpoints (+ i 1))
                                                         (vlax-safearray-get-element intpoints (+ i 2))
                                         )))
                                         )
                                         (setq i (+ 3 i))
                         )
         )
         points
)
(defun c:main( / ss n i j ent1 ent2 points)
         (setq ss (ssget))
         (if ss
                         (setq n (sslength ss))
         )
         (setq i 0 j 0)
         (while (vla-object ent1))
                         (while (vla-object ent2))
                                         (setq points (append points (getinterpoint ent1 ent2)))
                                         (setq j (1+ j))
                         )
                         (setq i (1+ i))
         )
         (Princ points)
         (princ (strcat "\n共有交点" (itoa (length points)) "?"))
         (princ)
)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-20 08:46 , Processed in 2.145623 second(s), 57 queries .

© 2020-2025 乐筑天下

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