明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9608|回复: 37

[已解答] 可否原位进行缩放

[复制链接]
发表于 2013-12-10 09:35:27 | 显示全部楼层 |阅读模式
如图上:第一排的图觉得小了,如何一次性在图原有位置进行放大缩小。图不限形状,可以圆,或方形或其它。谢谢!

本帖子中包含更多资源

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

x

点评

不能随便缩放,画图按比例大小缩放。  发表于 2013-12-10 19:10
发表于 2013-12-10 11:28:07 | 显示全部楼层
感谢 自贡黄明儒 G版 1993063 分享程序,学习了!
回复 支持 1 反对 0

使用道具 举报

发表于 2013-12-10 10:56:28 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-12-10 11:02 编辑

实体原位缩放 By Gu_xl
  1. (defun c:tt  (/ sc a b)
  2.   (if (null oldscale) (setq oldscale 2.0))
  3.   (initget 6)
  4.   (setq sc (getreal (strcat "\n缩放倍数<" (rtos oldscale 2 2)">:")))
  5.   (if (null sc) (setq sc oldscale) (setq oldscale sc))
  6.   (while (ssget)
  7.     (vlax-for        obj
  8.                 (vla-get-ActiveSelectionSet
  9.                   (vla-get-ActiveDocument (vlax-get-acad-object)))
  10.         (if (not (VL-CATCH-ALL-ERROR-P
  11.                    (VL-CATCH-ALL-APPLY
  12.                      'vla-GetBoundingBox
  13.                      (list obj 'a 'b))))
  14.           (progn
  15.             (vla-ScaleEntity
  16.               obj
  17.               (vlax-3d-point
  18.                 (mapcar
  19.                   '*
  20.                   '(0.5 0.5 0.5)
  21.                   (apply 'mapcar
  22.                          (cons '+
  23.                                (mapcar 'vlax-safearray->list
  24.                                        (list a b))))))
  25.               sc
  26.               )
  27.             )
  28.           )
  29.         )
  30.     )
  31.   (princ)
  32.   )
回复 支持 1 反对 0

使用道具 举报

发表于 2018-8-12 21:10:26 | 显示全部楼层
Gu_xl 发表于 2013-12-10 10:56
实体原位缩放 By Gu_xl

可以实现 X Y不同比例 原位缩放吗
发表于 2013-12-10 09:40:16 | 显示全部楼层
你那个是块吗?
发表于 2013-12-10 10:12:02 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2013-12-10 10:53 编辑

那就以圆心为基点缩放,矩形就先找到中点
  1. ;;原位缩放
  2. (defun C:w1 (/ EN N NUM SS X Y)
  3.   (defun cen (en / MAXP MINP X Y)
  4.     (vla-GetBoundingBox (vlax-ename->vla-object en) 'MinP 'MaxP)
  5.     (setq MinP (vlax-safearray->list MinP))
  6.     (setq MaxP (vlax-safearray->list MaxP))
  7.     (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) MinP MaxP)
  8.   )
  9.   (setq ss (ssget))
  10.   (setq num (getreal "\n 放大比例 "))
  11.   (if (and num ss)
  12.     (repeat (setq n (sslength ss))
  13.       (setq en (ssname ss (setq n (1- n))))
  14.       (vl-cmdf "_.scale" en "" (cen en) num)
  15.     )
  16.   )
  17.   (princ)
  18. )

评分

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

查看全部评分

 楼主| 发表于 2013-12-10 10:41:48 | 显示全部楼层
不是块。就是一般的图形
发表于 2013-12-10 11:11:58 | 显示全部楼层
本帖最后由 1993063 于 2013-12-9 17:17 编辑
  1. ;;;复制属性块后放大或缩小:2013.12.10 1993063
  2. (Defun C:scsc (/ i pt s1 ss ss-end sc)
  3.   (setq i  -1
  4.         ss (ssget)
  5.         sc (getreal "\n缩放比例:")
  6.   )
  7.   (setq pt1 (getpoint "\n指定第一点")
  8.         pt2 (getpoint pt1 "\n指定第二点")
  9.   )
  10.   (setq ss-end (entlast))
  11.   (command "copy" ss "" pt1 pt2)
  12.   (setq ss-end (last_ent ss-end))
  13.   (progn
  14.     (while (setq s1 (ssname ss-end (setq i (1+ i))))
  15.       (setq pt (ENTMID s1))
  16.       (Command "scale" s1 "" pt sc)
  17.     )
  18.   )
  19. )
  20. (defun last_ent (en / ss)
  21.   (if en
  22.     (progn
  23.       (setq ss (ssadd))
  24.       (while (setq en (entnext en))
  25.         (if (not (member (cdr (assoc 0 (entget en)))
  26.                          '("ATTRIB" "VERTEX" "SEQEND")
  27.                  )
  28.             )
  29.           (ssadd en ss)
  30.         )                               ;if
  31.       )                                 ;while
  32.       (if (zerop (sslength ss))
  33.         (setq ss nil)
  34.       )
  35.       ss
  36.     )                                   ;progn
  37.     (ssget "_x")
  38.   )                                     ;if
  39. )
  40. (Defun entmid ( ent /  maxp maxp )
  41.   (setq ent (vlax-ename->vla-object ent))(vla-getboundingbox ent 'minp 'maxp)
  42.   (setq maxp (vlax-safearray->list maxp) minp (vlax-safearray->list minp))
  43.   (Mapcar '(Lambda (x) (* x 0.5)) (Mapcar '+ minp maxp))
  44. )
发表于 2013-12-10 11:15:56 | 显示全部楼层
Gu_xl 发表于 2013-12-9 16:56
实体原位缩放 By Gu_xl

超版这么快,才写(拼)出来
发表于 2013-12-10 11:17:11 | 显示全部楼层
以为你那是属性块
 楼主| 发表于 2013-12-10 13:00:33 | 显示全部楼层
谢谢各位,都可以用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 07:03 , Processed in 0.167501 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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