明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1252|回复: 14

[提问] 自己用的mirror

[复制链接]
发表于 2022-12-4 15:17 | 显示全部楼层 |阅读模式
本帖最后由 hoodpinrh 于 2022-12-4 15:26 编辑

(princ "\n選取物件:" )
(setq mi_ss(ssget))
(setq en(entsel "\n選取左右鏡射的水平線or垂直鏡射的垂直線:"))
(setq pts(cadr en))
(setq mpt(osnap pts "_mid"))


(command "_.MIRROR" mi_ss "" mpt "@0,10" "_N")


(command "_.MIRROR" mi_ss "" mpt "@10,0" "_N")


最後兩個command我正在想要加入判斷式進去,有人有比較好的方法判斷嗎?
我從事的工作是雷射板金展開,鏡射這指令基本都是不用不行。
想把鏡射指令用的更簡單就好
























本帖被以下淘专辑推荐:

发表于 2022-12-4 23:42 | 显示全部楼层
本帖最后由 kucha007 于 2022-12-4 23:52 编辑

水平OR垂直镜像,加了循环可以一直选对象
  1. (defun c:TT (/ ss pt1 pt2)
  2.     (while
  3.       (defun *error* ( msg );定义出错函数
  4.         (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
  5.           (progn
  6.             (princ (strcat "\n错误: " msg))
  7.             (command "redraw")
  8.             (princ)
  9.           )
  10.         )
  11.       )
  12.       (if (ssget "i")
  13.           (setq ss (ssget))
  14.           (progn
  15.               (princ "\n→请选择需镜像的对象:")
  16.               (setq ss (ssget))
  17.           )
  18.       )
  19.       (if ss
  20.         (progn
  21.           (if (not tymir)(setq tymir 1)) ;1垂直,-1统一
  22.           (setq pt1 "S")
  23.           (while (= pt1 "S");取值
  24.               (initget "S s")
  25.               (if (= "S" (setq pt1 (getpoint (strcat "\n→请选择("(if (= tymir 1) "垂直" "水平")")轴上的点"":[切换S]"))))
  26.                   (setq tymir (* -1 tymir)) ;1/-1
  27.               )
  28.           )
  29.           (if pt1
  30.             (progn
  31.                 (if (= tymir 1)
  32.                     (setq pt2 (list (+ (car pt1) 0) (+ (cadr pt1) 10000)))
  33.                     (setq pt2 (list (+ (car pt1) 10000) (+ (cadr pt1) 0)))
  34.                 )
  35.                 (command "_.MIRROR" ss "" pt1 pt2 "N")
  36.             )
  37.           )
  38.         )
  39.       )
  40.       (command "redraw")
  41.       (princ)
  42.     )
  43. )

发表于 2022-12-4 20:40 | 显示全部楼层
本帖最后由 kucha007 于 2022-12-4 20:41 编辑

练习了一下,写了个快速镜像。可以预选对象,对称轴取的是经过所选对称轴起点和终点的直线(选圆弧或者多段线也是)。
不过我没太理解, 你是只要在水平或者垂直方向上镜像吗?




  1. (defun c:TT (/ obj pt1 pt2)
  2.     (vl-load-com)
  3.     (if (ssget "i")
  4.         (setq ss (ssget))
  5.         (progn
  6.             (princ "\n→请选择需镜像的对象:")
  7.             (setq ss (ssget))
  8.         )
  9.     )
  10.     (setq obj (vlax-ename->vla-object (car (entsel "\n→请选择对称轴:"))))
  11.     (setq pt1 (vlax-curve-getStartPoint obj)
  12.           pt2 (vlax-curve-getEndPoint obj)
  13.     )
  14.     (command "_.MIRROR" ss "" (trans pt1 0 1) (trans pt2 0 1) "N")
  15.     (princ)
  16. )



 楼主| 发表于 2022-12-5 08:07 来自手机 | 显示全部楼层
kucha007 发表于 2022-12-4 23:42
水平OR垂直镜像,加了循环可以一直选对象

我要好好的消化一下你的程序,
有很多像我不知道的 if 後面不是都是三個符號都是 < 、= 、> 嗎?
原來還可以像你這樣用,我又進化了一大步。
我還有一大堆內亂七八糟的想法跟程序內,要不加好友丟給你玩玩吧。
发表于 2022-12-4 16:26 | 显示全部楼层
谢谢大佬的分享!!!!
 楼主| 发表于 2022-12-4 21:39 来自手机 | 显示全部楼层
是的   我要的只是線的部分,80%基本都碰到水平垂直的直線比較多。   有斜度的話我目前沒想到要怎麼做。但我會參考李麥克先生的做法的
 楼主| 发表于 2022-12-4 22:07 来自手机 | 显示全部楼层
kucha007 发表于 2022-12-4 20:40
练习了一下,写了个快速镜像。可以预选对象,对称轴取的是经过所选对称轴起点和终点的直线(选圆弧或者多段 ...

(setq obj (vlax-ename->vla-object (car (entsel "\n→请选择对称轴:"))))
原來還可以這樣組合,我一直沒發現到。
感謝你
发表于 2022-12-4 22:36 | 显示全部楼层
本帖最后由 kucha007 于 2022-12-4 23:06 编辑
hoodpinrh 发表于 2022-12-4 22:07
(setq obj (vlax-ename->vla-object (car (entsel "\n→请选择对称轴:"))))
原來還可以這樣組合,我一 ...

现在就是需要选线作为对称轴,线是水平就是水平镜像咯,线是斜的也就斜着镜像了
 楼主| 发表于 2022-12-4 23:54 来自手机 | 显示全部楼层
kucha007 发表于 2022-12-4 23:42
水平OR垂直镜像,加了循环可以一直选对象

太專業了  真的
我剛也在想要怎麼做循環說
发表于 2022-12-4 23:57 | 显示全部楼层
hoodpinrh 发表于 2022-12-4 23:54
太專業了  真的
我剛也在想要怎麼做循環說

当练习写的,互相学习。镜像类型是我作为全局变量了,可能会方便一些
 楼主| 发表于 2022-12-5 00:06 来自手机 | 显示全部楼层
kucha007 发表于 2022-12-4 23:57
当练习写的,互相学习。镜像类型是我作为全局变量了,可能会方便一些

簡單方便就好
時間可以省下很多了
這樣我又可以有多的時間想東想西了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 01:12 , Processed in 0.218335 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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