XDrxAPI 19 个 MTEXT 函数帮助手册
1函数名称: xdrx-mtext-actualheight
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的实际高度,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-actualheight [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询高度的多行文字实体(不提供则从堆栈获取)
返回值:
返回多行文字的实际高度值(实数)
示例用法1:
(xdrx-mtext-actualheight (car (entsel)))
返回: 2.5 - 多行文字的实际高度
示例用法2:
(xdrx-mtext-actualheight)
返回: 3.0 - 从堆栈获取的多行文字实际高度
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回值为实数类型
3. 高度值反映实际显示高度
4. 支持嵌套在块中的多行文字
5. 无效实体返回nil
------------------------------------------------------------
2
函数名称: xdrx-mtext-actualwidth
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的实际宽度,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-actualwidth [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询宽度的多行文字实体(不提供则从堆栈获取)
返回值:
返回多行文字的实际宽度值(实数)
示例用法1:
(xdrx-mtext-actualwidth (car (entsel)))
返回: 10.5 - 多行文字的实际宽度
示例用法2:
(xdrx-mtext-actualwidth)
返回: 8.0 - 从堆栈获取的多行文字实际宽度
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回值为实数类型
3. 宽度值反映实际显示宽度
4. 支持嵌套在块中的多行文字
5. 无效实体返回nil
------------------------------------------------------------
3
函数名称: xdrx-mtext-attachment
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的附着点位置,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-attachment [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询附着点的多行文字实体(不提供则从堆栈获取)
返回值:
返回附着点位置字符串,可能值包括:
"kTopLeft" - 左上
"kTopCenter" - 中上
"kTopRight" - 右上
"kMiddleLeft" - 左中
"kMiddleCenter" - 正中
"kMiddleRight" - 右中
"kBottomLeft" - 左下
"kBottomCenter" - 中下
"kBootomRight" - 右下
示例用法1:
(xdrx-mtext-attachment (car (entsel)))
返回: "kMiddleCenter" - 表示文字正中附着
示例用法2:
(xdrx-mtext-attachment)
返回: "kTopLeft" - 从堆栈获取的多行文字附着点
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回值为字符串类型
3. 支持嵌套在块中的多行文字
4. 无效实体返回nil
5. 附着点影响文字对齐方式
------------------------------------------------------------
4
函数名称: xdrx-mtext-box
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的精确包围盒坐标,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-box [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询包围盒的多行文字实体(不提供则从堆栈获取)
返回值:
返回包围盒的4个角点坐标列表(按顺时针顺序)
示例用法1:
(xdrx-mtext-box (car (entsel)))
返回: ((10.0 20.0) (30.0 20.0) (30.0 10.0) (10.0 10.0)) - 多行文字的包围盒坐标
示例用法2:
(xdrx-mtext-box)
返回: ((5.0 15.0) (25.0 15.0) (25.0 5.0) (5.0 5.0)) - 从堆栈获取的多行文字包围盒
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回4个点的坐标列表
3. 考虑当前UCS坐标系
4. 支持嵌套在块中的多行文字
5. 无效实体返回nil
------------------------------------------------------------
5
函数名称: xdrx-mtext-contents
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的内容文本,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-contents [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要获取内容的多行文字实体(不提供则从堆栈获取)
返回值:
返回多行文字的内容文本字符串(包含原始格式控制字符)
示例用法1:
(xdrx-mtext-contents (car (entsel)))
返回: "{\\fArial|b0|i0|c0|p34;多行文字内容}"
示例用法2:
(xdrx-mtext-contents)
返回: "{\\fSimSun|b0|i0|c0|p18;堆栈中的文字}"
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回包含格式控制字符的原始文本
3. 支持嵌套在块中的多行文字
4. 无效实体返回nil
5. 需要自行处理格式控制字符
------------------------------------------------------------
6
函数名称: xdrx-mtext-direction
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的方向向量,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-direction [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询方向的多行文字实体(不提供则从堆栈获取)
返回值:
返回方向向量(3D点坐标形式)
示例用法1:
(xdrx-mtext-direction (car (entsel)))
返回: (1.0 0.0 0.0) - 表示水平向右方向
示例用法2:
(xdrx-mtext-direction)
返回: (0.707 0.707 0.0) - 从堆栈获取的多行文字方向(45度)
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回3D向量(x y z)
3. 通常z=0表示平面方向
4. 支持嵌套在块中的多行文字
5. 无效实体返回nil
------------------------------------------------------------
7
函数名称: xdrx-mtext-flowdirection
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的流方向,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-flowdirection [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询流方向的多行文字实体(不提供则从堆栈获取)
返回值:
返回流方向字符串,可能值包括:
"kLtoR" - 从左到右
"kTtoB" - 从上到下
"kByStyle" - 按文字样式设置
示例用法1:
(xdrx-mtext-flowdirection (car (entsel)))
返回: "kLtoR" - 表示从左到右的流方向
示例用法2:
(xdrx-mtext-flowdirection)
返回: "kTtoB" - 从堆栈获取的多行文字流方向(从上到下)
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回值为字符串类型
3. 支持嵌套在块中的多行文字
4. 无效实体返回nil
5. 影响多行文字的排列方式
------------------------------------------------------------
8
函数名称: xdrx-mtext-fragments
描述:
该函数将AutoCAD多行文字(MTEXT)实体分解为文本片段,返回包含完整片段信息的关联列表。
调用格式:
(xdrx-mtext-fragments <多行文字实体>)
参数说明:
* <多行文字实体>: 必需参数,要分解的多行文字实体
返回值:
返回包含文本片段信息的关联列表,每个片段包含以下键值对:
("kTextString" . "文本内容")
("kLocation" . (x y z)) ; 位置坐标
("kCapsHeight" . 高度值) ; 大写字母高度
("kWidthFactor" . 宽度因子) ; 宽度比例
("kColorIndex" . 颜色索引) ; 颜色索引
("kColor" . (r g b)) ; RGB颜色值
("kNormal" . (x y z)) ; 法线向量
("kDirection" . (x y z)) ; 方向向量
("kExtents" . (x y)) ; 范围尺寸
("kFont" . "字体") ; 字体名称
("kBigFont" . "大字体") ; 大字体名称
("kFontName" . "字体全名") ; 完整字体名
("kOblique" . 倾斜角度) ; 倾斜角度
("kItalic" . 0/1) ; 是否斜体
("kBold" . 0/1) ; 是否粗体
("kStackTop" . 0/1) ; 是否堆叠上标
("kStackBottom" . 0/1) ; 是否堆叠下标
("kTrackingFactor" . 字距) ; 字距调整
("kUnerLined" . 0/1) ; 是否下划线
("kOverLined" . 0/1) ; 是否上划线
("kOverPoints" . ((x1 y1 z1)(x2 y2 z2))) ; 上划线点
("kUnderPoints" . ((x1 y1 z1)(x2 y2 z2))) ; 下划线点
示例用法:
(xdrx-mtext-fragments (car (entsel)))
返回: (
(("kTextString" . "Hello")
("kLocation" . (10.0 20.0 0.0))
("kFont" . "Arial")
...)
(("kTextString" . "World")
("kLocation" . (30.0 20.0 0.0))
("kFont" . "SimSun")
...)
)
注意事项:
1. 必须提供多行文字实体参数
2. 返回复杂关联列表结构
3. 会修改原始多行文字实体
4. 片段顺序保持原始排列
5. AutoCAD 2018+版本包含更多属性
------------------------------------------------------------
9
函数名称: xdrx-mtext-getecs
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的ECS(实体坐标系)矩阵,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-getecs [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询ECS矩阵的多行文字实体(不提供则从堆栈获取)
返回值:
返回4x4变换矩阵(16个元素的列表),可用于坐标转换:
(
(m00 m01 m02 m03)
(m10 m11 m12 m13)
(m20 m21 m22 m23)
(m30 m31 m32 m33)
)
示例用法1:
(xdrx-mtext-getecs (car (entsel)))
返回: ((1 0 0 0)(0 1 0 0)(0 0 1 0)(10 20 0 1)) - 表示位于(10,20)的标准坐标系
示例用法2:
(xdrx-mtext-getecs)
返回: ((0.707 -0.707 0 0)(0.707 0.707 0 0)(0 0 1 0)(30 40 0 1)) - 从堆栈获取的旋转45度的ECS矩阵
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回4x4变换矩阵
3. 矩阵可用于WCS到ECS坐标转换
4. 支持嵌套在块中的多行文字
5. 无效实体返回nil
------------------------------------------------------------
10
函数名称: xdrx-mtext-height
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的实际高度,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-height [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询高度的多行文字实体(不提供则从堆栈获取)
返回值:
返回多行文字的实际高度值(实数)
示例用法1:
(xdrx-mtext-height (car (entsel)))
返回: 3.5 - 多行文字的实际高度
示例用法2:
(xdrx-mtext-height)
返回: 2.8 - 从堆栈获取的多行文字高度
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. AutoCAD 2013+版本使用height()方法
3. 早期版本使用actualHeight()方法
4. 支持嵌套在块中的多行文字
5. 无效实体返回nil
------------------------------------------------------------
11
函数名称: xdrx-mtext-linetypescale
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的线型比例因子,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-linetypescale [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询线型比例的多行文字实体(不提供则从堆栈获取)
返回值:
返回多行文字的线型比例值(实数)
示例用法1:
(xdrx-mtext-linetypescale (car (entsel)))
返回: 1.0 - 多行文字的线型比例
示例用法2:
(xdrx-mtext-linetypescale)
返回: 0.8 - 从堆栈获取的多行文字线型比例
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 线型比例影响多行文字的显示效果
3. 默认值为1.0
4. 支持嵌套在块中的多行文字
5. 无效实体返回nil
------------------------------------------------------------
12
函数名称: xdrx-mtext-linespacingstyle
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的行距样式,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-linespacingstyle [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询行距样式的多行文字实体(不提供则从堆栈获取)
返回值:
返回行距样式枚举值(整数):
1 - kAtLeast (至少)
2 - kExactly (精确)
示例用法1:
(xdrx-mtext-linespacingstyle (car (entsel)))
返回: 1 - 表示"至少"行距样式
示例用法2:
(xdrx-mtext-linespacingstyle)
返回: 2 - 从堆栈获取的多行文字使用"精确"行距样式
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 行距样式影响多行文字的行间距计算方式
3. kAtLeast(1): 行距至少为指定值
4. kExactly(2): 行距精确为指定值
5. 无效实体返回nil
------------------------------------------------------------
13
函数名称: xdrx-mtext-location
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的插入点位置(WCS坐标系),支持从堆栈获取实体。
调用格式:
(xdrx-mtext-location [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询位置的多行文字实体(不提供则从堆栈获取)
返回值:
返回三维点坐标列表(x y z)
示例用法1:
(xdrx-mtext-location (car (entsel)))
返回: (10.0 20.0 0.0) - 多行文字的WCS坐标位置
示例用法2:
(xdrx-mtext-location)
返回: (30.5 40.2 0.0) - 从堆栈获取的多行文字位置
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回WCS(世界坐标系)下的位置点
3. 支持嵌套在块中的多行文字
4. 无效实体返回nil
------------------------------------------------------------
14
函数名称: xdrx-mtext-make
描述:
该函数创建AutoCAD多行文字(MTEXT)实体,支持两种调用方式:
1. 无参数:创建默认属性的内存MTEXT实体
2. 带参数:创建指定属性的实际MTEXT实体
调用格式:
(xdrx-mtext-make);创建内存实体
或
(xdrx-mtext-make <位置点> <文本内容> <文字高度> <宽度>)
参数说明:
* <位置点>: 三维点坐标,MTEXT插入位置(WCS)
* <文本内容>: 字符串,MTEXT显示内容
* <文字高度>: 实数,文字高度
* <宽度>: 实数,MTEXT边界宽度
返回值:
返回创建的MTEXT实体名
示例用法1:
(xdrx-mtext-make)
返回: <Entity name: 7ffff706040> - 内存中的MTEXT实体
示例用法2:
(xdrx-mtext-make '(10 20 0) "示例文本" 2.5 50)
返回: <Entity name: 7ffff706050> - 创建在(10,20)的实际MTEXT实体
注意事项:
1. 无参数调用创建内存实体(默认属性)
2. 带参数调用创建实际绘图实体
3. 自动使用当前UCS坐标系
4. 宽度为0表示不换行
5. 失败返回nil
------------------------------------------------------------
15
函数名称: xdrx-mtext-reset
描述:
该函数重置AutoCAD多行文字(MTEXT)实体的所有可修改属性为默认值,支持单个实体或选择集。
调用格式:
(xdrx-mtext-reset <多行文字实体或选择集>)
参数说明:
* <多行文字实体或选择集>: 必需参数,要重置的MTEXT实体或包含MTEXT的选择集
返回值:
成功返回T,失败返回nil
示例用法1:
(xdrx-mtext-reset (car (entsel)))
返回: T - 重置单个多行文字成功
示例用法2:
(xdrx-mtext-reset (ssget '((0 . "MTEXT"))))
返回: T - 重置选择集中所有多行文字成功
注意事项:
1. 重置所有可修改属性为默认值
2. 支持单个实体或选择集输入
3. 批量操作时忽略非MTEXT实体
4. 只读实体不会被修改
5. 无有效实体时返回nil
------------------------------------------------------------
16
函数名称: xdrx-mtext-setwidth
描述:
该函数设置AutoCAD多行文字(MTEXT)实体的边界宽度,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-setwidth [多行文字实体] <宽度值>)
参数说明:
* [多行文字实体]: 可选参数,要设置的多行文字实体(不提供则从堆栈获取)
* <宽度值>: 必需参数,实数或整数,设置边界宽度(自动取绝对值)
返回值:
成功返回T,失败返回nil
示例用法1:
(xdrx-mtext-setwidth (car (entsel)) 50)
返回: T - 设置多行文字宽度为50
示例用法2:
(xdrx-mtext-setwidth 30)
返回: T - 设置堆栈中多行文字宽度为30
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 自动取宽度绝对值
3. 宽度为0表示不换行
4. 只对可写实体有效
5. 无效输入返回nil
------------------------------------------------------------
17
函数名称: xdrx-mtext-textstring
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的文本内容,支持从堆栈获取实体并自动处理换行符格式。
调用格式:
(xdrx-mtext-textstring [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询的多行文字实体(不提供则从堆栈获取)
返回值:
返回多行文字的文本内容字符串
示例用法1:
(xdrx-mtext-textstring (car (entsel)))
返回: "这是多行文字内容\n第二行"
示例用法2:
(xdrx-mtext-textstring)
返回: "从堆栈获取的多行文字内容"
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 自动处理换行符格式(\r转换为\r\n)
3. AutoCAD 2008+版本使用text()方法
4. 早期版本使用contents()方法
5. 无效实体返回nil
------------------------------------------------------------
18
函数名称: xdrx-mtext-unformat
描述:
该函数去除AutoCAD多行文字(MTEXT)实体或格式化文本字符串的格式化(粗体/斜体等)但保留文本布局,返回纯文本内容。
调用格式:
(xdrx-mtext-unformat <多行文字实体或格式化字符串>)
参数说明:
* <多行文字实体或格式化字符串>: 必需参数,可以是:
- 多行文字实体
- 包含格式化代码的字符串(如"{\\LHello}")
返回值:
返回去除格式化后的纯文本内容(保留换行等布局)
示例用法1:
(xdrx-mtext-unformat (car (entsel)))
返回: "这是去除格式化的文本\n第二行"
示例用法2:
(xdrx-mtext-unformat "{\\LHello}")
返回: "Hello"
示例用法3:
(setq txt (xdrx-mtext-unformat ent))
返回: 将实体ent去除格式化后的文本存入txt变量
注意事项:
1. 支持实体和字符串两种输入
2. 仅去除文本格式化(粗体/斜体等)
3. 保留原始文本布局(换行等)
4. 返回纯文本内容
5. 无效输入返回nil
------------------------------------------------------------
19
函数名称: xdrx-mtext-width
描述:
该函数获取AutoCAD多行文字(MTEXT)实体的边界宽度值,支持从堆栈获取实体。
调用格式:
(xdrx-mtext-width [多行文字实体])
参数说明:
* [多行文字实体]: 可选参数,要查询的多行文字实体(不提供则从堆栈获取)
返回值:
返回多行文字的边界宽度值(实数)
示例用法1:
(xdrx-mtext-width (car (entsel)))
返回: 50.0 - 多行文字的当前宽度
示例用法2:
(xdrx-mtext-width)
返回: 30.0 - 堆栈中多行文字的宽度
注意事项:
1. 支持从堆栈获取实体(无参数调用)
2. 返回实际宽度值
3. 宽度为0表示不换行
4. 只对有效MTEXT实体有效
5. 无效输入返回nil
------------------------------------------------------------
页:
[1]