明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6606|回复: 24

快速镜像(试过才知道)

  [复制链接]
发表于 2012-4-15 15:55 | 显示全部楼层 |阅读模式
快速镜像(试过才知道)。。。有源码的仅能直线镜像,编译的可以用于多段线等(核心源码为平分线),我自己也不知道用哪一个好,上2张图片
1、对直线有效,快速镜像
  1. (defun c:mirrmid (/ ss pt pt1)
  2.   (setq oldosmode (getvar 'osmode))
  3.   (setq oldorthomode (getvar 'orthomode))
  4.   (setvar 'osmode 0)
  5.   (setvar 'orthomode 0)
  6.   (setvar 'cmdecho 0)
  7.   (prompt "\n请选择要镜像的对象:")
  8.   (if (setq s (ssget))
  9.     (progn
  10.       (setq n 0)
  11.       (repeat (sslength s)
  12.         (redraw (ssname s n) 3)
  13.         (setq n (1+ n))
  14.       )
  15.       (prompt "\n请选择确定镜像的直线<小于2条>:")
  16.       (if (setq ss (ssget '((0 . "LINE"))))
  17.         (progn
  18.           (setq n 0)
  19.           (repeat (sslength s)
  20.             (redraw (ssname s n) 4)
  21.             (setq n (1+ n))
  22.           )
  23.           (cond
  24.             ((= (sslength ss) 2)
  25.              (setq p101        (cdr (assoc 10 (entget (ssname ss 0))))
  26.                    p102        (cdr (assoc 10 (entget (ssname ss 1))))
  27.                    p111        (cdr (assoc 11 (entget (ssname ss 0))))
  28.                    p112        (cdr (assoc 11 (entget (ssname ss 1))))
  29.                    p10        (polar p101
  30.                                (angle p101 p102)
  31.                                (/ (distance p101 p102) 2)
  32.                         )
  33.                    p11        (polar p111
  34.                                (angle p111 p112)
  35.                                (/ (distance p111 p112) 2)
  36.                         )
  37.              )
  38.              (if (equal p10 p11 1e-3)
  39.                (setq p10 (polar        p101
  40.                                 (angle p101 p112)
  41.                                 (/ (distance p101 p112) 2)
  42.                          )
  43.                      p11 (polar        p111
  44.                                 (angle p111 p102)
  45.                                 (/ (distance p111 p102) 2)
  46.                          )
  47.                )
  48.              )
  49.             )
  50.             ((= (sslength ss) 1)
  51.              (setq p10 (cdr (assoc 10 (entget (ssname ss 0))))
  52.                    p11 (cdr (assoc 11 (entget (ssname ss 0))))
  53.              )
  54.             )
  55.             ((> (sslength ss) 2)
  56.              (alert "\n最多选择2根线!")
  57.             )
  58.           )
  59.         )
  60.       )
  61.       (cond ((<= (sslength ss) 2)
  62.              (command "_.mirror" s "" p10 p11)
  63.              (command pause)
  64.             )
  65.       )
  66.     )
  67.   )
  68.   (setvar 'osmode oldosmode)
  69.   (setvar 'orthomode oldorthomode)
  70.   (princ)
  71. )
2、对直线多段线均有效










本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-11-20 20:05 | 显示全部楼层
先留下 等有空的时候试试,看着很不错哦,应该实用
发表于 2019-11-20 21:50 | 显示全部楼层
看起来很美,多谢大家的分享
发表于 2019-11-25 21:45 | 显示全部楼层
感觉是个很小众的功能
发表于 2012-4-15 16:52 | 显示全部楼层
呵呵,可否对选择集进行镜像?
发表于 2012-4-15 21:01 | 显示全部楼层
有时候,很多的图在图档里面的时候,速度镜像实体,不知道为什么会跑得很远。
发表于 2012-4-15 21:27 | 显示全部楼层

本帖子中包含更多资源

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

x

点评

(command "ucs" "")应该可以  发表于 2012-4-15 21:30
发表于 2012-4-15 21:35 | 显示全部楼层
  1. (defun c:lm(/ ss ent entlist b)
  2.   (setvar "CMDECHO" 0)
  3.   (setq ss(ssget "i" ))
  4.   (if (not ss)
  5.     (setq ss(ssget))
  6.     )
  7.   (if ss
  8.     (progn
  9.       (setq ent(entsel "\n选择做为镜像线的直线:" ))
  10.       (command "ucs" "w")
  11.       (if ent
  12.         (progn
  13.           (setq entlist(entget(car ent)))
  14.           (if (= (cdr(assoc 0 entlist)) "LINE" )
  15.             (progn
  16.               (initget "y n" )
  17.               (setq b(getkword "\n要删除源对象吗?[是(Y)/否(N)] <N>:" ))
  18.               (if (not b)
  19.                 (setq b "n" )
  20.                 )
  21.               (setvar "CMDECHO" 0)
  22.               (command "mirror" ss "" (cdr(assoc 10 entlist)) (cdr(assoc 11 entlist)) b)
  23.         (command "ucs" "p")
  24.               (setvar "CMDECHO" 1)
  25.               )
  26.             )
  27.           )
  28.         )
  29.       )
  30.     )
  31.   (princ)
  32.   )
发表于 2012-4-15 21:37 | 显示全部楼层
功夫佬 发表于 2012-4-15 21:35

除了(command "ucs" "w")
还有别的方法吗?楼下的.
发表于 2012-4-16 10:15 | 显示全部楼层
发表于 2012-4-16 12:29 | 显示全部楼层
本帖最后由 daidong013 于 2012-4-16 12:38 编辑

参考!

能少一步就更好了!在选择确定镜像的直线后不用回车自动镜像就更快一点!~~

本帖子中包含更多资源

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

x
发表于 2012-4-17 09:44 | 显示全部楼层
本帖最后由 T_T 于 2012-4-17 09:48 编辑

我都搞了一个平行中分的,http://bbs.mjtd.com/thread-91751-1-1.html
http://bbs.mjtd.com/forum.php?mod=attachment&aid=NjYxNzV8MDg3Zjg0NDc3Y2ExNzNiYTdhZTRjMWZhYTA5NTUzNjB8MTcxMTcwNjAzNA%3D%3D&request=yes&_f=.gif



PL线只能用原的镜像一样了,

本帖子中包含更多资源

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

x
发表于 2012-4-19 19:58 | 显示全部楼层
非常感谢非常感谢非常感谢非常感谢非常感谢非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 17:53 , Processed in 0.209864 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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