cq4920 发表于 2020-11-2 21:49:06

之前在布局画图时常用的工具

备用,也许以后还能再用布局画图

xj6019 发表于 2020-11-6 10:42:24

cq4920 发表于 2020-11-6 09:23
同图框多比例,对标注影响最大,需要对放大后的标注,二次处理一下 线性值和全局比例!

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

谢谢分享得源码。
我个人还是习惯布局里面出图,感觉要省事的多

G〆h 发表于 2020-11-3 09:06:46

本帖最后由 G〆h 于 2020-11-3 09:09 编辑

布局绘图是一个相对比较大的系统,前期的图层、视口准备、图块定义、绘图归类思路等可能更重要。后面的插件只是方便管理而已。从楼主的源码思路来看,可能更偏重的是现用现开视口,感觉更费时费力。个人建议先有模版(图层和视口图层显隐都先定义好),后面切换,则先通过定义视图名,再放在对应的视口中即可。
但有些对于一些非标绘图,临阵磨枪,还是不错的。

cq4920 发表于 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)
)



有兴趣可以参考这两个程序做一个调整标注的插件

vlisp2012 发表于 2020-11-3 07:04:16

Thx for sharing!!!

xj6019 发表于 2020-11-3 07:46:37

谢谢分享,布局类的使用工具感觉论坛明显不多,继续期待更多的好工具的出现

panliang9 发表于 2020-11-3 08:58:36

谢谢楼主分享。

paulpipi 发表于 2020-11-3 09:55:08

学习了,谢谢分享

cq4920 发表于 2020-11-3 10:20:09

G〆h 发表于 2020-11-3 09:06
布局绘图是一个相对比较大的系统,前期的图层、视口准备、图块定义、绘图归类思路等可能更重要。后面的插件 ...

图层状态管理器,没研究过,通过复制过来的视口没有视口图层状态,只会通过模版来保存图层状态!那我用CAD不只是画施工,还要画其他,很不喜欢每次新建的文件里就有好多用不上的东西!未必会卡,只是不喜欢!你的方法也不过只是仅仅适用于十张平面图的视口,图层显示和隐藏也都是有快捷键的点几下鼠标的事而已 其他上百个 甚至几百个视口 你也有模版?

yoyoho 发表于 2020-11-3 12:28:49

谢谢! cq4920楼主分享!!!!!!

czb203 发表于 2020-11-3 20:57:00

谢谢! cq4920楼主分享!!!!!!

上善若水!@# 发表于 2020-11-4 10:28:53

学习了,谢谢分享
页: [1] 2 3
查看完整版本: 之前在布局画图时常用的工具