明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[求助]一次选择得到多条曲线的交点坐标[OK]

  [复制链接]
发表于 2007-12-12 14:45:00 | 显示全部楼层
本帖最后由 作者 于 2007-12-12 14:47:00 编辑

;; 求选择集中图元的所有交点

;;[作者] Bill Kramer

(defun getInters (ss / n1 ssl aobj1 n2 aobj2 ipts pts)
  (setq n1 0 ssl (sslength ss))
  (while (< n1 (1- ssl))
    (setq aobj1 (vlax-ename->vla-object (ssname ss n1))
          n2    (1+ n1)
    )
    (while (< n2 ssl)
      (setq aobj2 (vlax-ename->vla-object (ssname ss n2))
            ipts  (vlax-variant-value (vla-intersectwith aobj1 aobj2 0))
      )
      (if (> (vlax-safearray-get-u-bound ipts 1) 0)
        (progn
          (setq ipts (vlax-safearray->list ipts))
          (while (> (length ipts) 0)
            (setq pts  (cons (list (car ipts) (cadr ipts) (caddr ipts)) pts)
                  ipts (cdddr ipts)
            )
          )
        )
      )
      (setq n2 (1+ n2))
    )
    (setq n1 (1+ n1))
  )
  pts
)

 楼主| 发表于 2007-12-12 14:56:00 | 显示全部楼层

谢谢caoyin

还是vla函数都不懂。。。

什么#<safearray...>, #<variant。。。>都没搞懂之间是什么关系。。。嘿嘿。。。

结贴。。。再次谢谢楼上的高手们

 楼主| 发表于 2007-12-12 15:10:00 | 显示全部楼层

bbb交点导入Excel.VLX

现在程序拿上来给有需要的人。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2007-12-12 15:40:00 | 显示全部楼层
没有必要针对不同类型进行不同的计算。
使用 vla-intersectwith 即可。
 楼主| 发表于 2007-12-12 18:02:00 | 显示全部楼层
zml84发表于2007-12-12 15:40:00没有必要针对不同类型进行不同的计算。使用 vla-intersectwith 即可。

确实是没必要对不同类型进行不同的计算。

所以caoyin给的最后的代码,是我最想要的。。。

发表于 2007-12-13 09:25:00 | 显示全部楼层

之前写的时候大家说过这个问题

我说了是做练习时写的嘛

仅供娱乐

^o^

发表于 2008-10-20 13:08:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-18 19:06 , Processed in 1.280808 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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