请选择 进入手机版 | 继续访问电脑版

01BIM社区

 找回密码
 立即注册

扫一扫,访问微社区

查看: 20|回复: 0

缓和曲线类Transition

[复制链接]

112

主题

238

帖子

963

积分

高级会员

Rank: 4

积分
963
发表于 2018-11-6 07:42:06 | 显示全部楼层 |阅读模式
本帖最后由 tzbm123456 于 2018-11-6 07:46 编辑

缓和曲线类Transition设计说明书
完成时间:2018年10月03日
一、缓和曲线类名称:Transition_01KJ
二、继承类名称Tzbm_Common:rawBase_01KJ
三、成员变量
1、m_EntityID:缓和曲线实体ID值;
2、m_PointOrig:缓和曲线起点处坐标;
3、m_RadiusOrig:缓和曲线起点处半径,当〉=9999.m时,代表起点处曲率半径为无穷大;
4、m_VtOrig:缓和曲线起点处方向向量;
5、m_PointDest:缓和曲线终点处坐标;
6、m_RadiusDest:缓和曲线终点处半径;
7、m_VtDest:缓和曲线终点处方向向量;
8、m_VtNormal:缓和曲线平面法线向量;
9、m_LsOD:缓和曲线起点至终点的缓曲长度;
10、m_Width:绘制缓和曲线的宽度值,默认值为5.mm;
11、m_Depth:绘制缓和曲线的厚度值,默认值为5.mm;
12、m_Accuracy:缓和曲线的绘制精度;
13、m_Actor:用户角色名称,String型;
14、m_MaterStr:绘制缓和曲线的材质名称,默认值为"Transition_01KJ";
15、m_LayerStr:绘制缓和曲线的图层名称,默认值为"Layer0";
16、m_StyleArr:绘制缓和曲线的类型实虚长度数组,默认值为[],[].empty?_Solid、[].size==2_Dash、[].size==4_Dot、[].size==6_DotDouble;
17、m_LTScale:绘制缓和曲线线型的放缩比列,默认值为1.0;
18、mMath:数学类变量;
19、ma:缓和曲线曲率变化率:ma=1.0/(mDestinationRadius*mDestinationLs);
20、mA:缓和曲线长度与对应点圆曲线半径的几何平均值;
21、mTr:缓和曲线旋移综合矩阵;
22、mLsOrig:缓和曲线起点处缓曲线长度;
23、mBasePtOrig:缓和曲线起点基准坐标;
24、mBerltaO:缓和曲线起点处偏转角;
25、mLsDest:缓和曲线终点处缓曲线长度;
26、mBasePtDest:缓和曲线终点基准坐标;
27、mBerltaD:缓和曲线终点处偏转角;
28、mSegmentNum:缓和曲线的绘制段数;
29、mActorGrade:用户角色等级,String或FalseClass型,"JM/IM"、false;
30、mMaterial:记录创建实体的材质;
31、mLayer:记录创建实体的图层
32、mStyleStr:直线类型,String型,Solid/Dash/Dot/DotDouble/nil;
四、成员函数
(一)初始化
0、initialize(m_Entities=Sketchup.active_model.entities,m_PointOrig=Geom:oint3d.new(0.m,0.m,0),m_ROrig=10000.m,m_VtOrig=Geom::Vector3d.new(1,1,0),m_VtNormal=Geom::Vector3d.new(0,0,1),m_RDest=200.m,m_LsOD=60.m,m_Accuracy=20.mm,m_Actor="TZBM_JM",m_MaterStr="Transition_01KJ",m_LayerStr="Layer0",m_Width=10.mm,m_Depth=10.mm,m_StyleArr=[],m_LTScale=1.0)
(二)set、count、chang类
1、setEntityID(m_EntityID):1)判断实体是否存在;2)类型是否为Transition;3)是否有完整的属性和对应值;4)更新对象的参数。
2、setPointOrig(m_PointOrig)
3、setRadiusOrig(m_RadiusOrig)
4、setVtOrig(m_VtOrig)
5、setPointDest(m_PointDest)
6、setRadiusDest(m_RadiusDest)
7、setVtDest(m_VtDest)
8、setVtNormal(m_VtNormal)
9、setLsOD(m_LsOD)
10、setWidth(m_Width)
11、setDepth(m_Depth)
12、setAccuracym_Accuracy:判断类型,同时计算mSegmentNum=m_DestinationLs/(m_DestinationRadius*2*arccos(1-m_Accuracy/m_DestinationRadius))的值取整;
13、setActor(m_Actor)
14、setMaterStr(m_MaterStr)
15、setLayerStr(m_LayerStr)
16、setStyleArr(m_StyleArr)
17、setLTScale(m_LTScale)
18、setAtrribute():设置属性;
19、countVariable();
20、changeParameters():变更参数;
21、countTrans():计算缓和曲线旋移综合矩阵;
(三)get类
22、getTransLenPoint(TransLength):返回缓和曲线任意长度处的坐标点;
23、getTransLenRadius(TransLength):返回缓和曲线任意长度处的半径;
24、getTransLenBerlta(TransLength):返回缓和曲线任意长度处的切线角Berlta值;
25、getTransLenCenPoint(TransLength):返回缓和曲线任意长度处的圆心坐标点;
26、getTransLenDerlta(TransLength):返回缓和曲线任意长度处的切角Derlta值;
27、getTransLenC(TransLength):返回缓和曲线任意长度处的弦长c值;
五、成员方法
[size=16.0000pt](一)调用层
28、createEntity()
(二)角色定义层
29、createEntity_JM()
30、createEntity_IM()(waiting......)
(三)核心绘制层
31、drawTransitionCore_JM()
32、drawTransitionCore_IM()(waiting......)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|01BIM社区 - 最专业的BIM技术交流平台 ( 渝ICP备15000873号

GMT+8, 2018-11-18 14:01 , Processed in 0.070611 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表