第六章 工程图设计Word下载.docx
- 文档编号:21329639
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:26
- 大小:145.83KB
第六章 工程图设计Word下载.docx
《第六章 工程图设计Word下载.docx》由会员分享,可在线阅读,更多相关《第六章 工程图设计Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
注意这里的标准是针对oDrawingDoc设置的,即整个文档使用同一个标准。
标准设置可以为以下值:
·
catANSI:
ANSI标准
catISO:
ISO标准
catJIS:
JIS标准
(2)PaperSize
设置页面大小。
页面大小可以为以下值:
catPaperLetter:
8.5X11”大小;
8.5X14”大小;
catPaperA0至catPaperA4:
ISO标准大小;
catPaperA至catPaperF:
ANSI标准大小;
catPaperUser:
自定义大小。
(3)Scale
设置图形比例。
注意代码写法,无论是在线帮助或是VB的对象浏览器看到的这个属性都应该是Scale,但如果写成oSheet.Scale=0.5则根本无法进行。
(4)Orientation
设置页面放置方向。
页面放置方向可以为以下值:
catPaperProtrait:
竖向;
catPaperLandscape:
横向;
catPaperBestFit:
打印时自动选择方向以适合图形。
尽管可以设置投影方法,但这可能会造成与使用的标准不符。
6.1.3视图管理
DrawingView对象描述了页面对象中的视图对象,DrawingView对象通过DrawingViews集合对象来进行添加、删除等操作。
可以用如下代码创建一个视图对象:
SetoSheet=MyDrawingDoc.Sheets.ActiveSheet
DimoViewAsDrawingView
SetoView=oSheet.Views.Add(“FrontView”)
DrawingView对象在页面总以如图所示的方向定位。
页面
视图
Angle
Y
视图坐标系
X
页面坐标系
其中X,Y和Angle属性用于DrawingView对象在页面中定位。
如下代码将视图移动到(550,425),并将它顺时针旋转45°
:
PI=3.1415926535
oView,x=550
oView,y=425
oView,angle=-PI/4
一张工程图一般有一个主视图,若干个投影视图和剖切视图。
CATIA中视图有很多种,视图的类型要由DrawingViewGenerativeBehavior来定义。
6.1.3.1DrawingViewGenerativeBehavior
DrawingViewGenerativeBehavior对象提供了对视图操作的许多额外属性。
一般可以用如下代码获得DrawingViewGenerativeBehavior对象:
DimoViewGBAsDrawingViewGenerativeBehavior
SetoViewGB=oView.GenerativeBehavior
一般视图是从零件文档生成的,DrawingViewGenerativeBehavior对象的Document属性使得视图和零件文档相关联,例如要和名为Bolt的文档关联应该这么写:
DimPartToDrawAsPartDocument
SetPartToDraw=CATIA.Documents.Item(“Bolt”)
oViewGB.Document=PartToDraw
和零件文档关联后,就可以定义视图的投影平面了。
DrawingViewGenerativeBehavior对象提供了DefineXXXView方法以定义视图类型。
其中XXX代表视图的类型,部分视图类型和创建方法如下所示:
视图类型需要父视图需要参考视图创建方法
主视图否否DefineFrontView
等轴测否否DefineIsometricView
投影视图是是DefineProjectionView
剖切视图是是DefineSectionView
细节视图是否DefineCircularDetailView
辅助视图是是DefineAuxiliaryView
(1)DefineFrontView
功能:
定义视图为主视图,并确定投影方向。
语法:
DefineFrontView(doubleiX1,
doubleiY1,
doubleiZ1,
doubleiX2,
doubleiY2,
doubleiZ2)
参数:
iX1、iY1、iZ1:
水平坐标分量在三维坐标系系统中飞分量;
iX2、iY2、iZ2:
垂直坐标分量在三维坐标系系统中飞分量;
示例:
如下代码定义当前视图为主视图,并把投影方向设为YX平面:
oViewGB.DefineFrontView0,1,0,0,0,1
(2)DefineIsometricView
定义视图为等轴测视图。
DefineIsometricView(doubleiX1,
水平坐标分量在三维坐标系统中的分量;
垂直坐标分量在三维坐标系统中的分量。
如下代码把当前视图定义为等轴测视图,并把投影平面设为绕Z轴顺时针旋转45°
的平面:
oViewGB.DefineIsometricView-0.707,0.707,0,0,0,1.
(3)DefineProjectionView
定义视图为投影视图。
DefineProjectionView(CATIAGenerativeViewBehavioriParentViewGenerativeBehavior,
CatProjViewTypeiType)
iParentViewGenerativeBehavior:
父视图的DrawingViewGenerativeBehavior对象;
iType:
投影视图类型。
其中投影视图类型可以为以下值:
catRightView:
右视图;
catLeftView:
左视图;
catTopView:
顶视图;
catBottomView:
底视图;
catRearView:
后视图。
以下代码把视图定义为主视图的右视图:
oRightViewGB.DefineProjectionViewoFrontViewGB,catRightView
(4)DefineSectionView
定义剖切视图。
DefineSectionView(CATSafeArrayVariantiProfile,
CATBSTRiSectionType,
CATBSTRiProfileType,
ShortiSideToDraw,
CATIAGenerativeViewBehavioriParentViewGenerativeBehavior)
iProfile:
剖切线通过点的数组,长度为2n;
iSectionType:
截面的类型,可为SectionCut或SectionView;
iProfileType:
剖切线类型,可为Offset或Aligned;
iSideToDraw:
要投影截面的位置,0为顺时针方向,1为逆时针方向,如图所示;
父视图的DrawingViewGenerativeBehavior对象。
截面视图看到的
将是这个方向1-逆时针
截面线起点截面线终点
0-顺时针截面视图看到的
将是这个方向
如下代码将当前视图定义为主视图的剖切视图,并设定剖切截面为(10,200)-(100,200)-(100,50)-(300,50)
DimSectionProfile
ReDimSectionProfile(7)
SectionProfile(0)=10.
SectionProfile
(1)=200.
SectionProfile
(2)=100.
SectionProfile(3)=200.
SectionProfile(4)=100.
SectionProfile(5)=50.
SectionProfile(6)=300.
SectionProfile(7)=50.
oSectionViewGB.DefineSectionViewSectionProfile.SectionView,Offset,0,oFrontViewGB
(5)DefineCircularDetailView
定义圆形的细节视图。
DefineCircularDetailView(doubleiXCenter,
doubleiYCenter,
doubleiRadius,
CATIAGenerativeViewBehavioriParentViewGenerativeBehavior)
iXCenter,iYCenter:
圆心坐标;
iRadius:
圆半径;
如下代码定义视图为主视图的圆形细节视图,圆心位置为(100,150),半径为75mm。
oDetailViewGB.DefineCircularDetailView100,150,75,oFrontViewGB
(6)DefineAuxiliaryView
定义视图为辅助视图。
DefineAuxiliaryView(doubleiXStartPoint,
doubleiYStartPoint,
doubleiXEndPoint,
doubleiYEndPoint,
shortiSideToDraw,
iXStartPoint,iYStartPoint:
迹线开始点坐标;
iXEndPoint,iYEndPoint:
迹线终止点坐标;
同DefineCircularDetailView;
如下代码定义当前视图为主视图的辅助视图,起点为(100,50),终点为(500,250):
oAuxiliaryViewGB.DefineAuxiliaryView100,50,500,250,1,oFrontViewGB
6.1.3.2DrawingViewGenerativeLinks
前面提到主视图是和零件文档关联的,并可以用Document属性进行关联操作。
对与投影视图来说,它和零件文档的关联往往是一致的,但投影视图并不会自动继承这种关联关系,要通过DrawingViewGenerativeLinks对象来进行关联。
一般可以通过如下代码获取DrawingViewGenerativeLinks对象:
DimoFrontViewLinksAsDrawingViewGenerativeLinks
SetoFrontViewLinks=oFrontView.GenerativeLinks
获得主视图的DrawingViewGenerativeLinks对象后就可以把主视图和零件的关联关系复制给其他投影视图了。
如下代码把主视图和零件的关联关系复制给左视图:
DimoLeftViewLinksAsDrawingViewGenerativeLinks
SetoLeftViewLinks=oLeftView.GenerativeLinks
oFrontViewLinks.CopyLinksTooLeftViewLinks
6.1.3.3对齐视图
一般情况下,投影视图应该和主视图对齐并关联这种对齐关系,这样当主视图移动时投影视图也会跟着移动,AlignedWithReferenceView和UnAlignedWithReferenceView方法可以使当前视图和参考视图对齐或取消对齐。
如下代码将左视图与主视图对齐:
oLeftView.ReferenceView=oFrontView
oLeftView.AlignedWithReferenceView
6.1.4几何图形创建和编辑
除了从零件生成工程图外,工程图也可以手工创建几何图形。
工程图所使用的元素创建方法和草绘特征所使用的是一样的。
它们同样通过Factory2D构造类来创建几何图形。
6.1.4.1Factory2D
Factory2D对象用于在视图中创建几何图形,可以用如下代码获取Factory2D对象:
SetmyFactory2D=oView.Factory2D
和草绘工具里的Factory2D不同,工程图里的Factory2D不需要使用OpenEdition方法,完成编辑后也不需要使用CloseEdition方法。
如下代码在当前视图中创建一个圆:
DimoCircleAsCircle2D
SetoCircle=Factory2D.CreateClosedCircle(100,200,150)
6.1.4.2GeometricElements
GeometricElements对象用于遍历视图中的几何元素,获取几何元素后就可以对它进行修改。
可以用如下代码获取GeometricElements对象:
DimoGeometryAsGeometricElements
SetoGeometry=myView.GeometricElements
GeometricElements是一个集合对象,可以用Item方法遍历其中的元素,集合中包含了当前视图中所有的几何元素。
6.1.5文字创建和编辑
和零件文档不同的是,说明文字在工程图中也是非常重要的。
CATIADrawingTexts对象和CATIADrawingText对象
CATIADrawingTexts对象是一个集合对象,其中包含了视图中所有的CATIADrawingText对象。
用CATIADrawingTexts对象可以创建和删除特定的文字对象。
可以用以下代码获取CATIADrawingTexts对象:
DimTextCollectionAsDrawingTexts
SetTextCollection=oView.Texts
如下代码在视图的(100,200)位置创建一段内容为“图号”的文字:
DimMyTextAsDrawingText
SetMyText=MyView.Texts.Add(“图号”,100,200)
如下代码把名为“CheckBy”的文字的内容改为“张三”:
SetMyText=MyView.Texts.GetItem(“CheckBy”)
MyText.Text=“张三”
6.1.6关于图框
工程图中的图像创建功能很强大,但并不适合用于创建图框。
对与一个企业来说,必然有一套标准的图框。
要把一个复杂的图框转换为绘图程序要耗费大量的时间和精力,有些图框还带有企业标志的复杂图形,用程序来创建是十分不明智的。
程序一旦创建后进行修改维护十分困难。
插入图框最简单的方法是使用文件菜单只的页面设置命令,在对话框中选择插入背景视图即可,如图所示。
但该方法并不能用编程实现,因此本章的第二节使用了另一种插入图框的快速方法。
即使用复制粘贴命令。
如果由于某种情况,需要使用脚本创建图框,CATIA安装目录中有现成的几个例子可供参考:
DassaultSystemes\B14\intel_a\VBScript\FrameTitleBlock.
6.2图框编辑实例
本节讲解了一个生成视图,插入图框并编辑文本的例子。
6.2.1本实例所实现的功能
本实例能自动为零件创建工程图,并根据需要添加和删除视图。
本例还用复制、粘贴的方法方便灵活地加入背景图框,且用户可以定制修改其中的说明文字。
本例使用了Windows常用的对话框模式,即有确定、取消和应用三个按钮。
非常清楚地说明了对象创建和修改所用的不同方法。
程序运行界面如图所示。
当然,本例只是一个简单的示例,读者可以根据需要丰富和加强本程序的功能。
该实例在“\光盘\06-工程制图\02-编辑图框”目录中。
6.2.2总体思路
如果要编程实现一个功能,只要CATIA提供了这个接口,问题就变得很简单。
一段程序最难的地方不在于功能如何实现,而在于程序的运行逻辑。
一段程序要适用于各种不同的情况,用户输入或选中错误时程序要足够强大,这样的程序才能应用在实际的生产当中。
本例最大的特色在于用户可以多次修改所需要创建的视图,用户只要通过应用按钮即可实现修改。
当然,用户每次单击应用时可以新建一个新的文档,应用新的用户设置来运行程序,但问题是创建一张工程图需要很多步骤,这样的创建方法非常慢,非常消耗系统资源。
本例在运行时先判断程序之前的运行情况,再分别用不同的方法运行程序以提高效率。
由于用户可以多次修改视图的生成与否,因此程序要使用一个复杂的逻辑来决定程序的操作,视图存在与否,用户的选择和程序操作的关系如下表所示。
选择
视图
是
否
未创建
创建
无
已创建
删除
6.2.3程序结构
本程序运行时有两种模式,即创建模式和修改模式。
用户单击确定或应用按钮时,程序先判断程序是否已经新建了工程图,若没有新建工程图则进入创建模式,否则程序进入修改模式,这两种模式的基本结构如下所示:
创建模式:
1.根据用户选择设置程序运行参数;
2.创建新的工程图,并添加页面,进行页面设置;
3.生成视图;
4.插入图框;
5.修改图框标题等信息。
修改模式:
2.添加/删除视图;
3.修改图框标题等信息。
6.2.4界面调用
6.2.4.1确定按钮
PrivateSubcmdCancel_Click()
UnloadMe
EndSub
'
确定按钮
PrivateSubcmdComfirm_Click()
'
若图形已生成则修改图形
IfbDrawingHasGenedThen
InitVars
ModifyViews
ModifyText
图形未生成,检查零件文件是否已选
ElseIfbFileSelectedThen
GenNewSheet
零件文件未选择,提示用户
Else
MsgBox"
请选择零件文档!
"
vbCritical
EndIf
6.2.4.2选择文件按钮
PrivateSubcmdFile_Click()
FileDiag.FileName="
FileDiag.ShowOpen
IfFileDiag.FileName<
>
"
Then
txtFile.Text=FileDiag.FileName
bFileSelected=True
6.2.5功能模块
6.2.5.1变量定义
要出工程图的模型文件
DimModelFileAsString
视图对象变量
DimoFrontViewAsDrawingView
DimoLeftViewAsDrawingView
DimoTopViewAsDrawingView
是否生成左视图与顶视图的标记
DimbLeftViewAsBoolean,bTopViewAsBoolean
文本变量:
标题检查人检查日期审核审核日期
DimTitle
DimCheckBy,CheckDate
DimAPPR,APPRDate
图形已生成的标记
PublicbDrawingHasGenedAsBoolean
文件已选择的标记
PublicbFileSelectedAsBoolean
6.2.5.2设置参数
SubInitVars()
Wit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 工程图设计 第六 工程图 设计