明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2563|回复: 5

求助 我的 lisp 设定标注问题在哪里?

[复制链接]
发表于 2012-12-20 12:59:38 | 显示全部楼层 |阅读模式
本帖最后由 MRHDF 于 2012-12-20 13:03 编辑

我想实现这个功能:用lisp来设定尺寸标注样式。所有设置大小按照实际需要图纸尺寸设置,仅修改全局比例 来创建不同的比例的标注样式。
(defun c:b2()
(command "-style" "_TCH_DIM" "simplex.shx,hztxt.shx" "3" "0.9" "0" "N" "N" "N" )  
(if (= (tblsearch "dimstyle" "AADRI_100") nil)(command "dimstyle" "save" "AADRI_100"))

(command"-dimstyle" "r" "AADRI_100"
"dimclrd" "3" ;尺寸线色
"dimclre" "3" ;尺寸界线色
"DIMBLK"     "ArchTick"  ;箭头形状
"dimblk1" "ArchTick" ;箭头形状
"dimblk2" "ArchTick" ;箭头形状
"dimasz" "2.5";箭头大小
"dimtxsty" "_TCH_DIM" ;文字样式
"dimclrt" "3";文字色
"dimtxt" "3.5";文字高度
"dimlunit" "2";单位格式
"dimdec" "0";精度
"dimdsep" ".";小数分格符
"dimzin" "4";消零
"dimscale" "100";全局比例
)

(princ))


问题是我的文字大小怎么不跟着全局比例放大100倍,实际标注文字高度只有3.5.不是3500?

求助,急盼高手回复。

发表于 2012-12-20 19:37:07 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2012-12-20 19:47 编辑

  1. (defun c:b2()
  2. (command "-style" "_TCH_DIM" "simplex.shx,hztxt.shx" "0" "0.9" "0" "N" "N" "N")
  3. (setvar "dimclrd" 3)          ;尺寸线色
  4. (setvar "dimclre" 3)          ;尺寸界线色
  5. (setvar "DIMBLK" "ArchTick")  ;箭头形状
  6. (setvar "dimblk1" "ArchTick") ;箭头形状
  7. (setvar "dimblk2" "ArchTick") ;箭头形状
  8. (setvar "dimasz" 2.5)         ;箭头大小
  9. (setvar "dimtxsty" "_TCH_DIM");文字样式
  10. (setvar "dimclrt" 3)          ;文字色
  11. (setvar "dimtxt" 3.5)         ;文字高度
  12. (setvar "dimlunit" 2)         ;单位格式
  13. (setvar "dimdec" 0)           ;精度
  14. (setvar "dimdsep" ".")        ;小数分格符
  15. (setvar "dimzin" 8)           ;消零
  16. (setvar "dimscale" 100)       ;全局比例
  17. (if (= (tblsearch "DIMSTYLE" "AADRI_100") nil)
  18.   (command "-dimstyle" "S" "AADRI_100")
  19.   (command "-dimstyle" "S" "AADRI_100" "Y")
  20. )
  21. (princ)
  22. )

 楼主| 发表于 2012-12-20 19:45:13 | 显示全部楼层
好用 谢谢。  
 楼主| 发表于 2012-12-20 20:15:45 | 显示全部楼层
ZZXXQQ 发表于 2012-12-20 19:37

(defun c:b2 ( )
(dbg bzys "AADRI_100" 100 )
(dbg bzys "AADRI_200" 200 )
)

(defun  bzys ( dimst dimsc )
(command "-style" "AADRI_DIM"  "simplex.shx,hztxt.shx" "0" "0.9" "0" "N" "N" "N" )  
(if (= (tblsearch "dimstyle" dimst ) nil)(command "dimstyle" "save" dimst ))
(command"-dimstyle" "r" dimst
"dimclrd" "3" ;尺寸线色
"dimclre" "3" ;尺寸界线色
"DIMBLK"     "ArchTick"  ;箭头形状
"dimblk1" "ArchTick" ;箭头形状
"dimblk2" "ArchTick" ;箭头形状
"dimasz" "1";箭头大小
"dimtxsty" "AADRI_DIM" ;文字样式
"dimclrt" "3";文字色
"dimtxt" "3.5";文字高度
"dimlunit" "2";单位格式
"dimdec" "0";精度
"dimdsep" ".";小数分格符
"dimzin" "4";消零
"dimscale" dimsc;全局比例
)
(princ))
为什么第二次调用就不好用了呢?
发表于 2012-12-20 23:21:23 | 显示全部楼层
本帖最后由 crazylsp 于 2012-12-20 23:22 编辑

     活动的标注样式修改系统变量只能在活动的标注样式下创建标注的替代。
     你的程式说明活动的标注样式始终是"AADRI_100",修改"AADRI_100"的比例因子。就要加入如何创建替代尺寸的部分。
     或者每次换一个活动的标注样式名称,再修改其比例因子,就不会有替代的问题了。
发表于 2016-1-21 17:20:59 | 显示全部楼层
很不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-15 08:44 , Processed in 0.166455 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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