数值可以转换为字符串值,以便在输出数据或文本数据中使用。 以下函数可用于将实数值和角度值转换为字符串,然后返回:
将实数转换为具有线性单位格式的字符串该函数将实际值转换为字符串。结果字符串的格式可以使用函数的参数指定,也可以通过 AutoCAD LUNITS 和 LUPREC 系统变量指定,如果未提供。AutoCAD DIMZIN 系统变量控制如何将前导零和尾随零写入结果字符串。rtos 以下示例代码演示了 和 返回的值(假设 AutoCAD DIMZIN 系统变量等于 0)。精度(第三个参数 )在第一次调用中设置为 4 位,在其他调用中设置为 2 位。rtosrtos (setq x 17.5) (setq str "\nValue formatted as ") (setq fmtval (rtos x 1 4)) ; Mode 1 = scientific (princ (strcat str fmtval)) Value formatted as 1.7500E+01 (setq fmtval (rtos x 2 2)) ; Mode 2 = decimal (princ (strcat str fmtval)) Value formatted as 17.50 (setq fmtval (rtos x 3 2)) ; Mode 3 = engineering (princ (strcat str fmtval)) Value formatted as 1'-5.50" (setq fmtval (rtos x 4 2)) ; Mode 4 = architectural (princ (strcat str fmtval)) Value formatted as 1'-5 1/2" (setq fmtval (rtos x 5 2)) ; Mode 5 = fractional (princ (strcat str fmtval)) Value formatted as 17 ½ 当 AutoCAD UNITMODE 系统变量设置为 1 时,单位将显示为输入,工程单位(模式等于 3)、建筑单位(模式等于 4)和分数单位(模式等于 5)返回的字符串不同。例如,前面示例输出的前两行是相同的,但最后三行将如下所示:rtos Value formatted as 1'5.50" Value formatted as 1'5-1/2" Value formatted as 17-1/2'' 将具有线性单位格式的字符串转换为实数(到浮点的距离)函数是 的补码。以下所有调用都返回相同的值:17.5。(请注意,在模式 3 和 4 中使用反斜杠 (\)。distofrtos (distof "1.7500E+01" 1) ; Mode 1 = scientific (distof "17.50" 2) ; Mode 2 = decimal (distof "1'-5.50\"" 3) ; Mode 3 = engineering (distof "1'-5 1/2\"" 4) ; Mode 4 = architectural (distof "17 1/2" 5) ; Mode 5 = fractional 当字符串指定以英尺和英寸为单位的距离时,必须在引号前面加上反斜杠 ( \“ ),这样它看起来不像字符串的末尾。前面的示例演示了此操作。distof 将实数转换为具有角度单位格式的字符串该函数将角度值转换为字符串。结果字符串的格式可以使用函数的参数指定,也可以通过 AutoCAD AUNITS 和 AUPREC 系统变量指定,如果未提供。AutoCAD DIMZIN 系统变量控制如何将前导零和尾随零写入结果字符串。angtos 由于该函数考虑了 AutoCAD ANGBASE 系统变量,因此以下示例代码始终返回“0”:angtos (angtos (getvar "angbase")) 没有 AutoLISP 函数返回 ANGBASE 从真零(东)或任意角度(以弧度为单位)的旋转量的字符串版本(在当前模式/精度下)。 ANGBASE从AutoCAD零点(东)的旋转量或任意角度的大小可以通过执行下列操作之一来找到:
从 360 度(2pi;弧度或 400 度)减去结果也得到 ANGBASE 从 0 开始的旋转。(atof (angtos 0)) 以下示例代码演示了 和 返回的值(仍假定 DIMZIN 等于 0)。精度(第三个参数 )在第一次调用中设置为 0 位,在接下来的三个调用中设置为 4 位,在最后一次调用中设置为 2 位。angtosangtos (setq ang 3.14159 str2 "\nAngle formatted as ") (setq fmtval (angtos ang 0 0)) ; Mode 0 = degrees (princ (strcat str2 fmtval)) Angle formatted as 180 (setq fmtval (angtos ang 1 4)) ; Mode 1 = deg/min/sec (princ (strcat str2 fmtval)) Angle formatted as 180d0'0" (setq fmtval (angtos ang 2 4)) ; Mode 2 = grads (princ (strcat str2 fmtval)) ; displays Angle formatted as 200.0000g (setq fmtval (angtos ang 3 4)) ; Mode 3 = radians (princ (strcat str2 fmtval)) Angle formatted as 3.1416r (setq fmtval (angtos ang 4 2)) ; Mode 4 = surveyor's (princ (strcat str2 fmtval)) Angle formatted as W UNITMODE 系统变量还会影响返回的字符串,当它以测量员的单位返回字符串时(模式等于 4)。如果 UNITMODE 等于 0,则返回的字符串可以包含空格(例如,“N 45d E”);如果 UNITMODE 等于 1,则字符串不包含空格(例如,“N45dE”)。angtos 将具有角度单位格式的字符串转换为实数该函数补码 ,以下所有调用都返回相同的值:3.14159。angtofangtos (angtof "180" 0) ; Mode 0 = degrees (angtof "180d0'0\"" 1) ; Mode 1 = deg/min/sec (angtof "200.0000g" 2) ; Mode 2 = grads (angtof "3.14159r" 3) ; Mode 3 = radians (angtof "W" 4) ; Mode 4 = surveyor's 当字符串指定角度(以度、分和秒为单位)时,必须在引号前面加上反斜杠 ( \“ ),这样它看起来不像字符串的末尾。前面的示例演示了此操作。angtof 父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:37
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.