明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 720|回复: 4

entmake法镜像

  [复制链接]
发表于 2023-5-8 15:23 | 显示全部楼层 |阅读模式
本帖最后由 飞雪神光 于 2023-5-8 15:28 编辑

也许并没有什么用 就是写着玩 还有待完善 有需要的可以自己去优化

目前支持直线 圆 圆弧 多段线(支持凸度)

本帖子中包含更多资源

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

x

评分

参与人数 3明经币 +3 收起 理由
lee50310 + 1 赞一个!
bssurvey + 1 赞一个!
kucha007 + 1

查看全部评分

发表于 2023-5-8 16:27 | 显示全部楼层
大佬  可以用矩阵玩玩,然后看看耗时对比
 楼主| 发表于 2023-5-8 18:21 | 显示全部楼层
liuhe 发表于 2023-5-8 16:27
大佬  可以用矩阵玩玩,然后看看耗时对比

矩阵? 我根本不懂
 楼主| 发表于 2023-5-8 19:27 | 显示全部楼层
liuhe 发表于 2023-5-8 16:27
大佬  可以用矩阵玩玩,然后看看耗时对比

  1. (defun BF-Mat-ApplyMatrixTransformation (target matrix vector)
  2.   (cond
  3.     ((eq 'VLA-OBJECT (type target))
  4.       (vla-TransformBy target
  5.         (vlax-tMatrix
  6.           (append (mapcar (function (lambda (x v) (append x (list v)))) matrix vector)
  7.                                                 '((0. 0. 0. 1.))
  8.           )
  9.         )
  10.       )
  11.     )
  12.     ((listp target)
  13.       (mapcar
  14.         (function
  15.           (lambda (point) (mapcar '+ (BF-Mat-MxV matrix point) vector))
  16.         )
  17.         target
  18.       )
  19.     )        
  20.   )
  21. )
  22. (defun BF-Mat-MxV (m v)
  23.   (mapcar (function (lambda (r) (apply '+ (mapcar '* r v)))) m)
  24. )
  25. (defun BF-Mat-ReflectByMatrix (target p1 p2 / m)
  26.   (
  27.     (lambda ( a / m )
  28.       (BF-Mat-ApplyMatrixTransformation target
  29.         (setq m
  30.           (list
  31.             (list (cos a)    (sin a)  0.)
  32.             (list (sin a) (- (cos a)) 0.)
  33.             (list    0.         0.    1.)
  34.           )
  35.         )
  36.         (mapcar '- p1 (BF-Mat-MxV m p1))
  37.       )
  38.     )
  39.     (* 2. (angle p1 p2))
  40.   )
  41. )
  42. (BF-Mat-ReflectByMatrix (vlax-ename->vla-object(car(entsel))) (getpoint)  (getpoint))

找到一个这个 直接看不懂
发表于 2023-5-9 09:28 | 显示全部楼层
飞雪神光 发表于 2023-5-8 19:27
找到一个这个 直接看不懂
  1. ;;;-----------------------------------------------------------;;
  2. ;;; 二维镜像变换矩阵                                              ;;
  3. ;;; 参数:                                                      ;;
  4. ;;; p1     - 镜像向量第一点                                   ;;
  5. ;;; p2     - 镜像向量第二点                                   ;;
  6. ;;;-----------------------------------------------------------;;
  7. ;;;----------------=={ Reflect by Matrix }==------------------;;
  8. ;;;                                                           ;;
  9. ;;; Reflects a VLA-Object or Point List using a               ;;
  10. ;;; Transformation Matrix                                     ;;
  11. ;;;-----------------------------------------------------------;;
  12. ;;; Author: Lee Mac, Copyright ? 2010 - www.lee-mac.com       ;;
  13. ;;;-----------------------------------------------------------;;
  14. ;;; Arguments:                                                ;;
  15. ;;; target - VLA-Object or Point List to transform            ;;
  16. ;;; p1, p2 - Points representing vector in which to reflect   ;;
  17. ;;;-----------------------------------------------------------;;
  18. (defun MAT:Reflect ( p1 p2 / a c s x y)
  19.   (setq a (angle p1 p2) a (+ a a))
  20.   (setq c (cos a) s (sin a))
  21.   (setq x (car p1) y (cadr p1))
  22.   (list
  23.     (list c    s  0. (- x (+ (* c x) (* s y))))
  24.     (list s (- c) 0. (- y (- (* s x) (* c y))))
  25.     '(0. 0. 1. 0.)
  26.     '(0. 0. 0. 1.)
  27.   )
  28. )
  29. (defun c:tt ()
  30.   (setq        ss  (ssget)                        ;选择集镜像
  31.         pt1 (getpoint)
  32.         pt2 (getpoint pt1)
  33.         i   0
  34.         mat (mat:reflect pt1 pt2)
  35.   )
  36.   (repeat (sslength ss)
  37.     (setq e   (ssname ss i)
  38.           obj (vla-copy (vlax-ename->vla-object e))
  39.           i   (1+ i)
  40.     )
  41. ;;;    (vla-Mirror obj (vlax-3D-point pt1)(vlax-3D-point pt2))
  42.     (vla-transformby obj (vlax-tmatrix mat))
  43.   )
  44. )


这个看着简单, 速度上没啥优势
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 04:27 , Processed in 1.471027 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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