明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 407|回复: 2

[提问] 求助 修改标注样式的全局比例和比例因子

[复制链接]
发表于 2024-2-24 18:14 | 显示全部楼层 |阅读模式
本帖最后由 hubeiwdlue 于 2024-2-24 18:27 编辑

    我想缩放图形,同时修改标注样式中的全局比例(40组码)和测量单位比例因子。但是写的代码总是有问题,请教大家错在那里。

  1. (defun emod (ent code value)  
  2.   (if (= (type ent) 'ename) (setq ent (entget ent)))
  3.   (setq b(cons code value))
  4.   (if(setq a(assoc code ent))
  5.      (entmod(subst b a ent))
  6.      (entmod(append ent(list b))))
  7. )
  8. (defun c:tt()
  9.   (princ "\n 选择缩放对象")
  10.   (setq ss (ssget))
  11.   (setq pt1 (getpoint "\n选择基点"))
  12.   (setq sfbili (getreal "\n 输入缩放比例"))
  13.   (vl-cmdf "_.SCALE" ss "" pt1 sfbili "")
  14.   (setq dimstyles (vla-get-dimstyles (vla-get-activedocument (vlax-get-acad-object))))
  15.   (vlax-for dim dimstyles
  16.     (setq name (vla-get-name dim))
  17.     (setq dent (entget (tblobjname "dimstyle" name)));;标注样式名为name的符号表条目
  18.     (setq dim144 (getvar "DIMLFAC"));;标注样式比例因子
  19.     (setq dim40 (getvar "DIMSCALE"));;标注样式全局比例
  20.     ;(setvar "DIMLFAC" (/ dim144 sfbili))
  21.     ;(setvar "DIMSCALE" (* dim40 sfbili))
  22.     (emod dent 144 (/ dim144 sfbili))
  23.     (emod dent 40 (* dim40 sfbili))
  24.   )
  25.   (princ)
  26. )


 楼主| 发表于 2024-2-25 13:14 | 显示全部楼层
用command方法可以实现,但是用entmake方法,总是出问题。另外,用对象属性的方法,应该怎么做,我不清楚怎么查属性和方法。
  1. (defun c:tt()
  2.         (setq ltbili (getvar "LTSCALE"));;线型全局比例因子
  3.         (setq ss (wdl_ssget "\n 选择缩放对象" nil))
  4.         (setq pt1 (getpoint "\n选择基点"))
  5.         (setq sfbili (getreal "\n 输入缩放比例"))
  6.         (vl-cmdf "_.SCALE" ss "" pt1 sfbili "")
  7.         (setvar "LTSCALE" (/ ltbili sfbili))
  8.         (setq dimstyles (vla-get-dimstyles (vla-get-activedocument (vlax-get-acad-object))))
  9.         (vlax-for dim dimstyles
  10.                 (setq name (vla-get-name dim))
  11.                 (setq den (tblobjname "dimstyle" name))
  12.                 (command "-DIMSTYLE" "R" name) ;置为当前
  13.                 (setq dim144 (getvar "DIMLFAC"));;标注样式比例因子
  14.                 (setq dim40 (getvar "DIMSCALE"));;标注样式全局比例               
  15.                 (command
  16.                         "DIMLFAC"  (/ dim144 sfbili);设置线性标注测量值的比例因子
  17.                         "DIMSCALE" (* dim40 sfbili);设置应用于标注变量的全局比例因子
  18.                         "-DIMSTYLE" "S" name "Y" ;保存修改到当前样式
  19.                 )
  20.         )
  21.         (princ)
  22. )
发表于 2024-2-25 10:52 | 显示全部楼层
帮顶,希望高手帮忙解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 07:57 , Processed in 0.150225 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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