乐筑天下

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

[编程交流] 交点

[复制链接]

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:24:52 | 显示全部楼层 |阅读模式
我有两个对象,第一个*(*thx到L.Mac和M.Ribar)编码为:
 
第二个对象是线条:
 
该线平行于Z轴。椭圆是一个3d对象。直线和椭圆之间(总是)有一个交点。我需要这一点。我试过一些东西,但没有成功。
 
欢迎提出建议。
 
提前谢谢!
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 07:46:32 | 显示全部楼层
Kingma,在您的示例中,您使用了我的代码(defun ellipse3dpt(centpt endpt1 endpt2)(我忘了本地化zd,所以应该是(defun ellipse3dpt(centpt endpt1 endpt2/zd)…)然后用(_3deliple hp44 p2701 hoogp)调用了李函数。。。您必须决定要使用的代码,对于使用的代码,您应该为我的创建调用(ellipse3dpt hp44 p2701 hoogp),为Lee的创建调用(3delipse3dpt hp44 p2701 hoogp)。。。对于两个曲线对象的交点,我建议您研究这个示例:
http://www.cadtutor.net/forum/showthread.php?73279-实体交点
或者这个:
http://www.cadtutor.net/forum/showthread.php?73133-给定方位角和高度角测量到物体的距离
 
M、 R。
顺便提一下
当你想引用某人的留言时,你应该使用[noparse]
[/noparse];当你想发布代码时,你应该使用[highlight][noparse]
  1. Your code
[/noparse][/highlight]
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 07:58:30 | 显示全部楼层
好的,我整理出了我想要使用的代码。它工作良好:
  1. (defun _3DEllipse ( cen minp majp )
  2.    (entmake
  3.        (list
  4.           '(0 . "ELLIPSE")
  5.           '(100 . "AcDbEntity")
  6.           '(100 . "AcDbEllipse")
  7.            (cons 010 cen)
  8.            (cons 011 (mapcar '- majp cen))
  9.            (cons 040 (/ (distance minp cen) (distance majp cen)))
  10.            (cons 210 (v^v (mapcar '- minp cen) (mapcar '- majp cen)))
  11.        )
  12.    )
  13. )
  14. ;; Vector Cross Product  -  Lee Mac
  15. ;; Args: u,v - vectors in R^3
  16. (defun v^v ( u v )
  17.    (list
  18.        (- (* (cadr u) (caddr v)) (* (cadr v) (caddr u)))
  19.        (- (* (car  v) (caddr u)) (* (car  u) (caddr v)))
  20.        (- (* (car  u) (cadr  v)) (* (car  v) (cadr  u)))
  21.    )
  22. )
  23. (_3DEllipse (trans hp44 1 0) (trans p2701 1 0) (trans hoogp 1 0))
  24. (_3DEllipse hp44 p2701 hoogp)

 
另一个对象是线:
  1. (setq hoogte75 (* hoogte 0.75))
  2. (setq hp45 (list (car p45) (cadr p45) (- (caddr p45) hoogte75)))
  3. (command "line" p45 hp45 "")

 
我想要这些物体的交点。存储为变量。
 
所以我想我必须首先选择这样的椭圆:
  1. (setq ell (entlast))    ; im not sure this is the right way
  2. (setq ell (vlax-ename->vla-object ell)) ; converting

 
线路相同:
  1. (setq l1 (entlast))   
  2. (setq l1 (vlax-ename->vla-object l1))

 
然后:
  1. (setq i45 (vlax-invoke <VLA-Object l1> 'intersectwith <VLA-Object ell> acextendnone))

 
它不起作用。也许我忘记了一件小事,或者只是我的方式。
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:11:42 | 显示全部楼层
当然,代码:
  1. (setq ell (entlast))   
  2. (setq ell (vlax-ename->vla-object ell))

 
紧随其后:
  1. (defun _3DEllipse ( cen minp majp )
  2.    (entmake
  3.        (list
  4.           '(0 . "ELLIPSE")
  5.           '(100 . "AcDbEntity")
  6.           '(100 . "AcDbEllipse")
  7.            (cons 010 cen)
  8.            (cons 011 (mapcar '- majp cen))
  9.            (cons 040 (/ (distance minp cen) (distance majp cen)))
  10.            (cons 210 (v^v (mapcar '- minp cen) (mapcar '- majp cen)))
  11.        )
  12.    )
  13. )
  14. ;; Vector Cross Product  -  Lee Mac
  15. ;; Args: u,v - vectors in R^3
  16. (defun v^v ( u v )
  17.    (list
  18.        (- (* (cadr u) (caddr v)) (* (cadr v) (caddr u)))
  19.        (- (* (car  v) (caddr u)) (* (car  u) (caddr v)))
  20.        (- (* (car  u) (cadr  v)) (* (car  v) (cadr  u)))
  21.    )
  22. )
  23. (_3DEllipse (trans hp44 1 0) (trans p2701 1 0) (trans hoogp 1 0))
  24. (_3DEllipse hp44 p2701 hoogp)
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 08:24:02 | 显示全部楼层
 
在使用(vlax ename->vla object l1)转换l1和使用相同方法转换ell后,使用:
  1. (setq i45 (vlax-invoke l1 'intersectwith ell acextendnone))
M.R。
当然,您必须首先使用(vl load com)启用vla函数
回复

使用道具 举报

3

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:30:48 | 显示全部楼层
 
谢谢你,马科,现在很好!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 05:48 , Processed in 0.617248 second(s), 75 queries .

© 2020-2025 乐筑天下

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