设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 154|回复: 4

[工具] 快速镜像

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-1-16 06:25:12 | 显示全部楼层 |阅读模式
  • 插件名称 : 快速镜像
  • 作  者 : Lee Mac
  • 运行环境 :不限 
  • 发布时间 :2021-01-16
  • 命令名称 :QM,QMD,QMO,QMOD
  • 插件介绍 :快速镜像,提供4个命令
    1、QM:镜像选择集
    2、QMD:镜像后删除选择集
    3、QMO: 镜像一个对象
    4、QMOD:镜像一个对象,然后删除源对象
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
  1. ;;---------------------=={ Quick Mirror }==-------------------;;
  2. ;;                                                            ;;
  3. ;;  Provides functionality to mirror a selection of objects   ;;
  4. ;;  or a single object without the need to select two points  ;;
  5. ;;  defining a mirror axis.                                   ;;
  6. ;;------------------------------------------------------------;;
  7. ;;  Author: Lee Mac, Copyright ?2011 - www.lee-mac.com       ;;
  8. ;;------------------------------------------------------------;;
  9. ;;  Arguments:                                                ;;
  10. ;;  single - if T, mirrors selected object using derivative   ;;
  11. ;;           at the selected edge to determine mirror axis,   ;;
  12. ;;           else prompts for selection set and object to use ;;
  13. ;;           as mirror axis.                                  ;;
  14. ;;  delete - if T, selected object or selection set is        ;;
  15. ;;           deleted following the mirror operation.          ;;
  16. ;;------------------------------------------------------------;;
  17. ;;  Returns:  Null.                                           ;;
  18. ;;------------------------------------------------------------;;
  19. ;;  Version 1.0    -    15-02-2011                            ;;
  20. ;;                                                            ;;
  21. ;;  First Release.                                            ;;
  22. ;;------------------------------------------------------------;;

  23. ;;------------------------------------------------------------;;
  24. ;;                      Program Shortcuts                     ;;
  25. ;;------------------------------------------------------------;;

  26. ;; Mirror SelectionSet about selected object
  27. (defun c:QM   nil (QuickMirror nil nil))

  28. ;; Mirror SelectionSet about selected object, delete SelectionSet
  29. (defun c:QMD  nil (QuickMirror nil   t))

  30. ;; Mirror Single Object about Selection Point
  31. (defun c:QMO  nil (QuickMirror   t nil))

  32. ;; Mirror Single Object about Selection Point, delete Original Object
  33. (defun c:QMOD nil (QuickMirror   t   t))

  34. ;;------------------------------------------------------------;;
  35. ;;                   Quick Mirror Subfunction                 ;;
  36. ;;------------------------------------------------------------;;

  37. (defun QuickMirror ( single delete / *error* _StartUndo _EndUndo doc ss sel p1 p2 i o ) (vl-load-com)
  38.   ;; ?Lee Mac 2011

  39.   (defun *error* ( msg )
  40.     (if doc (_EndUndo doc))
  41.     (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  42.         (princ (strcat "\n** Error: " msg " **")))
  43.     (princ)
  44.   )

  45.   (defun _StartUndo ( doc ) (_EndUndo doc)
  46.     (vla-StartUndoMark doc)
  47.   )

  48.   (defun _EndUndo ( doc )
  49.     (if (= 8 (logand 8 (getvar 'UNDOCTL)))
  50.       (vla-EndUndoMark doc)
  51.     )
  52.   )

  53.   (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))

  54.   (if (or single (setq ss (ssget "_:L")))
  55.     (while
  56.       (progn (setvar 'ERRNO 0) (setq sel (entsel "\nSelect Mirror Object: "))
  57.         (cond
  58.           (
  59.             (=  7 (getvar 'ERRNO)) (princ "\n** Missed, Try Again **")
  60.           )
  61.           (
  62.             (and sel
  63.               (not
  64.                 (vl-catch-all-error-p
  65.                   (setq p1
  66.                     (vl-catch-all-apply 'vlax-curve-getClosestPointto
  67.                       (list (car sel) (trans (cadr sel) 1 0))
  68.                     )
  69.                   )
  70.                 )
  71.               )
  72.             )

  73.             (setq p2
  74.               (polar p1
  75.                 (angle '(0. 0. 0.)
  76.                   (vlax-curve-getFirstDeriv (car sel)
  77.                     (vlax-curve-getParamatPoint (car sel) p1)
  78.                   )
  79.                 )
  80.                 1.
  81.               )
  82.             )

  83.             (setq p1 (vlax-3D-point p1) p2 (vlax-3D-point p2))

  84.             (_StartUndo doc)
  85.             (if ss
  86.               (repeat (setq i (sslength ss))
  87.                 (vla-mirror (setq o (vlax-ename->vla-object (ssname ss (setq i (1- i))))) p1 p2)
  88.                 (if delete  (vla-delete o))
  89.               )
  90.               (progn
  91.                 (vla-mirror (setq o (vlax-ename->vla-object (car sel))) p1 p2)
  92.                 (if delete  (vla-delete o))
  93.               )
  94.             )
  95.             (_EndUndo doc)
  96.           )
  97.         )
  98.       )
  99.     )
  100.   )
  101.   (princ)
  102. )

  103. ;;------------------------------------------------------------;;
  104. ;;                          End of File                       ;;
  105. ;;------------------------------------------------------------;;

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 5562个

财富等级: 富甲天下

发表于 2021-1-16 07:54:22 | 显示全部楼层
感谢大师分享程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1846个

财富等级: 堆金积玉

发表于 2021-1-16 09:32:10 | 显示全部楼层
做个对论坛有益的人。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2021-1-16 11:07:33 | 显示全部楼层
Lee Mac大师作品
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-1-21 10:02:24 | 显示全部楼层
这个好,可以不用画线了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )  

GMT+8, 2021-3-2 21:02 , Processed in 0.121053 second(s), 24 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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