明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: woxin168

[源码] 检查图纸中尺寸标注的比例,并设置成需要的线性比例

  [复制链接]
 楼主| 发表于 2023-12-16 12:14 | 显示全部楼层
直接改好,用这个:

;;; 修改标注线性比例BZXX。
(defun c:BZXX (/ oldvalue nb ss newvalue sel obj i newvalue1 newvalue2 sz szz)
  (setvar "cmdecho" 0)
  (textpage)
  (sssetfirst nil)
  (if (= newvalue2 nil)  (setq newvalue2 "1")  )
  (princ "\n 请选择标注:")
  (setq        ss (ssget '((0 . "DIMENSION")))  nb 0  )

  (if (/= ss nil) (setq nb (sslength ss)))
  
  (setq i 0 ss1 (ssadd) )
  (repeat nb
       (setq oldvalue (vla-get-linearscalefactor (vlax-ename->vla-object (ssname ss i)) )  )
       (setq sz (cons oldvalue sz))
       (princ (strcat "\n 第 "(rtos (1+ i)) " 个标注,线性比例是" (rtos oldvalue)))
       (if (/= oldvalue 1.0)
           (setq ss1 (ssadd (ssname ss i) ss1)))
   
       (setq i (1+ i))
    )
  
   (if (< (sslength ss1) 100)   ;小于100个夹点亮显,大于则普通亮显,因为选择大于100不能夹点亮显
       (sssetfirst nil ss1)     ;比例不是1的,且数量小于100时亮显。
       (draw ss1 3))
   
  
    (setq szz nil)
    (while (setq szz (cons (car sz) szz) sz (vl-remove(car sz)(cdr sz))))
    (setq sz (reverse szz))  ;消重

  
   (setq i  (length sz))
   (princ (strcat "\n 共有" (rtos i) "种线性比例是: " ))

   (setq  szz sz)
   (repeat  (length szz)
       (setq aa (car szz) szz (cdr szz))
       (princ (strcat " "(rtos aa) " " )) )

  (setq        newvalue1 1.0)
  (setq        newvalue1 (getstring  (strcat "\n 请输入新尺寸比例<dimlfac>,输入回车表示取消 :") )  )

  (if (/= newvalue1 "")
    (progn
      (setq newvalue (atof newvalue1))
      (setq i 0)
      (repeat nb
        (progn
          (setq sel (ssname ss i))
          (setq obj (vlax-ename->vla-object sel))
          (vla-put-linearscalefactor obj newvalue)
          (setq i (1+ i))
        )))
     (princ "\n 用户取消尺寸线性比例设置 ")   
   )
  
  (defun draw (ss i / j)               ; 亮显子函数
    (repeat (setq j (sslength ss))
      (redraw (ssname ss (setq j (1- j))) i)
    )
  )
  
   (princ "\n 尺寸线性比例设置完毕,欢迎使用  2023-12-9 ")
  (princ)
)

评分

参与人数 1明经币 +1 收起 理由
cj52000 + 1 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2023-12-26 02:04 | 显示全部楼层
woxin168 发表于 2023-12-11 20:22
这个都能设置,当然可以,加几句话即可。不过需求不大,一幅图,要么1:1,要么不是,最大的问题是本来不是 ...

如果用此命令之前,原先的尺寸人为改动了的话,这个命令就不起作用了。
发表于 2024-1-28 13:19 | 显示全部楼层
zilong136 发表于 2023-12-10 15:56
怎么是繁体字,表示不会用

把lisp文件保存的编码改为ANSI
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-27 02:32 , Processed in 0.147363 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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