明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 253|回复: 9

[提问] 能不能批量实现,按单独各自垂线移动物体

[复制链接]
发表于 2024-3-4 18:29 | 显示全部楼层 |阅读模式
10明经币

能不能批量实理,先以叉字交点画白线的垂线,然后把叉交点和三角形看成整体全部移动到垂点上去

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

最佳答案

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-3-4 18:29 | 显示全部楼层
  1. (defun c:tt (/ a b d e i p pp pt s)
  2.         (if (and (setq e (car (entsel "\n选白线:")))
  3.                           (setq s (ssget '((0 . "POINT"))))
  4.                                 (setq i -1)
  5.                         )
  6.                 (while (setq a (ssname s (setq i (1+ i))))
  7.                         (setq p (cdr (assoc 10 (entget a))))
  8.                         (setq pt (vlax-curve-getClosestPointTo e p t))
  9.                         (setq d (* 3. (distance p pt)))
  10.                         (setq pp
  11.                                 (list (polar p (* pi 1.25 ) d)
  12.                                         (polar p (* pi 1.75 ) d)
  13.                                         (polar p (* pi 0.25 ) d)
  14.                                         (polar p (* pi 0.75 ) d)
  15.                                         (polar p (* pi 1.25 ) d)
  16.                                 )
  17.                         )
  18.                         (if (setq b (ssget "CP" pp '((0 . "LWPOLYLINE")(90 . 3)(8 . "图层3"))))
  19.                                 (command "MOVE" b "" "non" p "non" pt)
  20.                         )
  21.                         (command "MOVE" a "" "non" p "non" pt)
  22.                 )
  23.         )
  24. )

点评

还稍有点问题, 烦请大师帮忙再看下修改调试下, 有的图形不移动, 图形已上传。  发表于 2024-3-5 11:22
回复

使用道具 举报

 楼主| 发表于 2024-3-4 18:31 | 显示全部楼层
本帖最后由 lidaxiu 于 2024-3-4 18:50 编辑

大概意思:按白线各自,批量法线移动
回复

使用道具 举报

 楼主| 发表于 2024-3-4 18:47 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2024-3-4 19:09 | 显示全部楼层
神速啊,大神
回复

使用道具 举报

 楼主| 发表于 2024-3-5 11:21 | 显示全部楼层


大师,还有点问题,能否帮忙看下,图形中画圈的三角形并未跟随移动,就是说有的图形未动

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2024-3-5 18:11 | 显示全部楼层
这个应该跟ssget函数选择有关,像素会影响选择,可以试试加zoom命令缩放视口再选择
回复

使用道具 举报

 楼主| 发表于 2024-3-5 18:49 | 显示全部楼层

(defun c:tt (/ a b d e i p pp pt s)
        (if (and (setq e (car (entsel "\n选白线:")))
                                (setq s (ssget '((0 . "POINT"))))
                                (setq i -1)
                        )
                (progn
                        (setvar "CMDECHO" 0)
                        (while (setq a (ssname s (setq i (1+ i))))
                                (setq p (cdr (assoc 10 (entget a))))
                                (setq pt (vlax-curve-getClosestPointTo e p t))
                                (setq d 0.5);距离改这个值
                                (setq pp
                                        (list (polar p (* pi 1.25 ) d)
                                                (polar p (* pi 1.75 ) d)
                                                (polar p (* pi 0.25 ) d)
                                                (polar p (* pi 0.75 ) d)
                                                (polar p (* pi 1.25 ) d)
                                        )
                                )
                                (if (setq b (ssget "CP" pp '((0 . "LWPOLYLINE")(90 . 3)(8 . "图层3"))))
                                        (command "MOVE" b "" "non" p "non" pt)
                                )
                                (command "MOVE" a "" "non" p "non" pt)
                        )
                        (setvar "CMDECHO" 1)
                )               
        )
)
回复

使用道具 举报

 楼主| 发表于 2024-3-5 18:50 | 显示全部楼层
lidaxiu 发表于 2024-3-5 18:49
(defun c:tt (/ a b d e i p pp pt s)
        (if (and (setq e (car (entsel "\n选白线:")))
                                (setq s ( ...

把波总最终程序贴上来了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 17:15 , Processed in 0.431534 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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