明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: cq4920

[源码] 之前在布局画图时常用的工具

[复制链接]
发表于 2020-11-6 08:30 | 显示全部楼层
669423907 发表于 2020-11-6 08:24
不会这样的,是一个零件一个图框

看来你一般是避免这种多比例同图框的情况,我能理解的,这种情况如果只在模型空间作图的话,只能一个比例是正常作图,其他比例只能做成块,然后按比例缩放,才能放到一起
 楼主| 发表于 2020-11-6 09:23 | 显示全部楼层
xj6019 发表于 2020-11-6 08:30
看来你一般是避免这种多比例同图框的情况,我能理解的,这种情况如果只在模型空间作图的话,只能一个比例 ...

同图框多比例,对标注影响最大,需要对放大后的标注,二次处理一下 线性值和全局比例!

;;========================================
;; 标注全局比例
;;========================================
(defun c:das ( / ss n Lobj Nb dde *error*)
  (defun *error* (s)(princ (strcat "\n程序出错: " s)))
  (setvar "CMDECHO" 0)
  (princ "\n选择需修改 全局比例 的标注:")
  (if (setq ss (ssget '((0 . "DIMENSION"))))
                (progn
                        (setq n 0 Lobj '())
                        (repeat (sslength ss)
                                (setq Lobj (cons (vla-get-ScaleFactor (vlax-ename->vla-object (ssname ss n))) Lobj)
                                        n (1+ n))
                        )
                        (setq dde (rtos (car Lobj) 2 4))
                        (if (and (cdr Lobj) (null (apply '= Lobj)))(setq dde "*多种*"))
                        (setq Nb (getdist (strcat "\n请输入全局比例 <"  dde ">:" )))
                        (or Nb (setq Nb (atof dde)))
                        (setq n 0)
                        (if (/= Nb 0)
                                (repeat (sslength ss)
                                        (vla-put-ScaleFactor (vlax-ename->vla-object (ssname ss n)) Nb)
                                        (setq n (1+ n))
                                ))
                ))
        (setvar "CMDECHO" 1)
        (princ)
)


;;========================================
;; 标注单位比例因子
;;========================================
(defun c:daa ( / ss n Lobj Nb dde *error*)
  (defun *error* (s)(princ (strcat "\n程序出错: " s)))
  (setvar "CMDECHO" 0)
  (princ "\n选择需修改 全局比例 的标注:")
  (if (setq ss (ssget '((0 . "DIMENSION"))))
                (progn
                        (setq n 0 Lobj '())
                        (repeat (sslength ss)
                                (setq Lobj (cons (vla-get-linearscalefactor(vlax-ename->vla-object (ssname ss n))) Lobj)
                                        n (1+ n))
                        )
                        (setq dde (rtos (car Lobj) 2 4))
                        (if (and (cdr Lobj) (null (apply '= Lobj)))(setq dde "*多种*"))
                        (setq Nb (getdist (strcat "\n请输入线性比例 <"  dde ">:" )))
                        (or Nb (setq Nb (atof dde)))
                        (setq n 0)
                        (if (/= Nb 0)
                                (repeat (sslength ss)
                                        (vla-get-linearscalefactor (vlax-ename->vla-object (ssname ss n)) Nb)
                                        (setq n (1+ n))
                                ))
                ))
        (setvar "CMDECHO" 1)
        (princ)
)



有兴趣可以参考这两个程序做一个调整标注的插件
发表于 2020-11-6 10:42 | 显示全部楼层
cq4920 发表于 2020-11-6 09:23
同图框多比例,对标注影响最大,需要对放大后的标注,二次处理一下 线性值和全局比例!

;;=========== ...

谢谢分享得源码。
我个人还是习惯布局里面出图,感觉要省事的多
回复 支持 1 反对 0

使用道具 举报

发表于 2021-6-28 15:24 | 显示全部楼层
没图,没说明,不知道插件啥功能啊
发表于 2021-7-9 17:17 | 显示全部楼层
布局太高级了
发表于 2022-9-19 09:06 | 显示全部楼层

学习了,谢谢分享
发表于 2024-2-13 17:29 | 显示全部楼层
学习啦,收藏备用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 22:19 , Processed in 0.157064 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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