[^_^]:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108062&extra=page%3D2%26filter%3Dtypeid%26typeid%3D107
操作步骤:
1、输入命令 ng:dim
2、指定文字偏移,默认为20
3、绘制标注
4、指定文字偏移方向
效果图
![](https://box.kancloud.cn/05d7b5278841a0618358f3c80e86a2a5_752x366.gif)
源码
```
(DEFUN C:ng:dim ()
(vl-load-com)
(setq acadObj
(vlax-get-acad-object))
(setq docObj
(vla-get-ActiveDocument acadObj))
(setq dis(getreal "标注文字的偏移距离:"))
(if (null dis)
(setq dis 20)
)
(COMMAND "_dimaligned" pause pause pause)
;(princ "eeeee")
(SETQ dimEnt
(entlast))
(setq dimObj
(vlax-ename->vla-object dimEnt))
(setq p1Obj
(vla-get-ExtLine1Point dimObj))
(setq p2Obj
(vla-get-ExtLine2Point dimObj))
(setq textPosition (vlax-safearray->list (vlax-variant-value (vla-get-textPosition dimObj))))
(setq p1
(vlax-safearray->list
(vlax-variant-value p1Obj)))
(setq p2
(vlax-safearray->list
(vlax-variant-value p2Obj)))
(setq angleP1P2
(angle p1 p2))
(setq midPoint
(polar p1 angleP1P2
(/
(distance p1 p2) 2)))
(setq textDir (textDirection p1 p2 textPosition))
;(princ (strcat "textDir:" (rtos textDir)))
(setq textPoint
(polar midPoint
(+ angleP1P2
textDir)
dis)
)
(vla-put-textPosition dimObj
(vlax-3d-point textPoint))
(print textPoint)
; ; (setq myresult
; (vla-AngleFromXAxis
; (vla-get-utility docObj) p1 p2))
)
;用于判断标注文字在标注基线的顺时针方向还是逆时针方向
(DEFUN textDirection
(startP endP textP / angle1 angle2 _temp)
(DEFUN _temp(angle1 angle2)
(and
(>= angle2 angle1)
(<=
(- angle2 angle1)
(/ pi 2)))
)
(setq angle1
(angle startP endP))
(setq angle2
(angle startP textP))
(cond
(
(_temp angle1 angle2)
(/ pi 2)
)
(
(progn
(setq angle2
(+ angle2
(* 2 pi)))
(_temp angle1 angle2)
)
( / pi 2))
(t (- (/ pi 2)))
)
)
```
- 前言
- 概述
- autolisp简介(初)
- 搭建编程环境
- Visual Lisp 编辑器的使用(初)
- vs code的使用
- 基本概念(初)
- 表达式
- 数据类型
- 整数类型
- 实数类型
- 字符串类型
- 列表
- 选择集类型
- 实体名称(ename)
- vla对象(vla-object)
- 文件描述符
- 符号和变量(初)(精)
- 源码文件
- 变量
- 变量的类型
- 变量赋值
- 变量求值
- 预定义变量
- 数值处理
- 字符串处理
- 显示和输出
- 控制字符
- 列表操作
- 重点函数列表
- 尺寸标注
- 文字固定偏移
- 填充
- 填充到指定的矩形
- 计算填充面积并标注
- 其他
- 绘制任意曲线的等分线
- 原位缩放
- 修改填充基点和角度
- 批量标注多段线长度
- 统计相同直径的圆的数量
- z坐标置0
- 生成随机数
- 图层
- 相交
- intersectWith无法求交点的几种情形
- 向量和矩阵
- 向量加减乘除
- 向量长度
- 求单位向量
- 向量点积
- 向量叉积
- 命令和交互
- 调用command命令
- 多段线
- 获取多段线顶点
- UCS
- 有关ucs的命令和系统变量
- 通过command操作ucs
- 草图设置
- 捕捉
- 栅格
- 正交
- 对象捕捉
- 坐标系和变换(高级)
- 任意轴算法
- 坐标系
- trans
- geomcal
- autocad开发相关网站
- 小技巧汇总
- 判断点是否在封闭图形内
- 安装
- acad启动加载顺序
- 安装包制作
- 添加文件到启动组
- 添加目录到搜索路径
- 对话框和图形界面
- DCL
- openDCL
- 菜单和自定义界面
- 菜单文件
- 自定义文件
- 函数参考
- quote