本文介绍AutoLisp用DXF组码来生成标注样式(标注文字样式、标注箭头样式)方法。

一、先生成标注文本样式(若已存在则忽略此步)

说明:用DXF组码生成标注样式中的标注文字样式时,其DXF参考中组码:340,说明:DIMTXSTY(参照的 STYLE 的句柄),DIMTXSTY系统变量:指定标注的文字样式。实际AutoLisp用DXF组码来生成标注样式中的标注文字样式时应是使用文字样式对象的图元名,即(340  . )。

二、生成标注箭头块(若已存在则忽略此步)

说明:

1、用DXF组码生成标注样式中的标注箭头样式时,其DXF参考中组码:

341

DIMLDRBLK(参照的 BLOCK 的句柄)

342

DIMBLK(参照的 BLOCK 的句柄)

343

DIMBLK1(参照的 BLOCK 的句柄)

344

DIMBLK2(参照的 BLOCK 的句柄)

实际AutoLisp用DXF组码来生成标注样式中的标注箭头样式时应是使用标注箭头块所对应的"BLOCK_RECORD"(块参照表)对象的图元名,而不是"BLOCK"对象的图元名,这点DXF参考中描述的似乎有误。

2、创建块会自动生成该块的BLOCK_RECORD(块参照表)数据,其"BLOCK_RECORD"对象的组码(2 . "块名")与"BLOCK"对象的组码(2 . "块名")相同。

3、要注意的是要根据查找标注箭头块所对应的"BLOCK_RECORD"(块参照表)对象的图元名,直接用(tblobjname table-name symbol) 会提示错误信息,因为 AutoLisp 的 tblobjname 命令有效的 table-name 值为 "LAYER"、"LTYPE"、"VIEW"、"STYLE"、"BLOCK"、"UCS"、"APPID"、"DIMSTYLE" 和 "VPORT",而"BLOCK_RECORD"是无效的 table-name 值,所以只能通过间接的方式来获得"BLOCK_RECORD"对象的图元名。

三、生成标注样式

1、关于DXF参考中组码:278,说明:DIMDSEP,指定一个单字符作为创建十进制标注时使用的小数分隔符,在创建标注样式中若要设置此项,则应用字符所对应的ASCII 码值,即使用(cons 278 (ascii "."))、(cons 278 (ascii ","))、(cons 278 (ascii " "))分别为设置成句点“.”、逗号“,”、空格“ ”。

四、样例

在此,给出一个完整的AutoLisp用DXF组码来生成标注样式(标注文字样式、标注箭头样式)的样例。需注意的是,用entmake生成对象时,entmake 函数不检查对象定义表中的名称冲突,所以它会重新定义现有的对象。

五、恳请各位大虾指出本文的错误和不足之处,不胜感激。

;;;=======AutoLisp用DXF组码来生成标注样式(标注文字样式、标注箭头样式)的样例=======

;;;运行时输入命令:(Dimstyle_b(1:100)_DXF),本实例在CAD2010中测试成功。

;;;转载请注明出处。xq4u,2011年3月8日首发。

