明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 612|回复: 5

[提问] 两次框选实现效果如何整合为一次框选

[复制链接]
发表于 2021-8-24 22:33 | 显示全部楼层 |阅读模式
2明经币
本帖最后由 magicheno 于 2021-8-24 22:35 编辑

大神们,下面是我整理的两个功能,需要两次框选才能实现效果,能否改为一次就实现呢
如下图,实现的效果是一个编组的编号左边镜像变成右边,但是保持文字左对齐,文字距离左边引线顶点为50,然后想实现的是下面的圆块也镜像,原先为X比例为100就变为了-100。

(defun c:tt5()
  (xyp-Start)
  (setvar "pickstyle" 0)
  (setvar "PEDITACCEPT" 0)
(setq ss0 (ssget '((0 . "text"))))
    (mapcar '(lambda (x)
        (setq p5 (xyp-9pt x 2)
       p2 (xyp-Pt2Y p5 (- (xyp-DXF 40 x)))
        )
        (if (setq ss1 (ssget "f" (list p5 p2) '((0 . "*poly*"))))
   (progn
     (setq s1  (ssname ss1 0)
    ptn (xyp-Vertexs s1 0)
    p0  (car ptn)
    p1  (cadr ptn)
    p2  (caddr ptn)
    p3  (polar p1 (angle p2 p1) (distance p1 p2))
    pt  (car (xyp-Sort-PtnByXYZ (list p1 p3)))
    pt  (xyp-Pt2XY pt 50 75)
     )
      (xyp-Move x (xyp-DXF 10 x) pt)
      (xyp-Put-Coordinate s1 2 p3)      
   )
        )
      )
     (xyp-Ss2List ss0)
    )
  
  (setq ss (ssget '((0 . "INSERT")))
i  -1
  )
    (setq s1 (ssname ss (setq i (1+ i))))
    (setq pt1 (xyp-DXF 10 s1)
   pt1 (trans pt1 0 1)
   pt2 (polar pt1 (* pi 0.5) 10)
    )
    (command "mirror" s1 "" pt1 pt2 "y")
  (xyp-End)
  (setvar "PEDITACCEPT" 0)
  (setvar "pickstyle" 1)
)



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

最佳答案

查看完整内容

(defun c:tt5() (xyp-Start) (setvar "pickstyle" 0) (setvar "PEDITACCEPT" 0) (setq ss0 (ssget '((0 . "text,INSERT")))) (mapcar '(lambda (x) (cond((= "TEXT" (xyp-DXF 0 x)) (setq p5 (xyp-9pt x 2) p2 (xyp-Pt2Y p5 (- (xyp-DXF 40 x))) ) (if (setq ss1 (ssget "f" (list p5 p2) '((0 . "*poly*")) ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-8-24 22:33 | 显示全部楼层
本帖最后由 xvjiex 于 2021-8-25 12:43 编辑

(defun c:tt5()
  (xyp-Start)
  (setvar "pickstyle" 0)
  (setvar "PEDITACCEPT" 0)
  (setq ss0 (ssget '((0 . "text,INSERT"))))
  (mapcar '(lambda (x)
             (cond((= "TEXT" (xyp-DXF 0 x))
                    (setq p5 (xyp-9pt x 2)
                      p2 (xyp-Pt2Y p5 (- (xyp-DXF 40 x)))
                    )
                    (if (setq ss1 (ssget "f" (list p5 p2) '((0 . "*poly*"))))
                      (progn
                        (setq s1  (ssname ss1 0)
                          ptn (xyp-Vertexs s1 0)
                          p0  (car ptn)
                          p1  (cadr ptn)
                          p2  (caddr ptn)
                          p3  (polar p1 (angle p2 p1) (distance p1 p2))
                          pt  (car (xyp-Sort-PtnByXYZ (list p1 p3)))
                          pt  (xyp-Pt2XY pt 50 75)
                        )
                        (xyp-Move x (xyp-DXF 10 x) pt)
                        (xyp-Put-Coordinate s1 2 p3)      
                      )
                    )
                  )
               (t (setq pt1 (xyp-DXF 10 x)
                    pt1 (trans pt1 0 1)
                    pt2 (polar pt1 (* pi 0.5) 10)
                  )
                 (command "mirror" x "" "non"pt1 "non"pt2 "y")
               )
             )
           )
    (xyp-Ss2List ss0)
  )
  (xyp-End)
  (setvar "PEDITACCEPT" 0)
  (setvar "pickstyle" 1)
)
回复

使用道具 举报

 楼主| 发表于 2021-8-25 12:31 | 显示全部楼层

大侠,试了下多了一个括号好像,但是删掉之后,还是显示有问题,说参数太少的
回复

使用道具 举报

发表于 2021-8-25 12:37 | 显示全部楼层
刚才没有测试,先已调整!
回复

使用道具 举报

 楼主| 发表于 2021-8-25 13:18 | 显示全部楼层
xvjiex 发表于 2021-8-25 12:37
刚才没有测试,先已调整!

可以可以了,感谢大侠~~~

评分

参与人数 1明经币 +1 收起 理由
xvjiex + 1 感谢采纳

查看全部评分

回复

使用道具 举报

发表于 2021-8-25 14:56 | 显示全部楼层
有多个院长的自定义函数
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 05:13 , Processed in 0.201882 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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