明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2721|回复: 9

[已解答] 1/4镜像增强有了,1/4旋转增强怎样写。

[复制链接]
发表于 2014-7-1 10:42:24 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 李青松 于 2014-7-1 13:33 编辑

1/4镜像增强有了,1/4旋转增强怎样写。要求以选择对象的中心作为旋转点


(defun c:tt ( / a b e i l p q s )
    (if
        (and
            (setq s (ssget))
            (setq e (car (entsel "\n选择其它对象的中心作为镜像点: ")))
        )
        (progn
            (vla-getboundingbox (vlax-ename->vla-object e) 'a 'b)
            (setq q
                (mapcar
                   '(lambda ( a b ) (/ (+ a b) 2.0))
                    (vlax-safearray->list a)
                    (vlax-safearray->list b)
                )
            )
            (setq p (trans q 0 1))
            (repeat (setq i (sslength s))
                (setq l (list (vlax-ename->vla-object (ssname s (setq i (1- i))))))
                (foreach v '((1 0) (0 1))
                    (foreach o l
                        (setq l (cons (vlax-invoke o 'mirror q (trans (mapcar '+ p v) 1 0)) l))
                    )
                )
            )
        )
    )
    (princ)
)
(vl-load-com) (princ)

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

点评

语文一般  发表于 2014-7-1 13:43
发表于 2014-7-1 13:15:53 | 显示全部楼层
“1/4旋转”的含义?贴图说明

点评

院长就是高风亮节。  发表于 2014-7-1 13:30
你们看,我们可爱的院长  发表于 2014-7-1 13:20
回复

使用道具 举报

 楼主| 发表于 2014-7-1 13:35:01 | 显示全部楼层
本帖最后由 李青松 于 2014-7-1 13:36 编辑
xyp1964 发表于 2014-7-1 13:15
“1/4旋转”的含义?贴图说明

已经贴上说明了,在顶上

点评

代码自己改  发表于 2014-7-1 13:50
回复

使用道具 举报

发表于 2014-7-1 13:49:19 | 显示全部楼层

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2014-7-1 14:30:05 | 显示全部楼层
本帖最后由 李青松 于 2014-7-1 16:08 编辑

代码共享出来吧,大家都可以分享,没必要压在箱底。

提了一个这么有贡献的问题,竟然没有得到结果。悲哀!
回复

使用道具 举报

发表于 2014-7-4 08:29:01 | 显示全部楼层
求选择图形最小对角点
  1. (defun sscornerp ( s / a b i m n o )
  2.     (repeat (setq i (sslength s))
  3.         (if
  4.             (and
  5.                 (setq o (vlax-ename->vla-object (ssname s (setq i (1- i)))))
  6.                 (vlax-method-applicable-p o 'getboundingbox)
  7.                 (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list o 'a 'b))))
  8.             )
  9.             (setq m (cons (vlax-safearray->list a) m)
  10.                   n (cons (vlax-safearray->list b) n)
  11.             )
  12.         )
  13.     )
  14.     (if (and m n)
  15.         (mapcar '(lambda ( a b ) (apply 'mapcar (cons a b))) '(min max) (list m n))
  16.     )
  17. )


求选择图形的中心点
  1. (defun centerp (ss )
  2. (mapcar '(lambda (x)(/ x 2))
  3. (apply '(lambda (e1 e2)(mapcar '+ e1 e2)) (sscornerp ss)) )
  4. )

回复

使用道具 举报

发表于 2014-7-4 09:19:20 | 显示全部楼层
(Defun C:TT ( / *error*  EntMid cmd ss)
        (Defun *error* (x)(setvar 'cmdecho cmd)(princ))
        (Defun EntMid ( ent /  maxp maxp )
                (setq ent (vlax-ename->vla-object ent))(vla-getboundingbox ent 'minp 'maxp)
                (setq maxp (vlax-safearray->list maxp) minp (vlax-safearray->list minp))
                (Mapcar '(Lambda (x) (* x 0.5)) (Mapcar '+ minp maxp))
        )
        (setq cmd (getvar 'cmdecho))
        (if (setq ss (ssget))
                (progn
                        (if (setq pt (EntMid (car (entsel))))
                                (progn
                                        (setvar 'cmdecho 0)
                                        (Command "array" ss "" "p" pt 4 "" "")
                                        (setvar 'cmdecho cmd)
                                )
                        )
                )
        )
        (princ)
)
回复

使用道具 举报

发表于 2014-7-4 10:44:59 | 显示全部楼层
本帖最后由 ymcui 于 2014-7-4 10:47 编辑
1993063 发表于 2014-7-4 09:19
(Defun C:TT ( / *error*  EntMid cmd ss)
        (Defun *error* (x)(setvar 'cmdecho cmd)(princ))
   ...


那四角移动又要怎样写!!!

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2014-7-4 13:12:22 | 显示全部楼层
  1. ;; 1/4复制
  2. (defun c:tt ()
  3.   (princ "\n选择实体: ")
  4.   (if (and (setq ss (ssget))
  5.            (setq s1 (car (entsel "\n选择其它对象确定中心点: ")))
  6.       )
  7.     (progn
  8.       (setq p0 (xyp-9pt s1 5)
  9.             p1 (xyp-9pt ss 5)
  10.             p2 (xyp-PtMirrorWith2pt p1 p0 (xyp-Pt2Y p0 1))
  11.             p3 (polar p0 (angle p1 p0) (distance p1 p0))
  12.             p4 (xyp-PtMirrorWith2pt p1 p0 (xyp-Pt2x p0 1))
  13.       )
  14.       (foreach pt (list p2 p3 p4)
  15.         (xyp-copymove ss p1 pt)
  16.       )
  17.     )
  18.   )
  19.   (princ)
  20. )

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
ymcui + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-7-4 13:39:07 | 显示全部楼层
xyp1964 发表于 2014-7-4 13:12

呵呵,院长出手就知有没有.高
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-24 09:05 , Processed in 0.165477 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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