(defun DimstyleDXF ()

;;;entmake *** "STYLE" *** object:

(entmake (list

'(0 . "STYLE")

'(100 . "AcDbSymbolTableRecord")

'(100 . "AcDbTextStyleTableRecord")

'(2 . "标注")

'(70 . 0)

'(40 . 0.21)

'(41 . 1.0)

'(50 . 0.0)

'(71 . 0)

'(42 . 2.5)

'(3 . "SimSun.ttf")

'(4 . "")

)

)

;;;entmake *** "BLOCK" *** object:

(entmake (list

'(0 . "BLOCK")

'(100 . "AcDbEntity")

'(67 . 0)

'(8 . "0")

'(100 . "AcDbBlockBegin")

'(70 . 0)

'(10 0.0 0.0 0.0)

'(2 . "_Oblique")

'(1 . "")

)

)

;;;entmake *** "LINE" *** object:

(entmake (list

'(0 . "LINE")

'(100 . "AcDbEntity")

'(67 . 0)

'(8 . "0")

'(62 . 0)

'(6 . "ByBlock")

'(370 . -2)

'(100 . "AcDbLine")

'(10 -0.5 -0.5 0.0)

'(11 0.5 0.5 0.0)

'(210 0.0 0.0 1.0)

)

)

;;;entmake *** "ENDBLK" *** object:

(entmake (list

'(0 . "ENDBLK")

)

)

(entupd (tblobjname "Block" "_Oblique"))

;;;entmake *** "DIMSTYLE" *** object:

(setq My_DIMSCALE 0.1);;;DIMSCALE:为标注变量(指定尺寸、距离或偏移量)设置全局比例因子

(setq My_DIMASZ 2.5);;;DIMASZ:控制尺寸线和引线箭头的大小。并控制基线的大小。

(setq My_DIMEXO 0.625);;;DIMEXO:指定尺寸界线偏移原点的距离

(setq My_DIMDLI 3.75);;;DIMDLI:控制基线标注中尺寸线的间距

(setq My_DIMEXE 1.25);;;DIMEXE:指定尺寸界线超出尺寸线的距离

(setq My_DIMTXT 2.5);;;DIMTXT:指定标注文字的高度,除非当前文字样式具有固定的高度

(setq My_DIMLFAC 100.0);;;DIMLFAC:设置线性标注测量值的比例因子

(setq My_DIMTIH 0);;;DIMTIH:控制所有标注类型(坐标标注除外)的标注文字在尺寸界线内的位置

(setq My_DIMTOH 0);;;DIMTOH:控制标注文字在尺寸界线外的位置

(setq My_DIMTAD 1);;;DIMTAD:控制文字相对尺寸线的垂直位置

(setq My_DIMZIN 8);;;DIMZIN:控制是否对主单位值作消零处理

(setq My_DIMTOFL 1);;;DIMTOFL:控制是否将尺寸线绘制在尺寸界线之间(即使文字放置在尺寸界线之外)

(setq My_DIMCLRD 256);;;DIMCLRD:为尺寸线、箭头和标注引线指定颜色

(setq My_DIMCLRE 256);;;DIMCLRE:为尺寸界线指定颜色

(setq My_DIMCLRT 256);;;DIMCLRT:为标注文字指定颜色

(setq My_DIMAUNIT 1);;;DIMAUNIT:设置角度标注的单位格式

(setq My_DIMDSEP 46);;;DIMDSEP:指定一个单字符作为创建十进制标注时使用的小数分隔符

(setq My_DIMLWD -1);;;DIMLWD:(线宽枚举值)为尺寸线指定线宽。

(setq My_DIMLWE -1);;;DIMLWE:(线宽枚举值)为延伸线指定线宽。

(entmake (list

'(0 . "DIMSTYLE")

'(100 . "AcDbSymbolTableRecord")

'(100 . "AcDbDimStyleTableRecord")

'(2 . "b(1:100)")

'(70 . 0)

'(141 . 2.5);;;DIMCEN:控制由 DIMCENTER、DIMDIAMETER 和 DIMRADIUS 命令绘制的圆或圆弧的圆心标记和中心线图形

'(143 . 0.0393701);;;DIMALTF:控制换算单位中的比例因子

'(147 . 0.625);;;DIMGAP:当尺寸线分成段以在两段之间放置标注文字时,设置标注文字周围的距离

'(171 . 3);;;DIMALTD:控制换算单位中小数位的位数

'(271 . 1);;;DIMDEC:为所有标注类型(角度标注除外)的换算标注测量值指定文字前缀或后缀(或两者都指定)

'(272 . 1);;;DIMTDEC:为标注主单位的公差值设置显示的小数位位数

'(274 . 3);;;DIMALTTD:设置换算标注单位中的公差值的小数位数

'(283 . 0);;;DIMTOLJ:设置公差值相对于表面标注文字的垂直对正方式。

'(284 . 8);;;DIMTZIN:控制是否对公差值作消零处理

(cons 40 My_DIMSCALE)

(cons 41 My_DIMASZ)

(cons 42 My_DIMEXO)

(cons 43 My_DIMDLI)

(cons 44 My_DIMEXE)

(cons 140 My_DIMTXT)

(cons 144 My_DIMLFAC)

(cons 73 My_DIMTIH)

(cons 74 My_DIMTOH)

(cons 77 My_DIMTAD)

(cons 78 My_DIMZIN)

(cons 172 My_DIMTOFL)

(cons 176 My_DIMCLRD)

(cons 177 My_DIMCLRE)

(cons 178 My_DIMCLRT)

(cons 275 My_DIMAUNIT)

(cons 278 My_DIMDSEP)

(cons 371 My_DIMLWD)

(cons 372 My_DIMLWE)

(cons 340 (tblobjname "STYLE" "标注"));;;DIMTXSTY:(参照的 STYLE 的句柄)指定标注的文字样式。

(cons 342 (cdr (assoc 330 (entget (tblobjname "BLOCK" "_Oblique")))));;;DIMBLK:(参照的 BLOCK 的句柄)设置尺寸线或引线末端显示的箭头块。

)

)

(entupd (tblobjname "Dimstyle" "b(1:100)"))

(princ) ;静默退出

)

