CN118094669A - 基于catia的水利水电工程图高程标注方法 - Google Patents
基于catia的水利水电工程图高程标注方法 Download PDFInfo
- Publication number
- CN118094669A CN118094669A CN202410517711.XA CN202410517711A CN118094669A CN 118094669 A CN118094669 A CN 118094669A CN 202410517711 A CN202410517711 A CN 202410517711A CN 118094669 A CN118094669 A CN 118094669A
- Authority
- CN
- China
- Prior art keywords
- elevation
- point
- projection
- dimensional
- view
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000002372 labelling Methods 0.000 claims abstract description 30
- 238000010276 construction Methods 0.000 claims abstract description 6
- 230000008569 process Effects 0.000 claims description 12
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 7
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 abstract description 4
- 230000006872 improvement Effects 0.000 abstract description 3
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开的基于CATIA的水利水电工程图高程标注方法,包括以下步骤:步骤1、自定义高程标注特征;步骤2、根据设计要求设置当前激活视图中相关高程标注的显示属性和样式;步骤3、计算高程值和标注方向;步骤4、绘制并生成高程标注。本发明通过选取三维模型的投影边或剖切边,精确地找到对应的三维模型位置,并计算得出高程值,显著提高了高程标注的效率和准确性;通过实时绘制相应的高程符号并结合计算的高程值实现高程的实时标注,大大缩短了从数据计算到图形表示的时间差,便于设计师和工程师即时获取高程信息,为建筑和水利水电行业提供了重要的技术支持,有助于提升行业的设计质量和效率。
Description
技术领域
本发明属于水利水电工程图标注方法技术领域,具体涉及基于CATIA的水利水电工程图高程标注方法。
背景技术
CATIA作为达索公司的旗舰产品,在工业设计领域具有广泛的应用,其强大的建模能力和支持整个工业设计流程的特性,使得制造商能够高效地设计未来的产品。CATIA的开放和可扩展架构为企业带来了极大的灵活性,允许企业重用产品设计知识,缩短开发周期,并快速响应市场需求。然而,在水利水电工程制图领域,CATIA的原生功能在某些方面存在局限性,特别是高程标注这一关键功能,无法满足该行业对高程标注的特定要求。好在达索公司提供了CAA(Component Application Architecture)组件库这一可扩展的客户化定制开发应用架构平台,通过CAA接口进行二次开发,实现高程标注的精确计算和图形表示,不仅可以满足水利水电工程制图对高程标注的特定要求,还可以进一步提高出图效率和准确性。
综上所述,虽然CATIA在某些方面存在局限性,但通过达索公司提供的CAA组件库进行二次开发,可以有效地解决这些问题,使CATIA更好地适应水利水电工程制图的需求。这将为相关行业带来更高的设计效率和准确性,推动水利水电行业设计的进步。
发明内容
本发明的目的在于提供基于CATIA的水利水电工程图高程标注方法,解决了CATIA原生功能不能满足水利水电工程制图中高程标注的效率和准确性要求的问题。
本发明所采用的技术方案是:基于CATIA的水利水电工程图高程标注方法,包括以下步骤:
步骤1、自定义高程标注特征;
步骤2、根据设计要求设置当前激活视图中相关高程标注的显示属性和样式;
步骤3、计算高程值和标注方向;
步骤4、绘制并生成高程标注。
本发明的特点还在于:
步骤1具体包括以下步骤:
步骤1.1、定义高程标注的特征参数,包括标注位置、标注的三维对象、标注文本、高程基准及字体信息;
步骤1.2、通过CATIA提供的自定义特征的方法定义高程特征对象,注册并生成CATfct文件,然后通过命令反向生成osm文件,并将步骤1.1定义的特征参数存储至osm文件中,再通过CATIA提供的命令生成CATfct文件,并为CATfct文件中的特征对象定义扩展类;
步骤1.3、给高程特征对象设置可视化接口CATI2DGeoVisu和编辑接口CATIEdit。
步骤2具体包括以下步骤:
步骤2.1、通过界面设置高程标注的字体名称、字体高度、高程符号、模型单位及高程基准信息;
步骤2.2、获取步骤2.1所设置的信息并保存至环境文件。
步骤3具体包括以下步骤:
步骤3.1、交互选择要标注的投影边或剖切边,通过选择对象获取当前视图View,并通过当前视图获取投影面ProjectPlane;
步骤3.2、计算通过鼠标点击所选择的投影边或剖切边位置的视图坐标ViewPt;
步骤3.3、获取选择的投影边或剖切边的二维起点ptStart和二维终点ptEnd,通过公式|ptStart-OriginPoint(0.0)|计算所选投影边或剖切边的二维起点ptStart到零点OriginPoint(0.0)的距离DisSOP;
步骤3.4、获取所选投影边或剖切边对应的三维模型对象3DModelObject,通过二维起点ptStart和二维终点ptEnd获取对应的三维起点StartPoint和三维终点EndPoint,并判断选择对象是投影边还是剖切边;
步骤3.5、计算投影边或剖切边的三维起点StartPoint到投影面ProjectPlane原点的距离DisPSOP;
步骤3.6、基于步骤3.3所得距离DisSOP、步骤3.5所得距离DisPSOP与步骤3.4所得三维起点StartPoint和三维终点EndPoint,通过公式DisPSOP-DisSOP判断绝对值是否小于0.1决定最大高程值MAXElevationValueZ的取值,如果|DisPSOP-DisSOP|<0.1,则最大高程值MAXElevationValueZ取三维起点StartPoint的Z值;否则最大高程值MAXElevationValueZ取三维终点EndPoint的Z值;
步骤3.7、计算步骤3.2所得视图坐标ViewPt与步骤3.3所得二维起点ptStart的距离Dis1,计算步骤3.3所得二维起点ptStart和二维终点ptEnd的距离Dis2,如果Dis1<(Dis2/2),则高程标注的初始位置InitPos为二维起点ptStart;否则高程标注的初始位置InitPos为二维终点ptEnd;
步骤3.8、基于步骤3.3所得二维起点ptStart和二维终点ptEnd,通过公式textDir=ptEnd-ptStart计算高程标注方向textDir;
步骤3.9、获取步骤2.2中保存到环境文件的字体名称、字体高度、模型单位、高程基准及高程符号的属性信息;
步骤3.10、将所选的三维模型对象3DModelObject、高程标注的初始位置InitPos、最大高程值MAXElevationValueZ、高程类型、高程标注方向textDir以及步骤3.9所得属性信息存储至高程特征对象的属性中,并发送通知进行高程符号绘制以及高程标注。
步骤3.2具体包括以下步骤:
步骤3.2.1、获取通过鼠标点击所选择的投影边或剖切边对象的屏幕坐标ScrCoordPt;
步骤3.2.2、获取当前视图View和视图比例useScale;
步骤3.2.3、通过当前视图View的接口获取当前视图的原点坐标axisX、axisY和视图旋转角度rotAngle;
步骤3.2.4、通过视图旋转角度rotAngle、视图比例useScale构建方向xDir、yDir、zDir,构建方法为:
xDir(cos(rotAngle)•useScale,sin(rotAngle)•useScale,0)
yDir(-sin(rotAngle)•useScale,cos(rotAngle)•useScale,0)
zDir(0,0,useScale)
步骤3.2.5、通过当前视图原点坐标axisX、axisY和三个方向xDir、yDir、zDir构建轴系MathAxis(xDir,yDir,zDir,CATMathVectorf(axisX,axisY,0));
步骤3.2.6、通过轴系MathAxis得到逆矩阵InverseMathAxis,并将InverseMathAxis作为最终的转换矩阵;
步骤3.2.7、通过公式ViewPt=ScrCoordPt•InverseMathAxis得到视图坐标ViewPt。
步骤3.4中判断选择对象是投影边还是剖切边具体为:
如果是投影边,则获取三维模型对象3DmodelObject所组成单元的边的两个端点作为投影边的三维起点StartPoint和三维终点EndPoint;
如果是剖切边,则计算剖切边的三维起点StartPoint和三维终点EndPoint,具体步骤为:
步骤3.4.1、通过当前视图View获取剖切点StartP和EndP,进一步生成剖切线Line,将零点OriginPoint(0.0)投影到剖切线Line上,得到投影点ptProj,并计算出零点OriginPoint(0.0)到投影点ptProj的偏移值offset;
步骤3.4.2、获取投影面ProjectPlane的法线dirPlaneNormal;
步骤3.4.3、通过当前视图View获取母视图MotherView及母视图投影面MotherProjectPlane,构建零点坐标ptOrigin(0,0,0),通过公式dirPlaneNormal+ptOrigin(0,0,0)得到点ptAddNor,并将点ptAddNor投影到母视图的投影面MotherProjectPlane上生成投影点ptAddNorProj;
步骤3.4.4、通过公式dirAdd=ptAddNorProj-ptOrigin(0,0,0)得到方向值dirAdd;
步骤3.4.5、获取母视图投影面MotherProjectPlane的第一方向FirstDirection、第二方向SecondDirection,计算得到点pt2DAddProj(dirAdd•FirstDirection、dirAdd•SecondDirection),再计算点pt2DAddProj到投影点ptProj的距离distance2;
步骤3.4.6、通过三维模型对象3DModelObject获取所组成单元的面pFaceSelect,构建投影面ProjectPlane的拓扑对象piPlaneBody,根据公式|distance2-offset-1|判断绝对值是否小于0.001,若是则点SectionPt=ptOrigin-dirPlaneNormal•offset,否则点SectionPt=ptOrigin+dirPlaneNormal•offset;将点SectionPt设置为投影面ProjectPlane的原点,得到新的面planeSection作为剖切面,构建剖切面planeSection的拓扑对象SectionPlaneBody;
步骤3.4.7、获取当前所选剖切边对应的三维特征面pFaceSelect,并构建对应的拓扑对象TransfFaceBody;
步骤3.4.8、计算拓扑对象SectionPlaneBody和拓扑对象TransfFaceBody的拓扑交线CurrentBody,并获取拓扑交线CurrentBody的两个端点作为三维起点StartPoint和三维终点EndPoint。
步骤3.5具体包括以下步骤:
步骤3.5.1、将三维起点StartPoint投影到投影面ProjectPlane得到投影点ProjectStartPoint;
步骤3.5.2、计算投影面ProjectPlane的原点PlanePoint到投影点ProjectStartPoint的距离DisPSOP。
步骤4具体包括以下步骤:
步骤4.1、接收实时绘制消息;
步骤4.2、获取高程特征对象及当前视图View、最大高程值MAXElevationValueZ、初始位置InitPos、高程标注方向textDir、高程基准、字体名称及字体高度;
步骤4.3、通过当前视图View获取视图比例viewScale和旋转弧度radianCurrent,再通过公式angleCurrent=180•radianCurrent/将旋转弧度转换成旋转角度angleCurrent;基于初始位置InitPos与水平方向的夹角Angle,通过公式textAngle=Angle+angleCurrent得到高程标注的角度textAngle;
步骤4.4、获取当前鼠标点击所选择的位置坐标点CurrPos,将标注位置坐标点设置为DimPos并更新;其中,平面高程标注位置坐标点DimPos等于CurrPos,立面高程则需要计算标注位置点和标注移动方向,过程为:通过初始位置InitPos与高程标注方向textDir创建投影线ProjectLine得到标注的移动方向,将坐标点CurrPos投影到投影线ProjectLine得到投影点DimPos作为立面高程的标注位置坐标点;
步骤4.5、通过CAT2DBagRep方法完成对高程符号的绘制、高程文本的创建以及高程基准、字体名称、字体高度、视图比例的设置,将绘制好的符号结合最大高程值MAXElevationValueZ所生成的标注放置到位置坐标点DimPos,设置角度textAngle,更新视图并生成高程标注;
步骤4.6、将生成的高程标注以浮标的方式显示在鼠标所在位置,拖动鼠标调整标注位置,如果是平面高程,将标注任意拖动到合适的标注位置;如果是立面高程标注,通过步骤4.4创建的投影线ProjectLine控制高程标注的移动方向,使其移动方向与投影线ProjectLine保持一致,确定标注位置之后将新的位置保存至高程特征对象对应的属性中,更新视图完成标注。
还包括步骤5,步骤5可以是:绘制并生成高程标注后对高程标注进行编辑,具体步骤为:
步骤5.1、鼠标左键双击高程标注对象,弹出高程编辑对话框;
步骤5.2、编辑前缀、后缀、符号类型、高程值、附加角度以及是否显示下划线的信息并保存到高程特征对象的相关特征属性中,并发送通知进行高程符号绘制以及显示。
还包括步骤5,步骤5可以是:绘制并生成高程标注后对高程标注进行更新,具体步骤为:
步骤5.1、获取当前激活视图以及所有带高程特征对象的标注;
步骤5.2、获取标注对应的组件名称;
步骤5.3、根据名称识别不同类型的高程标注;
步骤5.4、重新计算最大高程值;
步骤5.5、绘制并生成高程标注。
本发明的有益效果是:本发明的基于CATIA的水利水电工程图高程标注方法,通过选取三维模型的投影边或剖切边,精确地找到对应的三维模型位置,并计算得出高程值,显著提高了高程标注的效率和准确性;通过实时绘制相应的高程符号并结合计算的高程值实现高程的实时标注,大大缩短了从数据计算到图形表示的时间差,便于设计师和工程师即时获取高程信息,为建筑和水利水电行业提供了重要的技术支持,有助于提升行业的设计质量和效率。
附图说明
图1是本发明的基于CATIA的水利水电工程图高程标注方法的流程示意图;
图2是本发明的基于CATIA的水利水电工程图高程标注方法中定义的高程接口示意图;
图3是本发明的基于CATIA的水利水电工程图高程标注方法中计算高程值和标注方向的流程示意图;
图4是本发明的基于CATIA的水利水电工程图高程标注方法中绘制并生成高程标注的流程示意图。
具体实施方式
下面结合附图以及具体实施方式对本发明进行详细说明。
实施例1
本发明提供了基于CATIA的水利水电工程图高程标注方法,专注于解决水工出图中高程的快速、准确标注问题。用户执行标注命令后,可以通过直观的交互式操作,轻松选取三维模型中的投影边、剖切边,程序会获取这些边两端点的Z值,并选择较大的Z值作为实际的高程值,然后结合实时绘制的高程符号生成高程标注。用户可以通过鼠标拖动高程标注,来确定其在实际图纸上的位置,对于立面高程(剖面高程)标注,程序控制鼠标拖动高程标注的移动方向,确保与标注对象的方向保持一致;对于平面高程标注用户可以根据需要任意放置。
通过上述方式,发明提供的基于CATIA的水利水电工程图高程标注方法,通过选取三维模型的投影边或剖切边,精确地找到对应的三维模型位置,并计算得出高程值,显著提高了高程标注的效率和准确性;通过实时绘制相应的高程符号并结合计算的高程值实现高程的实时标注,大大缩短了从数据计算到图形表示的时间差,便于设计师和工程师即时获取高程信息,为建筑和水利水电行业提供了重要的技术支持,有助于提升行业的设计质量和效率。
实施例2
本发明提供了基于CATIA的水利水电工程图高程标注方法,如图1所示,具体按照以下步骤实施:
步骤1、自定义高程标注特征:
步骤1.1、定义高程标注的特征参数,包括标注位置、标注的三维对象、标注文本、高程基准、字体等信息,如下表1所示:
表1高程标注的特征参数
步骤1.2、通过CATIA提供的自定义特征的方法定义高程特征对象ElevationFeatureObject;注册并生成ElevationFeatureObject.CATfct文件,然后通过命令反向生成ElevationFeatureObject.osm文件,并将步骤1.1定义的这些特征参数存储至ElevationFeatureObject.osm文件中,再通过CATIA提供的命令生成ElevationFeatureObject.CATfct,并为CATfct文件中的特征对象定义扩展类,在后续高程设置、标注以及编辑、更新时对扩展类进行实例化以获取高程特征对象ElevationFeatureObject。
步骤1.3、如图2所示,给高程特征对象ElevationFeatureObject设置可视化接口CATI2DGeoVisu和编辑接口CATIEdit。其中,CATI2DGeoVisu接口用于高程特征对象ElevationFeatureObject的符号绘制、文本创建以及显示,在高程设置、高程标注以及高程编辑、高程更新都需要用到该接口生成高程标注;CATIEdit接口用于实时检测鼠标左键双击事件,实现已有高程标注的编辑功能。
步骤2、高程设置:
高程设置时将需要设置的信息存储至环境文件以及已标注高程的高程特征对象ElevationFeatureObject中,高程设置功能允许用户定义和配置当前激活视图中所有高程标注的显示属性和样式,包括字体名称、字体高度、模型单位、高程基准以及高程符号等参数,其中高程符号包含了国内工程(▽)与涉外工程(EL.)两种模式,高程标注设置之后保存到环境文件,后续高程标注时根据该环境文件的信息进行相应的设置,从而实时生成符合要求的高程标注,设置过程具体为:
步骤2.1、通过界面设置高程标注的字体名称、字体高度、模型单位、高程基准、高程符号等信息。
步骤2.2、获取所设置的信息并保存至环境文件。
步骤3、计算高程值和标注方向:
激活平面高程或立面高程命令,通过选择标注投影边或剖切边对象获取对应的三维模型,计算高程值与标注位置并存储至高程特征对象ElevationFeatureObject,如图3所示,实现流程为:
步骤3.1、交互选择要标注的投影边或剖切边,通过选择对象获取当前视图View,并通过当前视图获取投影面ProjectPlane。
步骤3.2、计算通过鼠标点击所选择的投影边或剖切边位置的视图坐标ViewPt,具体为:
步骤3.2.1、获取通过鼠标点击所选择的投影边或剖切边对象的屏幕坐标ScrCoordPt;
步骤3.2.2、将屏幕坐标ScrCoordPt转换为视图坐标ViewPt,过程如下:
1)获取当前视图View和视图比例useScale;
2)通过当前视图View的接口获取当前视图的原点坐标axisX、axisY和视图旋转角度rotAngle;
3)通过视图旋转角度rotAngle、视图比例useScale构建方向xDir、yDir、zDir,构建方法如下所示:
xDir(cos(rotAngle)•useScale,sin(rotAngle)•useScale,0)
yDir(-sin(rotAngle)•useScale,cos(rotAngle)•useScale,0)
zDir(0,0,useScale)
4)通过当前视图原点坐标axisX、axisY和三个方向xDir、yDir、zDir构建轴系MathAxis(xDir,yDir,zDir,CATMathVectorf(axisX,axisY,0));
5)通过轴系MathAxis得到逆矩阵InverseMathAxis,并将InverseMathAxis作为最终的转换矩阵;
6)通过公式ViewPt=ScrCoordPt•InverseMathAxis得到视图坐标ViewPt。
步骤3.3、获取选择的投影边或剖切边的二维起点ptStart和二维终点ptEnd,通过公式|ptStart-OriginPoint(0.0)|计算所选投影边或剖切边的二维起点ptStart到零点OriginPoint(0.0)的距离DisSOP。
步骤3.4、获取所选投影边或剖切边对应的三维模型对象3DModelObject,通过二维起点ptStart和二维终点ptEnd获取对应的三维起点StartPoint和三维终点EndPoint,并通过所选边的类型判断选择对象是投影边还是剖切边,根据类型判断结果执行对应的过程,具体如下:
如果是投影边,则计算投影边的三维起点StartPoint和三维终点EndPoint,获取三维模型对象3DmodelObject所组成单元的边的两个端点作为三维起点StartPoint和三维终点EndPoint;
如果是剖切边,则计算剖切边的三维起点StartPoint和三维终点EndPoint,过程如下:
1)通过当前视图View获取剖切点StartP、EndP,进一步生成剖切线Line,将零点OriginPoint(0.0)投影到剖切线Line上,得到投影点ptProj,并计算得出零点OriginPoint(0.0)到投影点ptProj的偏移值offset;
2)获取投影面ProjectPlane的法线dirPlaneNormal;
3)通过当前视图View获取母视图MotherView及母视图投影面MotherProjectPlane,构建零点坐标ptOrigin(0,0,0),通过公式dirPlaneNormal+ptOrigin(0,0,0)得到点ptAddNor,并将点ptAddNor投影到母视图的投影面MotherProjectPlane上生成投影点ptAddNorProj;
4)通过公式dirAdd=ptAddNorProj-ptOrigin(0,0,0)得到方向值dirAdd;
5)获取母视图投影面MotherProjectPlane的第一方向FirstDirection和第二方向SecondDirection,计算得到点pt2DAddProj(dirAdd•FirstDirection、dirAdd•SecondDirection),再计算点pt2DAddProj到投影点ptProj的距离distance2;
6)通过三维模型对象3DModelObject获取所组成单元的面pFaceSelect,构建投影面ProjectPlane的拓扑对象piPlaneBody,根据公式|distance2-offset-1|判断绝对值是否小于0.001,若是则点SectionPt=ptOrigin-dirPlaneNormal•offset,否则点SectionPt=ptOrigin+dirPlaneNormal•offset;将点SectionPt设置为投影面ProjectPlane的原点,得到新的面planeSection作为剖切面,构建剖切面planeSection的拓扑对象SectionPlaneBody;
7)获取当前所选剖切边对应的三维特征面pFaceSelect,并构建对应的拓扑对象TransfFaceBody;
8)计算拓扑对象SectionPlaneBody和拓扑对象TransfFaceBody的拓扑交线CurrentBody,并获取拓扑交线CurrentBody的两个端点作为三维起点StartPoint和三维终点EndPoint。
步骤3.5、计算投影边或剖切边的三维起点StartPoint到投影面ProjectPlane的原点的距离DisPSOP,过程如下:
1)将三维起点StartPoint投影到投影面ProjectPlane得到投影点ProjectStartPoint;
2)计算投影面ProjectPlane的原点PlanePoint到投影点ProjectStartPoint的距离DisPSOP。
步骤3.6、计算最大高程值MAXElevationValueZ:基于步骤3.3得到的距离DisSOP、步骤3.5得到的距离DisPSOP与步骤3.4得到的三维起点StartPoint和三维终点EndPoint,通过公式DisPSOP-DisSOP判断绝对值是否小于0.1决定最大高程值MAXElevationValueZ的取值;如果|DisPSOP-DisSOP|<0.1,则最大高程值MAXElevationValueZ取三维起点StartPoint的Z值,否则最大高程值MAXElevationValueZ取三维终点EndPoint的Z值。
步骤3.7、计算高程标注的初始位置InitPos:计算步骤3.2获取的视图坐标ViewPt与步骤3.3获取的二维起点ptStart的距离Dis1,再计算步骤3.3获取到的二维起点ptStart和二维终点ptEnd的距离Dis2;如果Dis1<(Dis2/2),则高程标注的初始位置InitPos为二维起点ptStart;否则高程标注的初始位置InitPos为二维终点ptEnd。
步骤3.8、计算高程标注方向textDir:基于步骤3.3获取到的二维起点ptStart和二维终点ptEnd,通过公式textDir=ptEnd-ptStart计算高程标注方向textDir。
步骤3.9、获取步骤2.2保存到环境文件的字体名称、字体高度、模型单位、高程基准、高程符号等属性信息。
步骤3.10、保存高程标注所有相关参数:将所选的三维模型对象3DModelObject、高程标注的初始位置InitPos、最大高程值MAXElevationValueZ、高程类型(通过选择命令设定高程类型)、高程标注方向textDir以及步骤3.9获取到的属性信息存储至高程特征对象ElevationFeatureObject的属性中,并发送通知进行高程符号绘制以及高程标注。
步骤4、绘制并生成高程标注:
高程绘制类GaoChengDraw通过高程特征对象ElevationFeatureObject的接口CATI2DGeoVisu收到步骤3.10发送的高程符号绘制以及高程标注的消息,实现对高程标注的绘制以及生成,如图4所示,过程如下:
步骤4.1、接收实时绘制消息。
步骤4.2、获取高程特征对象ElevationFeatureObject,并通过高程特征对象ElevationFeatureObject获取当前视图View、最大高程值MAXElevationValueZ、初始位置InitPos、高程标注方向textDir、高程基准、字体名称、字体高度等信息。
步骤4.3、计算标注旋转角度angleCurrent,通过当前视图View获取视图比例viewScale和旋转弧度radianCurrent,再通过公式angleCurrent=180•radianCurrent/将旋转弧度转换成旋转角度;基于步骤4.2所获取的初始位置InitPos与水平方向的夹角Angle,通过公式textAngle=Angle+angleCurrent得到高程标注的角度textAngle。
步骤4.4、计算标注位置和移动方向:获取当前鼠标点击所选择的位置坐标点CurrPos,将标注位置坐标点设置为DimPos并更新;其中,平面高程标注位置坐标点DimPos等于CurrPos,立面高程则需要计算标注位置点和标注移动方向,过程为:通过初始位置InitPos与高程标注方向textDir创建投影线ProjectLine得到标注的移动方向,将坐标点CurrPos投影到投影线ProjectLine得到投影点DimPos作为立面高程的标注位置坐标点。
步骤4.5、绘制高程符号并设置属性:通过CAT2DBagRep方法完成对高程符号的绘制、高程文本的创建以及高程基准、字体名称、字体高度、视图比例等的设置,将绘制好的符号结合最大高程值MAXElevationValueZ所生成的标注默认放置到位置坐标点DimPos,设置角度textAngle,更新视图并生成高程标注。
步骤4.6、调整标注位置:将步骤4.5生成的高程标注以浮标的方式显示在鼠标所在位置,拖动鼠标调整标注位置,如果是平面高程,可将标注任意拖动到合适的标注位置;如果是立面高程标注,通过步骤4.4创建的投影线ProjectLine控制高程标注的移动方向,使其移动方向与投影线ProjectLine保持一致,确定标注位置之后将新的位置保存至高程特征对象ElevationFeatureObject对应的属性中,更新视图完成标注。
通过上述实施方式,本发明的基于CATIA的水利水电工程图高程标注方法的特点还在于:
1、使用自定义特征的方法定义高程标注对象,实现了对高程相关属性如标注对象、位置、方向等的存储,为高程设置提供了重要的数据基础,在绘制并生成高程标注过程中,可以根据自定义高程标注对象所存储的不同标注要求结合视图比例实时绘制高程标注。此外,还可以为其他附加功能如更新和编辑等提供重要的数据基础。
2、基于自定义特征所记录的属性信息,可进行高程样式、字体、基准的设置,支持国内工程(▽)与涉外工程(EL.)两种高程标注,并且可以任意切换。
3、通过在二维线框中鼠标点选可以直接获取三维模型某位置的高程值,使得计算过程更加快速,计算结果更加准确。
4、采用了可视化方法实时绘制标注符号,使得高程标注对象的大小可以随图纸比例的变化而变化,解决了通过2D部件实现时无法实时适配视图比例的问题。
5、采用了可视化方法实时绘制标注符号,在调整立面高程标注位置时,可以通过鼠标上下移动来控制高程符号和标注值位于标注线的上方或者下方,使用起来更加灵活便捷。
6、采用了可视化方法实时绘制标注符号,对于已标注的立面高程,移动时会触发CATI2DGeoVisu接口,可控制高程标注的移动方向与标注对象的方向保持一致。
实施例3
本发明的基于CATIA的水利水电工程图高程标注方法,在实施例2的基础上还提供了高程标注的编辑、更新等功能,具体如下:
高程编辑:
通过鼠标左键双击已标注的高程对象可以直接调用高程特征对象ElevationFeatureObject的编辑接口CATIEdit,并弹出高程编辑的对话框,以进一步编辑高程标注的前缀、后缀、附加角度等,也可修改高程值,并将编辑后的信息存储至高程特征对象ElevationFeatureObject中,高程编辑过程如下:
1)鼠标左键双击高程标注对象,弹出高程编辑对话框。
2)编辑前缀、后缀、符号类型、高程值、附加角度以及是否显示下划线等信息,并将其保存到高程特征对象ElevationFeatureObject的相关特征属性中,并发送通知进行高程符号绘制以及显示,过程同步骤4绘制并生成高程标注。
高程更新:
在三维模型尺寸有变化时需要对高程标注统一更新,通过高程标注时记录的高程特征对象ElevationFeatureObject以获取对应的三维模型,重新计算高程值,从而实现高程标注的更新,更新过程如下所示:
1)获取当前激活图纸,以及所有带高程特征对象ElevationFeatureObject的标注。
2)获取标注对应组件名称。
3)根据名称识别不同类型的高程标注。
4)重新计算最大高程值,计算方法同步骤3.6。
5)绘制并生成高程标注,过程同步骤4。
通过上述方式,本发明的基于CATIA的水利水电工程图高程标注方法,支持高程标注的双击编辑功能,即对任何一个高程标注进行双击,即可弹出高程编辑界面,允许用户对高程值、标注样式等信息进行修改,高程标注的基准、前后缀等信息也可以进行编辑,这种即时的编辑反馈,极大地提高了标注的灵活性和准确性;同时还提供了高程标注的更新功能,当高程数据发生变化时,能够重新计算高程值,并对高程标注进行更新,为水利水电工程图提供了全面、高效的高程标注解决方案,进一步满足了工程设计中对高程标注的灵活需求。
Claims (10)
1.基于CATIA的水利水电工程图高程标注方法,其特征在于,包括以下步骤:
步骤1、自定义高程标注特征;
步骤2、根据设计要求设置当前激活视图中相关高程标注的显示属性和样式;
步骤3、计算高程值和标注方向;具体包括以下步骤:
步骤3.1、交互选择要标注的投影边或剖切边,通过选择对象获取当前视图View,并通过当前视图获取投影面ProjectPlane;
步骤3.2、计算通过鼠标点击所选择的投影边或剖切边位置的视图坐标ViewPt;
步骤3.3、获取选择的投影边或剖切边的二维起点ptStart和二维终点ptEnd,通过公式|ptStart-OriginPoint(0.0)|计算所选投影边或剖切边的二维起点ptStart到零点OriginPoint(0.0)的距离DisSOP;
步骤3.4、获取所选投影边或剖切边对应的三维模型对象3DModelObject,通过二维起点ptStart和二维终点ptEnd获取对应的三维起点StartPoint和三维终点EndPoint,并判断选择对象是投影边还是剖切边;
步骤3.5、计算投影边或剖切边的三维起点StartPoint到投影面ProjectPlane原点的距离DisPSOP;
步骤3.6、基于步骤3.3所得距离DisSOP、步骤3.5所得距离DisPSOP与步骤3.4所得三维起点StartPoint和三维终点EndPoint,通过公式DisPSOP-DisSOP判断绝对值是否小于0.1决定最大高程值MAXElevationValueZ的取值,如果|DisPSOP-DisSOP|<0.1,则最大高程值MAXElevationValueZ取三维起点StartPoint的Z值;否则最大高程值MAXElevationValueZ取三维终点EndPoint的Z值;
步骤4、绘制并生成高程标注。
2.如权利要求1所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,所述步骤1具体包括以下步骤:
步骤1.1、定义高程标注的特征参数,包括标注位置、标注的三维对象、标注文本、高程基准及字体信息;
步骤1.2、通过CATIA提供的自定义特征的方法定义高程特征对象,注册并生成CATfct文件,然后通过命令反向生成osm文件,并将步骤1.1定义的特征参数存储至osm文件中,再通过CATIA提供的命令生成CATfct文件,并为CATfct文件中的特征对象定义扩展类;
步骤1.3、给高程特征对象设置可视化接口CATI2DGeoVisu和编辑接口CATIEdit。
3.如权利要求2所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,所述步骤2具体包括以下步骤:
步骤2.1、通过界面设置高程标注的字体名称、字体高度、高程符号、模型单位及高程基准信息;
步骤2.2、获取步骤2.1所设置的信息并保存至环境文件。
4.如权利要求3所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,所述步骤3还包括以下步骤:
步骤3.7、计算步骤3.2所得视图坐标ViewPt与步骤3.3所得二维起点ptStart的距离Dis1,计算步骤3.3所得二维起点ptStart和二维终点ptEnd的距离Dis2,如果Dis1<(Dis2/2),则高程标注的初始位置InitPos为二维起点ptStart;否则高程标注的初始位置InitPos为二维终点ptEnd;
步骤3.8、基于步骤3.3所得二维起点ptStart和二维终点ptEnd,通过公式textDir=ptEnd-ptStart计算高程标注方向textDir;
步骤3.9、获取步骤2.2中保存到环境文件的字体名称、字体高度、模型单位、高程基准及高程符号的属性信息;
步骤3.10、将所选的三维模型对象3DModelObject、高程标注的初始位置InitPos、最大高程值MAXElevationValueZ、高程类型、高程标注方向textDir以及步骤3.9所得属性信息存储至高程特征对象的属性中,并发送通知进行高程符号绘制以及高程标注。
5.如权利要求1所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,所述步骤3.2具体包括以下步骤:
步骤3.2.1、获取通过鼠标点击所选择的投影边或剖切边对象的屏幕坐标ScrCoordPt;
步骤3.2.2、获取当前视图View和视图比例useScale;
步骤3.2.3、通过当前视图View的接口获取当前视图的原点坐标axisX、axisY和视图旋转角度rotAngle;
步骤3.2.4、通过视图旋转角度rotAngle、视图比例useScale构建方向xDir、yDir、zDir,构建方法为:
xDir(cos(rotAngle)•useScale,sin(rotAngle)•useScale,0)
yDir(-sin(rotAngle)•useScale,cos(rotAngle)•useScale,0)
zDir(0,0,useScale)
步骤3.2.5、通过当前视图原点坐标axisX、axisY和三个方向xDir、yDir、zDir构建轴系MathAxis(xDir,yDir,zDir,CATMathVectorf(axisX,axisY,0));
步骤3.2.6、通过轴系MathAxis得到逆矩阵InverseMathAxis,并将InverseMathAxis作为最终的转换矩阵;
步骤3.2.7、通过公式ViewPt=ScrCoordPt•InverseMathAxis得到视图坐标ViewPt。
6.如权利要求1所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,所述步骤3.4中判断选择对象是投影边还是剖切边具体为:
如果是投影边,则获取三维模型对象3DmodelObject所组成单元的边的两个端点作为投影边的三维起点StartPoint和三维终点EndPoint;
如果是剖切边,则计算剖切边的三维起点StartPoint和三维终点EndPoint,具体步骤为:
步骤3.4.1、通过当前视图View获取剖切点StartP和EndP,进一步生成剖切线Line,将零点OriginPoint(0.0)投影到剖切线Line上,得到投影点ptProj,并计算出零点OriginPoint(0.0)到投影点ptProj的偏移值offset;
步骤3.4.2、获取投影面ProjectPlane的法线dirPlaneNormal;
步骤3.4.3、通过当前视图View获取母视图MotherView及母视图投影面MotherProjectPlane,构建零点坐标ptOrigin(0,0,0),通过公式dirPlaneNormal+ptOrigin(0,0,0)得到点ptAddNor,并将点ptAddNor投影到母视图的投影面MotherProjectPlane上生成投影点ptAddNorProj;
步骤3.4.4、通过公式dirAdd=ptAddNorProj-ptOrigin(0,0,0)得到方向值dirAdd;
步骤3.4.5、获取母视图投影面MotherProjectPlane的第一方向FirstDirection、第二方向SecondDirection,计算得到点pt2DAddProj(dirAdd•FirstDirection、dirAdd•SecondDirection),再计算点pt2DAddProj到投影点ptProj的距离distance2;
步骤3.4.6、通过三维模型对象3DModelObject获取所组成单元的面pFaceSelect,构建投影面ProjectPlane的拓扑对象piPlaneBody,根据公式|distance2-offset-1|判断绝对值是否小于0.001,若是则点SectionPt=ptOrigin-dirPlaneNormal•offset,否则点SectionPt=ptOrigin+dirPlaneNormal•offset;将点SectionPt设置为投影面ProjectPlane的原点,得到新的面planeSection作为剖切面,构建剖切面planeSection的拓扑对象SectionPlaneBody;
步骤3.4.7、获取当前所选剖切边对应的三维特征面pFaceSelect,并构建对应的拓扑对象TransfFaceBody;
步骤3.4.8、计算拓扑对象SectionPlaneBody和拓扑对象TransfFaceBody的拓扑交线CurrentBody,并获取拓扑交线CurrentBody的两个端点作为三维起点StartPoint和三维终点EndPoint。
7.如权利要求1所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,所述步骤3.5具体包括以下步骤:
步骤3.5.1、将三维起点StartPoint投影到投影面ProjectPlane得到投影点ProjectStartPoint;
步骤3.5.2、计算投影面ProjectPlane的原点PlanePoint到投影点ProjectStartPoint的距离DisPSOP。
8.如权利要求4所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,所述步骤4具体包括以下步骤:
步骤4.1、接收实时绘制消息;
步骤4.2、获取高程特征对象及当前视图View、最大高程值MAXElevationValueZ、初始位置InitPos、高程标注方向textDir、高程基准、字体名称及字体高度;
步骤4.3、通过当前视图View获取视图比例viewScale和旋转弧度radianCurrent,再通过公式angleCurrent=180•radianCurrent/将旋转弧度转换成旋转角度angleCurrent;基于初始位置InitPos与水平方向的夹角Angle,通过公式textAngle=Angle+angleCurrent得到高程标注的角度textAngle;
步骤4.4、获取当前鼠标点击所选择的位置坐标点CurrPos,将标注位置坐标点设置为DimPos并更新;其中,平面高程标注位置坐标点DimPos等于CurrPos,立面高程则需要计算标注位置点和标注移动方向,过程为:通过初始位置InitPos与高程标注方向textDir创建投影线ProjectLine得到标注的移动方向,将坐标点CurrPos投影到投影线ProjectLine得到投影点DimPos作为立面高程的标注位置坐标点;
步骤4.5、通过CAT2DBagRep方法完成对高程符号的绘制、高程文本的创建以及高程基准、字体名称、字体高度、视图比例的设置,将绘制好的符号结合最大高程值MAXElevationValueZ所生成的标注放置到位置坐标点DimPos,设置角度textAngle,更新视图并生成高程标注;
步骤4.6、将生成的高程标注以浮标的方式显示在鼠标所在位置,拖动鼠标调整标注位置,如果是平面高程,将标注任意拖动到合适的标注位置;如果是立面高程标注,通过步骤4.4创建的投影线ProjectLine控制高程标注的移动方向,使其移动方向与投影线ProjectLine保持一致,确定标注位置之后将新的位置保存至高程特征对象对应的属性中,更新视图完成标注。
9.如权利要求1所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,还包括步骤5,绘制并生成高程标注后对高程标注进行编辑,具体步骤为:
步骤5.1、鼠标左键双击高程标注对象,弹出高程编辑对话框;
步骤5.2、编辑前缀、后缀、符号类型、高程值、附加角度以及是否显示下划线的信息并保存到高程特征对象的相关特征属性中,并发送通知进行高程符号绘制以及显示。
10.如权利要求1所述的基于CATIA的水利水电工程图高程标注方法,其特征在于,还包括步骤5,绘制并生成高程标注后对高程标注进行更新,具体步骤为:
步骤5.1、获取当前激活视图以及所有带高程特征对象的标注;
步骤5.2、获取标注对应的组件名称;
步骤5.3、根据名称识别不同类型的高程标注;
步骤5.4、重新计算最大高程值;
步骤5.5、绘制并生成高程标注。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410517711.XA CN118094669B (zh) | 2024-04-28 | 2024-04-28 | 基于catia的水利水电工程图高程标注方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410517711.XA CN118094669B (zh) | 2024-04-28 | 2024-04-28 | 基于catia的水利水电工程图高程标注方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118094669A true CN118094669A (zh) | 2024-05-28 |
CN118094669B CN118094669B (zh) | 2024-07-09 |
Family
ID=91165656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410517711.XA Active CN118094669B (zh) | 2024-04-28 | 2024-04-28 | 基于catia的水利水电工程图高程标注方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118094669B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180012125A1 (en) * | 2016-07-09 | 2018-01-11 | Doxel, Inc. | Monitoring construction of a structure |
CN112818448A (zh) * | 2021-01-29 | 2021-05-18 | 中国电建集团成都勘测设计研究院有限公司 | 一种基于bim技术的地下厂房岩壁吊车梁设计方法 |
CN116401742A (zh) * | 2023-03-29 | 2023-07-07 | 中国电建集团西北勘测设计研究院有限公司 | 利用catia三维软件建立面板坝趾板参数化模型的方法 |
CN116842915A (zh) * | 2023-07-04 | 2023-10-03 | 中国电建集团西北勘测设计研究院有限公司 | 基于catiav6的水利水电工程图的批量标注方法 |
CN117670660A (zh) * | 2024-02-01 | 2024-03-08 | 中国电建集团西北勘测设计研究院有限公司 | 基于catia v6的快速生成剖视图的方法 |
-
2024
- 2024-04-28 CN CN202410517711.XA patent/CN118094669B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180012125A1 (en) * | 2016-07-09 | 2018-01-11 | Doxel, Inc. | Monitoring construction of a structure |
CN112818448A (zh) * | 2021-01-29 | 2021-05-18 | 中国电建集团成都勘测设计研究院有限公司 | 一种基于bim技术的地下厂房岩壁吊车梁设计方法 |
CN116401742A (zh) * | 2023-03-29 | 2023-07-07 | 中国电建集团西北勘测设计研究院有限公司 | 利用catia三维软件建立面板坝趾板参数化模型的方法 |
CN116842915A (zh) * | 2023-07-04 | 2023-10-03 | 中国电建集团西北勘测设计研究院有限公司 | 基于catiav6的水利水电工程图的批量标注方法 |
CN117670660A (zh) * | 2024-02-01 | 2024-03-08 | 中国电建集团西北勘测设计研究院有限公司 | 基于catia v6的快速生成剖视图的方法 |
Non-Patent Citations (3)
Title |
---|
FANG, LY 等: "Design and Implementation of 2D elevation annotation in hydropower project designbased on CATIA/CAA", ADVANCES IN CIVIL AND STRUCTURAL ENGINEERING III, 15 August 2014 (2014-08-15) * |
王陆 等: "基于CATIA Automation API的工程制图二次开发", 人民黄河, 20 May 2011 (2011-05-20) * |
蒲晏 等: "CATIA与Revit模型数据转换研究", 西北水电, 31 August 2023 (2023-08-31) * |
Also Published As
Publication number | Publication date |
---|---|
CN118094669B (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106650059B (zh) | 一种基于Matlab的汽车整车性能仿真与计算方法 | |
US8004539B2 (en) | Systems and methods for improved graphical parameter definition | |
CN103034502B (zh) | 一种在svg界面中嵌入动态实时监测图表的方法 | |
CN106326565B (zh) | 一种三维设计工程图快速转换的方法 | |
CN110929310A (zh) | 一种云端图纸智能生成及编辑方法 | |
CN109739490B (zh) | 一种基于qt图形框架的电气元件模型快速创建方法 | |
CN116842915B (zh) | 基于catia v6的水利水电工程图的批量标注方法 | |
CN102467519B (zh) | 基于地理信息系统的可视化标绘方法及系统 | |
WO2018076946A1 (zh) | 基于组态的物理对象展示方法、系统、计算机程序及存储介质 | |
CN101587504A (zh) | 自定义曲面检测报告系统及方法 | |
CN118094669B (zh) | 基于catia的水利水电工程图高程标注方法 | |
CN112799583B (zh) | 一种基于android平台的点位示意图绘制系统 | |
CN108228998A (zh) | 基于web的电脑出格设计系统 | |
CN113436298B (zh) | 一种自动生成汉字笔顺动画的方法、装置及其相关组件 | |
CN116611165B (zh) | 一种基于catia的设备基座快速标注方法及系统 | |
CN110826185A (zh) | 一种基于cad二次开发轴承零件库的建立方法 | |
JP2007226278A (ja) | 作業工程表示装置及び作業工程表示方法 | |
CN107357960A (zh) | 一种汽轮机叶片汽道型线量具中型线内背弧设计方法及装置 | |
CN109800457B (zh) | 基于MicroStation的标高符号标注方法和装置 | |
CN113147022A (zh) | 一种基于五轴3d打印软件的路径输出方法 | |
CN101916316B (zh) | 标牌刻度值绘制方法 | |
CN104699866A (zh) | 人机界面三维设计系统中的空间表格编辑器的实现方法 | |
CN113220375B (zh) | 基于Allegro软件生成镂空文丝印的方法及系统 | |
CN110084893B (zh) | 一种二三维混合编辑的方法和装置 | |
CN102682148B (zh) | 一种从3d放样中自动生成电缆敷线图的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |