备份一个思路 以备后期寻找 视口内按比例调整标注和文字
本帖最后由 xj6019 于 2020-9-24 22:02 编辑http://bbs.mjtd.com/forum.php?mod=viewthread&tid=107011&highlight=%B4%B0%BF%DA%C4%DA
参照以上链接的4楼代码
;可见区域重生成(hbllw 2010-11-6)
(defun c:re( / $screen atio ce ch ch2 hh hh2 k p1 p2 ss)
(setq $screen (getvar "SCREENSIZE"))
(setq ch (getvar "viewsize"))
(setq ch2 (/ ch 2)) (setq ce (getvar "viewctr"))
(setq atio (/ (car $screen) (cadr $screen)))
(setq hh (* atio ch))
(setq hh2 (/ hh 2))
(setq p1 (polar (polar ce 0 hh2)
(* 1.5 pi) ch2))
(setq p2 (polar (polar ce pi hh2)
(* 0.5 pi) ch2))
(setq SK (ssget "C" p1 p2))
(setq k -1)
(if (> (sslength SK) 0)
(repeat (sslength SK)
(entupd (ssname SK (setq k (1+ k))))))
;(command "要执行的命令" SK "")
(princ))
可取得视口内所有图元并做成选择集SK.
http://bbs.mjtd.com/thread-182353-1-1.html
这个链接的2楼
(sssetfirst nil sK)
使视口内对象处于选择状态
(vl-cmdf "-dimstyle" "a" SK "") 将当前标注样式刷入到SK选择集。
重复上面的步骤。
用字高的代码刷字高。
字高的代码很多,可以把字高读取当前标注比例因子,然后按照倍数设置字高,这样字高可以根据不同标注样式自由调整。
通俗的说就是激活视口下,将当前视口比例,调整为自己标注样式对应的比例,然后把视口内对象字高和标注都刷成相同的比例,
论坛里面有“根据布局视口比例变化自动更改标注”的代码,不过是只改标注的比例因子,改后会比较乱,
相同标注样式下会出现各种比例因子的对象,不利于后期改图的时候的区分,比方说看着像是50倍的标注样式,查询却发现其实是用的20倍的标注样式改过来的情况多的话,会乱七八糟,因此才想弄出今天这个功能代码来。
各位老师有更好的方法请赐教,我这个纯属是乱凑,不过功能是可以实现的。
各位同僚,有更好的代码也请贴出来,大家一起钻研一下哦。我这个通用性太差,也可以说没通用性,只能局限于一个人,或者几个人用同样的cad模板出图的时候用。
当然可能会有人说为啥不用注释行标注呀,说实在的个人感觉注释性标注用起来还真不得劲,有种墨守成规很死板的感觉。虽然很多大型设计院都是用注释性来出图,个人感觉不用自定义代码的话完全可以去适应注释性标注,用自定义代码插件的话,搭配出一组标注专属的代码后,比注释标注要快,要方便的多。纯属个人见解哦,不同意的勿拍砖。:lol
本帖最后由 xj6019 于 2020-9-24 22:06 编辑
上面不知道怎么粘贴了代码后格式乱套了,重启一层楼:lol
大体格式如下,因为我自己的标注样式和文字格式啥的都是我自己这边专用的,相应代码贴出来也没意义,只能局限于我自己使用,因此我只提供一下思路,自己找到对应的代码,套上就能用,改字高的代码,论坛里面一堆一堆的,不是问题。
(defun c:TT( )
(一楼的代码直接去掉C:做成子函数,这里调用)
(sssetfirst nil SK)
(字高的代码给SK刷入字高)
(一楼的代码直接去掉C:做成子函数,这里调用)
(sssetfirst nil SK)
(vl-cmdf "-dimstyle" "a" SK "") ;将当前标注样式刷入 SK
(princ)
)
我找遍了论坛和百度,就只找到了1楼那个代码可以这样调用,这样虽然是凑班子的感觉,好在完全实现了我理想的功能,非常棒,画图又省事了。
天呐,,这样标注起来,对小白更方便理解呀,谢谢楼主了 999999 发表于 2020-9-25 09:40
天呐,,这样标注起来,对小白更方便理解呀,谢谢楼主了
我也是小白,纯净的小白 把代码转成自定义函数很简单啊,你要调用其他程序就把它改一下就行了
(defun c:tt (/ ss)
(setq ss (ssget))
......
)
改为:
(defun tt (ss/)
(setq ss (ssget))
......
)
把变量改为参数就可以随便调用了。(tt ss) 用处很大。。。定。。希望继续完善
页:
[1]