zoukankan      html  css  js  c++  java
  • *ARX对数据的类型和单位进行转换

    *ARX对数据的类型和单位进行转换
    量钢单位转换函数
    AutoCAD软件包的文件acad.unt中,定义了一些常用的量钢单位转换关系,例如英里与公里,华氏与摄氏等等。函数acutCvUnit()用来将一种单位的数值转换成另一种单位的数值。单位用字符串的形式表示,使用的字符串必须与文件acad.unt中定义的一致。如果当前绘图单位是工程单位或建筑单位(英尺或英寸),下面的程序能把指定的距离转换成米为单位的值:
    ads_real eng_len,metric_len;
    char *prmpt=”请输入距离:”;
    if(acedGetDist(NULL,prmpt,&eng_len)!=RTNORM) return BAD;
    acutCvUnit(eng_len,”inches”,”meters”,&metric_len);
    [I]注意:不能用函数acutCvUnit()转换不相配的单位,例如不能把英寸转换成年[/I]。
    字符串转换函数
    函数acdbRToS()用来将一个实数转换成字符串值;
    函数acdbAngToS()用来将一个角度值转换成字符串值;
    函数acdbDisToF()用来将一个字符串值转换成实数值;
    函数acdbAngToF()用来将一个字符串值转换成角度值。
    [I]注意:字符串格式由AutoCAD的系统变量来控制,对于实数值,单位和精度由系统变量LUNITS和IUPREC指定;对于角度值,单位和精度由系统变量AUNITS和AUPERC指定。不论实数还是角度值,标注变量DIMZIN控制着是否在生成字符串的前后补0[/I]。
    下面的程序是调用函授acdbRToS()的方法:
    ads_real x=17.5;
    char fmtval[12];
    //精度是第三个参数
    acdbRToS(x,1,4,fmtval);
    acutPrintf(“结果形式为%s ”,fmtval);
    acdbRToS(x,2,2,fmtval);
    acutPrintf(“结果形式为%s ”,fmtval);
    acdbRToS(x,3,2,fmtval);
    acutPrintf(“结果形式为%s ”,fmtval);
    acdbRToS(x,4,2,fmtval);
    acutPrintf(“结果形式为%s ”,fmtval);
    acdbRToS(x,5,2,fmtval);
    acutPrintf(“结果形式为%s ”,fmtval);
    假定系统变量DIMZIN为0,在AutoCAD文本屏幕上显示为:
    结果形式为1.7500E+01
    结果形式为17.50
    结果形式为1′-5.50″
    结果形式为1′-5 1/2″
    结果形式为17 1/2
    当系统变量UNITMODE等于1时,输出串的单位由输入字符串的单位决定,因此,函数acdbRToS()在下列模式下返回的值在形式上是不同的:工程单位制(模式3)、建筑单位制(模式4)和分数形式(模式5)。当UNITMODE=1时,在上面的例子中,前两行的输出形式不变,后三行将变为:
    结果形式为1′5.50″
    结果形式为1′5 -1/2″
    结果形式为17 -1/2
    函数acdbDisToF()和acdbRToS()功能相反。下例就是引用上面程序转换后生成的字符串值,再进行反变换得来的,因此,参数restuil的值是17.5。
    acdbDisToF(“1.7500E+01”,1,&resuil);
    acdbDisToF(“17.50”,2,&resuil);
    acdbDisToF(“1′-5.50″”,3,&resuil);
    acdbDisToF(“1′-5 1/2″”,4,&resuil);
    acdbDisToF(“17 1/2”,5,&resuil);
    下面的程序代码调用函数acdbAngToS()的方法。与acdbRToS()的调用类似:
    ads_real ang=3.14159;
    char fmtval[12];
    acdbAngToS(ang,0,0,fmtval);
    acutPrintf(“角度的形式为%s ”,fmtval);
    acdbAngToS(ang,1,4,fmtval);
    acutPrintf(“角度的形式为%s ”,fmtval);
    acdbAngToS(ang,2,4,fmtval);
    acutPrintf(“角度的形式为%s ”,fmtval);
    acdbAngToS(ang,3,4,fmtval);
    acutPrintf(“角度的形式为%s ”,fmtval);
    acdbAngToS(ang,4,2,fmtval);
    acutPrintf(“角度的形式为%s ”,fmtval);
    假定系统变量DIMZIN为0,在AutoCAD文本屏幕上显示为:
    角度的形式为180
    角度的形式为180d0′0″
    角度的形式为200.0000g
    角度的形式为3.1416r
    角度的形式为w
    函数acdbAngToF()与acdbAngToS()功能相反。下例就是引用上面程序转换后生成的字符串值,再进行反变换得来的,因此,参数restuil的值是3.14159。
    acdbAngToF(“180”,0,&resuil);
    acdbAngToF(“180d0′0″”,1,&resuil);
    acdbAngToF(“200.0000g″”,2,&resuil);
    acdbAngToF(“3.1416r”,3,&resuil);
    acdbAngToF(“w”,4,&resuil);*



  • 相关阅读:
    说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;
    通过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利用因果图生成测试用例的基本步骤是:
    性能测试的流程?
    简述bug的生命周期?
    主键、外键的作用,索引的优点与不足?
    循序渐进VUE+Element 前端应用开发(30)--- ABP后端和Vue+Element前端结合的分页排序处理(转载)
    循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志(转载)
    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!     
    如何测试一个纸杯?
    测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
  • 原文地址:https://www.cnblogs.com/mjgw/p/12655835.html
Copyright © 2011-2022 走看看