;;;=======AutoLisp用DXF组码来生成标注样式(标注文字样式、标注箭头样式)的样例=======

lisp 标记形心_DXF组码来生成标注样式(标注文字样式、标注箭头样式)相关推荐

  1. Auto Lisp 标注子样式_DXF组码来生成标注样式(标注文字样式、标注箭头样式)...

    本文介绍AutoLisp用DXF组码来生成标注样式(标注文字样式.标注箭头样式)方法. 一.先生成标注文本样式(若已存在则忽略此步) 说明:用DXF组码生成标注样式中的标注文字样式时,其DXF参考中组 ...

  2. lisp 标记形心_标记-压缩算法

    前言 内存碎片一直是非移动垃圾回收器(指在垃圾回收时不进行对象的移动)的一个问题,比如说在前面的标记-清除垃圾回收器就有这样的问题.而标记-压缩垃圾回收算法能够有效的缓解这一问题. 算法原理 既然叫标 ...

  3. lisp 标记形心_标记-整理算法

    定义 该算法分为标记和整理两个阶段,标记阶段会遍历并标记活动对象,整理阶段通过数次搜索堆来重新装填活动对象,它们聚集到了堆的一端. lisp2算法 forwarding指针表示活动对象的目标地址 过程 ...

  4. lisp 字体相关组码

    1 红色 2黄色 3绿色 4青色 5蓝色 6洋红色 7 白色 对于mtext,控制文字的对齐格式可以使用以下组码: (71 . 1) 左对齐-上对齐 这个是默认的对齐方式 (71 . 4) 左对齐-中 ...

  5. 二维码的生成细节和原理

    转自:http://coolshell.cn/articles/10590.html#jtss-tsina 陈皓 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备 ...

  6. 二维码的生成细节和原理【转】

    转自:http://coolshell.cn/articles/10590.html#jtss-tsina 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流 ...

  7. 基础——二维码的生成细节和原理

                                           二维码的生成细节和原理 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一 ...

  8. 二维码的生成和解析原理

    二维码结构 1.版本信息:version1(21*21),version2,...,version40,一共40个版本.版本代表每行有多少模块,每一个版本比前一个版本增加4个码元,计算公式为(n-1) ...

  9. CAD dxf组码 Xdata 写入和读取

    Dim x2, y2 As DoubleDim DataType(0 To 1) As IntegerDim Data(0 To 1) As VariantFor Each acEnt In acSS ...

最新文章

  1. 以金山界面库(openkui)为例思考和分析界面库的设计和实现——资源读取模块分析
  2. 7年前去搞数据科学、放弃天文学,现在我后悔了
  3. HTML5之Canvas基础
  4. 琥珀项目:Java的未来揭晓
  5. Android面试收集录4 Fragment详解
  6. ipv6相对于ipv4的改进
  7. Linux下Redis的安装、配置操作说明
  8. sql管理:索引超出范围必须为非负值并小于集合大小_java面试基础知识-数据库基础知识(数据库索引部分)...
  9. 沉降观测曲线图 沉降观测汇总_这些沉降观测要求,工程人必须掌握!
  10. ruby on rails ajax select
  11. Multiple methods named 'status' found with mismatched result, parameter type or attributes
  12. 栈在括号匹配中的应用
  13. python基础二:函数
  14. 简单整理 - 常用设计模式
  15. 引起1月12日WIN10 Flash停用原因
  16. vue使用富文本编辑器vue-quill-editor
  17. Python中文字符串,变成英文字符串
  18. 移动端开发兼容性处理整理
  19. 沧小海基于xilinx srio核的学习笔记之第三章 xilinx srio核介绍(一)结构介绍
  20. 百度地图AK申请流程

热门文章

  1. TGC2020海南站开启,QQ飞车赛车手训练营即刻出发!
  2. DNS解析不正常,如何配置?---金万维
  3. 企业微信公众号的运营策略
  4. inside游戏Android,inside安卓官网
  5. 循环链表解决拉丁方阵问题 数据结构 C/C++
  6. win10打印服务器在哪个位置图片,win10当云打印服务器
  7. xfplay(先锋影音) v8.9.7 官方版​
  8. 易语言大漠游戏一键登录自动判断判断角色位置
  9. Stata中可以用数字作为local吗
  10. typescript((九)ts中的泛型