明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[提问] entmake 镜像程序如何写?

[复制链接]
发表于 2023-6-5 11:44 | 显示全部楼层

再请教下,镜像后的对象怎么选择?
(setq ss1 (ssadd))
  (repeat (sslength ss)
    (setq ent (ssname ss 0)) ; 获取选择集中的第一个对象
    (setq pt0(xyp-9Pt ent 5))
    (setq vlaObj (vlax-ename->vla-object ent)) ; 将实体名称转换为 VLA 对象
                (setq y (* -2 (- (cadr pt0) (cadr pt1))))
                (setq moveDist (/ y (s_tan ang)))
    (setq pt3 (mapcar '+ pt1 pt2))
    (setq pt3 (mapcar '/ pt3 '(2 2 2))) ; 计算镜像线中点
    (setq vlaObjCopy(vla-Mirror vlaObj (vlax-3D-point pt1) (vlax-3D-point pt2)) ); 镜像对象
    (ssadd (vlax-vla-object->ename vlaObjcopy) ss1)
这么加选择集为啥把镜像前的也给加进去了呢?
发表于 2023-6-5 13:23 | 显示全部楼层
sandyvs 发表于 2023-6-5 11:44
再请教下,镜像后的对象怎么选择?
(setq ss1 (ssadd))
  (repeat (sslength ss)

应该是代码其余部分有问题吧
  1. (defun lm-get-Centroid (ty / obj pt x y)
  2.         (setq obj (vlax-ename->vla-object ty))
  3.         (vla-getboundingbox obj 'p1 'p2)
  4.         (mapcar 'set'(x1 y1) (vlax-safearray->list p1 ))
  5.         (mapcar 'set'(x2 y2) (vlax-safearray->list p2 ))
  6.         (setq pt(list (/(+ x1 x2)2.0) (/(+ y1 y2)2.0)))
  7.         pt
  8. )
  9. (setq
  10.         ss1 (ssadd)
  11.         ss(ssget)
  12.         pt1(getpoint)
  13.         pt2(getpoint)
  14.         i 0
  15. )
  16. (repeat (sslength ss)
  17.         (setq ent (ssname ss i)) ; 获取选择集中的第一个对象
  18.         (setq pt0(lm-get-Centroid ent))
  19.         (setq vlaObj (vlax-ename->vla-object ent)) ; 将实体名称转换为 VLA 对象
  20.         (setq vlaObjCopy(vla-Mirror vlaObj (vlax-3D-point pt1) (vlax-3D-point pt2)) ); 镜像对象
  21.         (ssadd (vlax-vla-object->ename vlaObjcopy) ss1)
  22.         (setq i (1+ i))
  23. )
  24. (sssetfirst nil ss1)
发表于 2023-6-5 14:50 | 显示全部楼层
飞雪神光 发表于 2023-6-5 13:23
应该是代码其余部分有问题吧

完整在这,后面就还有一个移动操作。更换了您的函数。http://bbs.mjtd.com/forum.php?mo ... mp;extra=#pid949114
好像是(sssetfirst nil ss1)这句的原因,我还不知道它是什么作用,没看懂。。
高版本可以用,但在2010上还是有问题
发表于 2024-4-16 15:06 | 显示全部楼层
飞雪神光 发表于 2023-6-5 13:23
应该是代码其余部分有问题吧

怎样判断一个图元是否镜像
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 04:07 , Processed in 0.220772 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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