明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 856|回复: 9

[提问] 标注 界线固定长度

[复制链接]
发表于 2015-7-30 12:19:24 | 显示全部楼层 |阅读模式
如何用lsp或vlisp打开标注格式里的界线的固定长度 ,并修改其值?

本帖子中包含更多资源

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

x
发表于 2015-7-30 14:18:11 | 显示全部楼层
  1. (defun c:tt ( / ss ) (vl-load-com)
  2.   (if (and (setq ss (ssget '((0 . "DIMENSION"))))
  3.       (setq ss (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
  4.     )
  5.     (mapcar '(lambda (x)(vla-put-extlinefixedlensuppress x 1)(vla-put-extlinefixedlen x (* 2 (vla-get-textheight x)))) ss)
  6.   )
  7.   (princ)
  8. )

点评

代码很好用  发表于 2018-8-1 14:46
回复 支持 1 反对 0

使用道具 举报

发表于 2015-7-30 12:30:29 | 显示全部楼层
变量dimfxlon 和 dimfxl
发表于 2015-7-30 12:45:58 | 显示全部楼层
(setvar "dimclrd" 0);为尺寸线,箭头,引线指定颜色,0为byblock,256为bylayer
      (setvar "dimdli" 8);基线标注中尺寸线的间距
      (setvar "dimclre" 0);为尺寸界限、圆心标记、中心线指定颜色
      (setvar "dimexe" 1);指定尺寸界限超出尺寸线的距离
      (setvar "dimexo" 1);指定尺寸界限偏离原点的距离
      (setvar "dimasz" 3);控制尺寸线和引线箭头的大小
      (setvar "dimcen" 0);是否绘制圆心标记及中心线
      (setvar "dimtxsty" "dimtext");指定标注字体样式
      (setvar "dimclrt" 7);标注文字的颜色
      (setvar "dimtxt" 3);标注文字高度
      (setvar "dimtad" 1);控制文字相对于尺寸线的垂直位置
      (setvar "dimjust" 0);控制标注文字的水平位置
      (setvar "dimgap" 1.5);设置当打断尺寸线以符合标注文字时,标注文字周围的距离
      (setvar "dimtoh" 0);控制标注文字的尺寸界线外的位置
      (setvar "dimtih" 0);控制标注文字在尺寸界线内的位置
      (setvar "dimtix" 1);在尺寸界线之间绘制文字,设置为0时和DIMTMOVE设置为0时,可以更改标注文字的摆放位置。
      (setvar "dimatfit" 3);当尺寸界线内的空间不足以放置标注文字和箭头时,如何放置这两者
      (setvar "dimtmove" 2);设置标注文字的移动规则
      (setvar "dimscale" sca);设置全局变量
      (setvar "dimupt" 0);控制用户定位文字的选项,0为只控制尺寸线
      (setvar "dimlunit" 2);设置标注单位,2为小数
      (setvar "dimdec" 3);设置小数位数
      (setvar "dimdsep" ".");小数分隔符
      (setvar "dimlfac" 1);测量比例因子
      (setvar "dimzin" 8);控制针对主单位值的消零处理
      (setvar "dimaunit" 0);为角度标注设定单位格式
      (setvar "dimadec" 3);角度标注中的精度小数位数
      (setvar "dimazin" 2);针对角度标注进行消零处理
      (setvar "dimtol" 0);将公差附在标注文字中
      (setvar "dimtofl" 1);控制是否在尺寸界线之间绘制尺寸线
      (setvar "dimtfill" 0); 控制文字的背景填充色为无
      ;(setvar "dimtfac" 0.6);控制分数中的文字高度是标注文字高度的比例因子

以上是我自定义标注样式时的一些变量控制及说明
 楼主| 发表于 2015-7-30 13:36:20 | 显示全部楼层
谢谢楼上几位前辈,不知道是否能用组码解决
发表于 2015-7-30 13:37:57 | 显示全部楼层
  1. ;;dimfxl (49 . 1.0000) dimfxlon (290 . 1)
  2. ;;标注样式界线固定函数(注意低版本无效)
  3. ;;(sk_putfxl "iso-25" nil 1)
  4. ;;(sk_putfxl "标注样式名" nil或者T 固定长度数值)
  5. ;;code by edata @mjtd 2015-7-30
  6. (defun sk_putfxl(dimstr key sk_ds / elist en l1 l2)
  7.   (if(setq en(tblobjname "dimstyle" dimstr))
  8.     (progn
  9.       (setq elist(entget en))
  10.       (setq key (if key 1 0))
  11.       (if (setq l1(assoc 290 elist))
  12.         (setq elist(subst(cons 290 key) l1 elist))
  13.         (setq elist(append elist (list (cons 290 key))))
  14.         )
  15.       (and sk_ds
  16.            (if (setq l2(assoc 49 elist))
  17.              (setq elist(subst(cons 49 sk_ds) l2 elist))
  18.              (setq elist(append elist (list (cons 49 sk_ds))))
  19.              )          
  20.            )
  21.       (entmod elist)
  22.       )
  23.     )
  24.   )
  25. (defun c:tt(/ ss en dim_st)
  26.   (if(setq ss(ssget ":E:S" '((0 . "DIMENSION"))))
  27.     (progn
  28.       (setq en (ssname ss 0))
  29.       (setq dim_st(cdr(assoc 3(entget en))))
  30.       (sk_putfxl dim_st t 3)
  31.       (if(= (getvar "dimstyle") dim_st) ;;如果是当前样式,更改标注变量
  32.         (progn
  33.           (setvar "dimfxlon" 1)
  34.           (setvar "dimfxl" 3)
  35.           )
  36.         )
  37.       )
  38.     )
  39.   (princ)
  40.   )
 楼主| 发表于 2015-7-30 13:48:10 | 显示全部楼层
edata 发表于 2015-7-30 13:37

谢谢,dimfxl (49 . 1.0000) dimfxlon (290 . 1)
发表于 2015-7-30 16:38:27 | 显示全部楼层
本帖最后由 wayne_myles 于 2015-7-30 16:55 编辑

好吧!我修改下!可惜帖子地址找不到了!

点评

荒野孤行的贴子, 不要再次上传 ,提供链接地址  发表于 2015-7-30 16:46
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 17:27 , Processed in 0.152221 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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