明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1946|回复: 17

[提问] 原地镜像180度,看有没有大神帮忙出手

[复制链接]
发表于 2023-3-8 00:20:40 | 显示全部楼层 |阅读模式
6明经币
求助各位大神,看有空是否可以实现原地180度镜像,图片及附件已上传
1.选择文件
2.空格(以文件左右之间的中心镜像180度)如图片所式

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

最佳答案

查看完整内容

一个旋转180° ,一个是旋转0°才能达到要求

点评

到底是镜像还是旋转?  发表于 2023-3-8 21:25
发表于 2023-3-8 00:20:41 | 显示全部楼层
本帖最后由 表骑马实开车 于 2023-3-8 11:40 编辑

  1. (vl-load-com)
  2. (defun c:tt (/ os ss box ssmid p3)
  3.   (setq os (getvar "osmode"))
  4.   (setvar "cmdecho" 0)
  5.   (setvar "osmode" 0)
  6.   (if (setq ss (ssget))
  7.     (progn
  8.       (setq box          (LM:ssboundingbox ss)
  9.             ssmid (mapcar '*
  10.                           (mapcar '+ (car box) (cadr box))
  11.                           '(0.5 0.5 0.5)
  12.                   )
  13.             p3          (polar ssmid (* 1.5 pi) 10)
  14.       )
  15.       (command "mirror" ss "" ssmid p3 "y")
  16.     )
  17.   )
  18.   (setvar "osmode" os)
  19.   (setvar "cmdecho" 1)
  20.   (princ)
  21. )


  22. ;; 选择集边界框 - Lee Mac
  23. ;; 返回一个列表的左下角和右上角的 WCS 坐标
  24. ;; 包围提供的选择集中所有对象的矩形框。
  25. ;; sel - [sel] 返回边界框的选择集
  26. (defun LM:ssboundingbox        (sel / idx llp ls1 ls2 obj urp)
  27.   (repeat (setq idx (sslength sel))
  28.     (setq obj (vlax-ename->vla-object (ssname sel (setq idx (1- idx)))))
  29.     (if        (and (vlax-method-applicable-p obj 'getboundingbox)
  30.              (not (vl-catch-all-error-p
  31.                     (vl-catch-all-apply
  32.                       'vla-getboundingbox
  33.                       (list obj 'llp 'urp)
  34.                     )
  35.                   )
  36.              )
  37.         )
  38.       (setq ls1        (mapcar        'min
  39.                         (vlax-safearray->list llp)
  40.                         (cond (ls1)
  41.                               ((vlax-safearray->list llp))
  42.                         )
  43.                 )
  44.             ls2        (mapcar        'max
  45.                         (vlax-safearray->list urp)
  46.                         (cond (ls2)
  47.                               ((vlax-safearray->list urp))
  48.                         )
  49.                 )
  50.       )
  51.     )
  52.   )
  53.   (if (and ls1 ls2)
  54.     (list ls1 ls2)
  55.   )
  56. )
一个旋转180° ,一个是旋转0°才能达到要求
回复

使用道具 举报

发表于 2023-3-8 07:44:29 | 显示全部楼层
CAD自带的镜像不好用吗??
回复

使用道具 举报

发表于 2023-3-8 08:09:31 | 显示全部楼层
本帖最后由 liunian0524 于 2023-3-8 08:14 编辑

论坛好像有
回复

使用道具 举报

发表于 2023-3-8 09:11:39 | 显示全部楼层
你这说的好像不是很清楚,第一个图应该是以Y轴镜像的,第二个图应该是以x轴镜像的。
你说的图层是特定图层吗?某个图层就以Y轴镜像,某个图层就以X轴镜像?
回复

使用道具 举报

发表于 2023-3-8 11:02:53 | 显示全部楼层

另的网友写的,你看下是不是要这样?

(defun c:MMI (/  cmn osn  ss i n ssn ssndata ssnsty pt ptmin ptmax cenpt
        *error* msg)
  (defun *error* (msg)
    (if
      (wcmatch msg "; 错误:,函数被取消")
       (progn
   (setvar 'cmdecho cmn)
   (setvar 'osmode osn)
   (princ)
       )
       (princ msg)
    )
  )
  (setq cmn (getvar 'cmdecho))
  (setq osn (getvar 'osmode))
  (setvar 'cmdecho 0)
  (setvar 'osmode 0)
  (princ"\n选择要原地反转的对象:")
  (setq ss (ssget ))
  (setq i 0)
  (setq n (sslength ss))
  (repeat n
    (setq ssn (vlax-ename->vla-object (ssname ss i)))
    (vla-GetBoundingBox ssn 'ptmax 'ptmin)
    (setq pt (mapcar '(lambda (a b) (/ (+ a b) 2))
         (vlax-safearray->list ptmax)
         (vlax-safearray->list ptmin)
       )
    )
    (vlax-invoke-method
      ssn
      'rotate
      (vlax-3d-point pt)
      pi
    )
    (setq i (1+ i))
  )
  (command "ucs" "")
  (setvar 'cmdecho cmn)
  (setvar 'osmode osn)
  (princ "\n命令:MMI")
  (princ)
)
回复

使用道具 举报

发表于 2023-3-8 11:31:25 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2023-3-8 12:47:32 | 显示全部楼层
小毛草 发表于 2023-3-8 11:02
另的网友写的,你看下是不是要这样?

(defun c:MMI (/  cmn osn  ss i n ssn ssndata ssnsty pt ptmin ...

这个试用了一下
感觉好象是旋转180°
应该不是镜像
回复

使用道具 举报

 楼主| 发表于 2023-3-8 13:13:05 | 显示全部楼层
fangmin723 发表于 2023-3-8 07:44
CAD自带的镜像不好用吗??

自带的镜像好用呀,就是要自己定义中心线原地镜像,我就是想输入命令直接让它镜个像,就不用自己定义镜像的两点了呢
回复

使用道具 举报

 楼主| 发表于 2023-3-8 16:00:33 | 显示全部楼层
小毛草 发表于 2023-3-8 11:02
另的网友写的,你看下是不是要这样?

(defun c:MMI (/  cmn osn  ss i n ssn ssndata ssnsty pt ptmin ...

这个效果不是我想要的那种哦,谢谢您
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 10:17 , Processed in 0.157557 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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