函数和将 AutoCAD 中使用的值转换为可在输出中使用的字符串值或作为文本数据使用。该函数转换一个实值,并转换一个角度。结果字符串的格式由 AutoCAD 系统变量的值控制:单位和精度由 LUNITS 和 LUPREC 指定(对于实际(线性)值,由单位和 AUPREC 指定角度值。对于这两个函数,DIMZIN 标注变量控制如何将前导零和尾随零写入结果字符串。互补函数并将字符串转换回实际(距离)值或角度。如果传递一个由 byor 生成的字符串,和(分别)保证返回一个有效的值。acdbRToS()acdbAngToS()acdbRToS()acdbAngToS()acdbDisToF()acdbAngToF()acdbRToS()acdbAngToS()acdbDisToF()acdbAngToF() 例如,以下片段显示了对 的调用。(错误检查未显示,但应包含在应用程序中。acdbRToS() ads_real x = 17.5; char fmtval[12]; //Precision is the 3rd argument: 4 places in the first // call, 2 places in the others. acdbRToS(x, 1, 4, fmtval); // Mode 1 = scientific acutPrintf("Value formatted as %s\n", fmtval); acdbRToS(x, 2, 2, fmtval); // Mode 2 = decimal acutPrintf("Value formatted as %s\n", fmtval); acdbRToS(x, 3, 2, fmtval); // Mode 3 = engineering acutPrintf("Value formatted as %s\n", fmtval); acdbRToS(x, 4, 2, fmtval); // Mode 4 = architectural acutPrintf("Value formatted as %s\n", fmtval); acdbRToS(x, 5, 2, fmtval); // Mode 5 = fractional acutPrintf("Value formatted as %s\n", fmtval); 这些调用(假定 DIMZIN 变量等于 0)在 AutoCAD 文本屏幕上显示以下值。 格式化为 1.7500E+01 的值 格式为 17.50 的值 值格式为 1′-5.50” 值格式为 1′-5 1/2” 格式为 17 1/2 的值 当 UNITMODE 系统变量设置为 1(指定单位显示为输入单位)时,返回的字符串将按工程(模式等于 3)、建筑(模式等于 4)和分数(模式等于 5)单位返回。例如,前面示例输出的前两行将是相同的,但最后三行将如下所示:acdbRToS() 格式化为 1′5.50“ 的值 格式化为 1′5-1/2“ 的值 格式为 17-1/2 的值 函数是补充的,因此以下调用(使用前面示例中生成的字符串)都设置为相同的值 17.5。(同样,这些示例不显示错误检查。acdbDisToF()acdbRToS()result acdbDisToF("1.7500E+01", 1, &result); // 1 = scientific acdbDisToF("17.50", 2, &result); // 2 = decimal // Note the backslashes. Needed for inches. acdbDisToF("1'-5.50\"", 3, &result); // 3 = engineering acdbDisToF("1'-5 1/2\"", 4, &result); // 4 = architectural acdbDisToF("17 1/2", 5, &result); // 5 = fractional 以下片段显示了对 that 的调用,这些调用与前面的示例类似。acdbAngToS()acdbRToS() ads_real ang = 3.14159; char fmtval[12]; // Precision is the 3rd argument: 0 places in the first // call, 4 places in the next 3, 2 in the last. acdbAngToS(ang, 0, 0, fmtval); // Mode 0 = degrees acutPrintf("Angle formatted as %s\n", fmtval); acdbAngToS(ang, 1, 4, fmtval); // Mode 1 = deg/min/sec acutPrintf("Angle formatted as %s\n", fmtval); acdbAngToS(ang, 2, 4, fmtval); // Mode 2 = grads acutPrintf("Angle formatted as %s\n", fmtval); acdbAngToS(ang, 3, 4, fmtval); // Mode 3 = radians acutPrintf("Angle formatted as %s\n", fmtval); acdbAngToS(ang, 4, 2, fmtval); // Mode 4 = surveyor's acutPrintf("Angle formatted as %s\n", fmtval); 这些调用(仍假定 DIMZIN 等于 0)在 AutoCAD 文本屏幕上显示以下值。 角度格式为 180 角度格式化为 180d0′0” 角度格式化为 200.0000g 角度格式化为 3.1416r 角度格式为 W 注意:UNITMODE 系统变量还会影响返回的字符串,当它返回以测量员单位(模式等于 4)的字符串时。如果 UNITMODE 等于 0,则返回的字符串可以包含空格(例如,“N 45d E”);如果 UNITMODE 等于 1,则字符串不包含空格(例如,“N45dE”)。acdbAngToS()
函数是补充的,因此以下调用都将结果参数设置为相同的值 3.14159。(在使用弧度的示例中,此值向上舍入为 3.1416。acdbAngToF()acdbAngToS() acdbAngToF("180", 0, &result); // 0 = degrees acdbAngToF("180d0'0\"", 1, &result); // 1 = deg/min/sec acdbAngToF("200.0000g", 2, &result); // 2 = grads acdbAngToF("3.1416r", 3, &result); // 3 = radians acdbAngToF("W", 4, &result); // 4 = surveyor's 注意:如果字符串指定的角度(以度、分和秒为单位),则必须使用反斜杠 (\) 转义秒符号 (“),以便它不会显示为字符串的末尾。前面的第二个示例演示了这一点。acdbAngToF()
|
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )
GMT+8, 2024-5-19 15:58
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.