明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3397|回复: 19

[源码] 标注比例更改

[复制链接]
发表于 2018-3-29 08:21 | 显示全部楼层 |阅读模式
在论坛上看到一个增强标注,但到我下下来后,执行了命令,但是标注比例没有变,我就把他改了一下,现在可以用了,只是命令执行完后还要敲两次确认再能进入下一个命令,请高手帮忙再优化下,谢谢了
原贴地址:http://bbs.mjtd.com/forum.php?mo ... F6%C7%BF&page=1

(DEFUN C:ds1()
(setq nl(car (entsel "选取图框:")))
;;(setq p3 (cdr(assoc 42 (entget nl))))
(vla-getboundingbox (vlax-ename->vla-object nl) 'll 'ur)
(setq pt1 (vlax-safearray->list ll))
(setq pt2 (vlax-safearray->list ur))
(setq n (ssget "_W" pt1 pt2))
(COMMAND "DIMSCALE"p3 "" n "")
(COMMAND "textsize"p3 "" n "")
(PRINC ))

发表于 2018-3-31 15:04 | 显示全部楼层
yxl88168 发表于 2018-3-31 13:05
我再10楼把图档传上来了,你看一下,谢谢了

(DEFUN C:ds1()                                                                                                                                                                                   
(setq nl(car (entsel "選取圖框:")))  ;選取的圖框,必須是塊,因為他有比例                                                                                                                        
(setq p3 (cdr(assoc 42 (entget nl))))   ;p3變數為選取塊的比例                                                                                                                                   
(vla-getboundingbox (vlax-ename->vla-object nl) 'll 'ur)   ;抓取塊的左下及右上的坐標                                                                                                            
(setq pt1 (vlax-safearray->list ll)) ;定義左下的pt1坐標                                                                                                                                         
(setq pt2 (vlax-safearray->list ur)) ;定義右上的pt2坐標                                                                                                                                         
(setq n (ssget "_W" pt1 pt2))  ;窗選範圍內所有的物件                                                                                                                                            
(COMMAND "_DIMOVERRIDE" "DIMSCALE" p3 "" n "")  ; 取代窗選範圍內"標註"的比例                                                                                                                    
(COMMAND "DIMSCALE" p3)  ;設定標註的比例,就如您所說,在標註前先設定好比例,就不可以用 (COMMAND "DIMSCALE" p3 "" n "") ,因為  "" n ""這一段會讓command接下來要做什麼,所以您說會多按一下的原因。
(COMMAND "textsize" p3) ;設定單行文字與多行文字的字高                                                                                                                                          
(PRINC ))      
如果您只需設定
可以這樣
(DEFUN C:ds1()                                                                                                                                                                                   
(setq nl(car (entsel "選取圖框:")))                     
(setq p3 (cdr(assoc 42 (entget nl))))                                          
(COMMAND "DIMSCALE" p3)
(COMMAND "textsize" p3) ;設定單行文字與多行文字的字高                                                                                                                                          
(PRINC ))                                                                                                                                                                                                                                                                                                                                                                        

点评

程序解释详细,非常棒。  发表于 2020-11-13 16:27

评分

参与人数 1明经币 +1 金钱 +10 收起 理由
yxl88168 + 1 + 10 很给力!

查看全部评分

回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2018-4-1 10:20 | 显示全部楼层
bssurvey 发表于 2018-3-31 17:23
(COMMAND "textsize" (* p3 2.6))

(DEFUN C:ds1()
(setq nl(car (entsel "選取圖框:")))                     
(setq p3 (cdr(assoc 42 (entget nl))))                                          
(COMMAND "DIMSCALE" p3)
(COMMAND "textsize" p3) ;設定單行文字與多行文字的字高
(PRINC ))

我们用的就是 一个,发现一个问题,每次执行完命令后,就设置好了标注比例和字高,但是等我标好一个图,再去标另一个图,(另一个图的图框与这一个一样的)发现字高就自动变成了3,需要我再次执行下DS1命令,能不能让他把上次的字高记住,一直到我下次再因图框大小有变化时,
发表于 2018-3-29 10:48 | 显示全部楼层
1.p3的變數關掉了,(COMMAND "DIMSCALE" p3 "" n "") ,P3會抓不到值。
2.原碼(COMMAND "_DIMOVERRIDE" "DIMSCALE" p3 "" n "") 改成(COMMAND "DIMSCALE" p3 "" n "") 在  p3後的"" n "" 會沒作用 ,而產生了干擾。
3.(COMMAND "textsize"p3 "" n "") 在p3後的"" n "" 會沒作用 ,而產生了干擾,且 也不知作用在哪。
 楼主| 发表于 2018-3-29 12:06 | 显示全部楼层
bssurvey 发表于 2018-3-29 10:48
1.p3的變數關掉了,(COMMAND "DIMSCALE" p3 "" n "") ,P3會抓不到值。
2.原碼(COMMAND "_DIMOVERRIDE" "D ...

但是原码在我的CAD上执行了没有反应,改了的还有作用,只是要多按两次确认键
发表于 2018-3-29 14:29 | 显示全部楼层
yxl88168 发表于 2018-3-29 12:06
但是原码在我的CAD上执行了没有反应,改了的还有作用,只是要多按两次确认键

其實他是參考了http://bbs.mjtd.com/thread-100053-1-1.html
其實是可以用的,下載"增强标注-不同图框自动更改全局比例 "的圖檔就可以用了。
 楼主| 发表于 2018-3-29 15:10 | 显示全部楼层
bssurvey 发表于 2018-3-29 14:29
其實他是參考了http://bbs.mjtd.com/thread-100053-1-1.html
其實是可以用的,下載"增强标注-不同图框自 ...

这个我下了,不合我们的方式,我要的是先改好,后面再标,他那个是自动把标好的改掉,而用我们用的是坐标标注,很多标注,一个个的标时间来不急,用的是自动标注
发表于 2018-3-29 15:48 | 显示全部楼层
yxl88168 发表于 2018-3-29 15:10
这个我下了,不合我们的方式,我要的是先改好,后面再标,他那个是自动把标好的改掉,而用我们用的是坐标 ...

有否圖檔供參
 楼主| 发表于 2018-3-30 14:19 | 显示全部楼层

链接:https://pan.baidu.com/s/1zql2PR4_EEBz_CEhyfxO_g 密码:teb3

因为图档跟LISP无关,我就把他传到百度网盘上了,你下得看看,其实我就是想要一个在标一个图前,LISP能自动调整好标注的大小与文字的大小,然后我再来标注,要是等我全部标好后,再能调整标注与文字的大小,由于零件大小相差较大,会使得图档很不美观,谢谢你了
发表于 2018-3-31 08:04 | 显示全部楼层
yxl88168 发表于 2018-3-30 14:19
链接:https://pan.baidu.com/s/1zql2PR4_EEBz_CEhyfxO_g 密码:teb3

因为图档跟LISP无关,我就把他传 ...

網址好像有問題,無法鏈結
 楼主| 发表于 2018-3-31 13:05 | 显示全部楼层
这种就是我们的图档,模具图一般都是这样标的

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 06:44 , Processed in 0.205978 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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