明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 920|回复: 6

[提问] 那为大神能看出来问题啊?感谢

[复制链接]
发表于 2023-7-17 15:09:34 | 显示全部楼层 |阅读模式
本帖最后由 han12315 于 2023-7-18 12:19 编辑

(DEFUN MCIR (PT#RR# LAY# COL#)

发表于 2023-7-17 15:19:23 | 显示全部楼层
代码不全,还是截图的,大神们看到了都懒的回答。
发表于 2023-7-17 15:29:38 | 显示全部楼层
本帖最后由 liuhe 于 2023-7-17 15:32 编辑
  1. (vlax-safearray->list(vlax-variant-value (vla-intersectwith obj1 obj2 mode)))
复制代码


大概率是这样,要先取出value  才能list

mode  
  • ExtendOption : AcExtendOption enum; input-only
    This option specifies if one or the other, both, or none of the entities are to be extended in order to attempt an intersection.


acExtendNone
Does not extend either object.
acExtendThisEntity
Extends the base object.
acExtendOtherEntity
Extends the object passed as an argument.
acExtendBoth
Extends both objects.

 楼主| 发表于 2023-7-17 15:48:12 | 显示全部楼层
liuhe 发表于 2023-7-17 15:29
大概率是这样,要先取出value  才能list

mode  

感谢大哥,顶礼膜拜!我重新编辑了,能不能麻烦大哥直接纠正下
发表于 2023-7-17 15:57:13 | 显示全部楼层
han12315 发表于 2023-7-17 15:48
感谢大哥,顶礼膜拜!我重新编辑了,能不能麻烦大哥直接纠正下
  1. (defun sk_2obj_ipts (en1 en2 mode / ipts lst obj1 obj2 p1)
  2.   (if (and en1
  3.            en2
  4.            (or (= (type en1) 'ENAME) (= (type en1) 'VLA-OBJECT))
  5.            (or (= (type en2) 'ENAME) (= (type en2) 'VLA-OBJECT))
  6.       )
  7.     (progn
  8.       (setq obj1 (if (= (type en1) 'ENAME)
  9.                    (vlax-ename->vla-object en1)
  10.                    en1
  11.                  )
  12.             obj2 (if (= (type en2) 'ENAME)
  13.                    (vlax-ename->vla-object en2)
  14.                    en2
  15.                  )
  16.             mode (if (and mode (= (type mode) 'INT))
  17.                    mode
  18.                    0
  19.                  )
  20.             p1 (vlax-curve-getEndPoint obj1)

  21.       )
  22.       (VLA-MOVE        obj1(VLAX-3D-POINT p1)(VLAX-3D-POINT '(0 0 0)))
  23.       (VLA-MOVE        obj2(VLAX-3D-POINT p1)(VLAX-3D-POINT '(0 0 0)))
  24.       (setq ipts (vlax-variant-value (vla-intersectwith obj1 obj2 mode)))                                        ;取得俩物体的交点变体
  25.       (if (> (vlax-safearray-get-u-bound ipts 1) 0)
  26.         (progn
  27.           (setq        ipts (vlax-safearray->list ipts)                                ;将vla交点变体转化成表的形式
  28.                 lst  '()
  29.           )
  30.           (if (> (length ipts) 3)        ;分离多个交点
  31.             (repeat (/ (length ipts) 3)
  32.               (setq lst (cons (mapcar '+ p1(list (car ipts) (cadr ipts) (caddr ipts)))lst))
  33.               (setq ipts (cdddr ipts))
  34.             )
  35.             (setq lst (mapcar '+ p1 ipts))
  36.           )
  37.         )
  38.       )
  39.    
  40.     )
  41.   )
  42.    (VLA-MOVE        obj1(VLAX-3D-POINT '(0 0 0))(VLAX-3D-POINT p1))
  43.    (VLA-MOVE        obj2(VLAX-3D-POINT '(0 0 0))(VLAX-3D-POINT p1))
  44.   lst  
  45. )




你试试我的相交函数,你的东西不全,只能靠猜
 楼主| 发表于 2023-7-17 16:01:53 | 显示全部楼层
liuhe 发表于 2023-7-17 15:57
你试试我的相交函数,你的东西不全,只能靠猜

感谢大哥,我试下
发表于 2023-7-20 12:51:42 | 显示全部楼层
(DEFUN MCIR (PT#RR# LAY# COL#)
就凭这句,就能猜出这么多内容,
神人也................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 00:42 , Processed in 0.177189 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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