明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

看来你一般是避免这种多比例同图框的情况,我能理解的,这种情况如果只在模型空间作图的话,只能一个比例是正常作图,其他比例只能做成块,然后按比例缩放,才能放到一起
 楼主| 发表于 2020-11-6 09:23:08 | 显示全部楼层
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:24 | 显示全部楼层
cq4920 发表于 2020-11-6 09:23
同图框多比例,对标注影响最大,需要对放大后的标注,二次处理一下 线性值和全局比例!

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

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

使用道具 举报

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

学习了,谢谢分享
发表于 2024-2-13 17:29:24 | 显示全部楼层
学习啦,收藏备用
发表于 2024-8-25 16:50:30 | 显示全部楼层
大佬,  (mc:be)这个函数缺失。。。;;说明:视口比例
(defun c:vc ( / newdbdist zfc)
  (mc:be)
        (setq ss (ssget))
        (COMMAND "zoom" "o" ss "")
        (setq zfc (strcat "\n请输入视图比例<默认值 " (rtos (getvar "USERR1")) ">: "))
        (if (= (setq newdbdist (getreal zfc)) nil)
                (setq newdbdist (getvar "USERR1"))
        )
        (setvar "USERR1" newdbdist)
        (command "zoom" "s" (strcat (rtos (/ 1.0 newdbdist) 2 10) "xp"))
        (princ)
发表于 2024-9-22 16:57:19 | 显示全部楼层
学习了,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 06:29 , Processed in 0.153456 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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