明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 889|回复: 6

【求助】轴线交点批量缩放图块

[复制链接]
发表于 2020-11-6 09:37 | 显示全部楼层 |阅读模式
5明经币
本帖最后由 tigcat 于 2021-8-3 14:35 编辑

请问大侠,轴网交点处布置有图块,有没有办法按轴线交点批量缩放图块呢?



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

最佳答案

查看完整内容

(defun c:tt (/ a b end-n n name obj ojb-lst p pt pt-lst scale ss1 ss2) (if (and (princ "\n选择块") (setq ss1 (ssget '((0 . "INSERT")))) (princ "\n选择轴线") (setq ss2 (ssget '((0 . "LINE")))) (setq scale (getreal "\n缩放倍数")) ) (progn (while (setq name (ssname ss2 0)) (setq ojb-lst (append ojb-lst (list (vlax-ename->vla-object name)))) (ssdel name ...
发表于 2020-11-6 09:37 | 显示全部楼层
(defun c:tt (/ a b end-n n name obj ojb-lst p pt pt-lst scale ss1 ss2)
        (if (and
                                (princ "\n选择块")
                                (setq ss1 (ssget '((0 . "INSERT"))))
                                (princ "\n选择轴线")
                                (setq ss2 (ssget '((0 . "LINE"))))
                                (setq scale (getreal "\n缩放倍数"))
                        )
                (progn
                        (while (setq name (ssname ss2 0))
                                (setq ojb-lst (append ojb-lst (list (vlax-ename->vla-object name))))
                                (ssdel name ss2)
                        )
                        (setq pt-lst nil)
                        (repeat (length ojb-lst)
                                (setq obj (car ojb-lst))
                                (setq ojb-lst (cdr ojb-lst))
                                (foreach x ojb-lst
                                        (if (setq pt (vlax-invoke obj 'Intersectwith x 0))
                                                (setq pt-lst (append pt-lst (list pt)))
                                        )
                                )
                        )
                        (while (setq name (ssname ss1 0))
                                (setq obj (vlax-ename->vla-object name))
                                (setq p t)
                                (setq end-n (length pt-lst))
                                (setq n 0)
                                (while p
                                        (if (= end-n (1+ n)) (setq p nil))
                                        (setq pt (nth n pt-lst))
                                        (vla-GetBoundingBox obj 'a 'b)
                                        (setq a (vlax-safearray->list a));左下角
                                        (setq b (vlax-safearray->list b));右上角
                                        (if (and
                                                                (< (car pt) (car b))
                                                                (> (car pt) (car a))
                                                                (< (cadr pt) (cadr b))
                                                                (> (cadr pt) (cadr a))
                                                        )
                                                (progn
                                                        (vla-ScaleEntity obj (vlax-3D-point pt) scale)
                                                        (setq p nil)
                                                )
                                        )
                                        (setq n (1+ n))
                                )
                                (ssdel name ss1)
                        )
                )
        )
)

评分

参与人数 1明经币 +1 收起 理由
tigcat + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-11-6 09:38 | 显示全部楼层
请大侠提供帮助,虽然明经币比较小。
回复

使用道具 举报

 楼主| 发表于 2020-11-8 18:57 来自手机 | 显示全部楼层
谢谢大神回复,等下我去电脑上试试,太感谢了。
回复

使用道具 举报

 楼主| 发表于 2020-11-8 19:20 | 显示全部楼层
taoyi0727 发表于 2020-11-6 09:37
(defun c:tt (/ a b end-n n name obj ojb-lst p pt pt-lst scale ss1 ss2)
        (if (and
                                (princ "\n选 ...

特别感动,也非常感谢,看到发帖时间都是深夜了,大侠这个程序比我想的细致,可以自己输入放大倍数,我试用了一下,速度也很快,我的图块秒杀完成缩放。论坛现在感觉大家不怎么回答问题,我觉得像我这种问题可能没有深度,高手觉得伸手党吧。自己现在的情况是用到的时候去想办法拼凑和改,一旦没有类似的原型,我就不会弄了,由于大多的时候是在改前辈的程序适用自己,没有系统学习下来,所以自己水平低。以后自己多学习,争取提出的问题有水平点。再次感谢@taoyi0727大侠出手相助。
回复

使用道具 举报

发表于 2020-12-22 07:47 | 显示全部楼层
同是结构佬
回复

使用道具 举报

 楼主| 发表于 2020-12-22 10:19 | 显示全部楼层

是的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 22:07 , Processed in 0.159697 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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