DrawingViews.AddBaseView( Model As Document, Position As Point2d, Scale As Double, ViewOrientation As ViewOrientationTypeEnum, ViewStyle As DrawingViewStyleEnum, [ModelViewName] As String, [ArbitraryCamera] As Variant, [AdditionalOptions] As Variant )
使用AddBaseView方法创建特定角度视图时,貌似需要事先设定相机视图 [ArbitraryCamera]。
或许你也可以创建视图后再对其进行旋转操作,参考如下代码
Dim oActiveSheet As Sheet = ThisApplication.ActiveDocument.Activesheet
Dim oBaseView As DrawingView = oActiveSheet.DrawingViews.Item(1)
oBaseView.RotateByAngle(90*(PI / 180), True) ' 顺时针旋转90度 ,True = 顺时针
If my post answers your question, please click the "Accept as Solution" button. This helps everyone find answers more quickly!
如果我的回帖解决了您的问题,请点击 "接受为解决方案" 按钮. 这可以帮助其他人更快的找到解决方案!
王 承之
Autodesk AGN [Inventor 俱乐部] Leader
Inventor Club | Bilibili
您好,创建视图后再进行旋转,视图的名称需要二次调整,我所投影的部件包含两部分一部分为主体,一部分为部件。主体部分的BOM表结构设置为参考。导致在旋转后视图的名称会偏差很多。
并且因为视图边界的影响,主体只会展示一点,实际旋转得到的视图时这样的。
。
事先设定相机视图 [ArbitraryCamera]这个我看了一下API,但是没搞懂Camera是怎么实现的。您这边能给一下具体的创建思路吗?
方便上传案例文件吗?
If my post answers your question, please click the "Accept as Solution" button. This helps everyone find answers more quickly!
如果我的回帖解决了您的问题,请点击 "接受为解决方案" 按钮. 这可以帮助其他人更快的找到解决方案!
王 承之
Autodesk AGN [Inventor 俱乐部] Leader
Inventor Club | Bilibili
或者你参考下如下规则中 oCamera.UpVector的设置
Dim oDrawDoc As DrawingDocument = ThisApplication.ActiveDocument Dim oSheet As Sheet = oDrawDoc.ActiveSheet Dim oTG As TransientGeometry = ThisApplication.TransientGeometry Dim oTransientObjects As TransientObjects = ThisApplication.TransientObjects Dim oBaseViewOptions As NameValueMap = oTransientObjects.CreateNameValueMap Dim oCamera As Camera = oTransientObjects.CreateCamera oCamera.UpVector = oTG.CreateUnitVector(1, 0, 0) ' 向上方向 Dim strFullDocumentName As String = ThisApplication.FileManager.GetFullDocumentName("G:\AIP\xxx.ipt") Dim oModel As Document = ThisApplication.Documents.Open(strFullDocumentName, False) Dim oPoint As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(20, 15) Dim oBaseView As DrawingView oBaseView = oSheet.DrawingViews.AddBaseView(oModel, oPoint, 1, _ kArbitraryViewOrientation, kHiddenLineRemovedDrawingViewStyle, _ , oCamera , oBaseViewOptions)
If my post answers your question, please click the "Accept as Solution" button. This helps everyone find answers more quickly!
如果我的回帖解决了您的问题,请点击 "接受为解决方案" 按钮. 这可以帮助其他人更快的找到解决方案!
王 承之
Autodesk AGN [Inventor 俱乐部] Leader
Inventor Club | Bilibili
// 创建瞬时几何对象和瞬时对象的实例,用于后续操作
TransientGeometry oTG = application.TransientGeometry; // 创建瞬时几何对象的实例
TransientObjects oTransientObjects = application.TransientObjects; // 创建瞬时对象的实例
// 创建一个名称-值映射对象,用于传递基视图的相关选项
NameValueMap oBaseViewOptions = oTransientObjects.CreateNameValueMap(); // 创建名称-值映射,用于存储基视图选项
// 创建一个相机对象,用于控制视图的朝向
Inventor.Camera oCamera = oTransientObjects.CreateCamera(); // 创建相机对象
// 设置相机的“向上”向量,定义相机的朝上方向
oCamera.UpVector = oTG.CreateUnitVector(1, 0, 0); // 设置相机的向上方向为(1, 0, 0),即沿着X轴正方向
drawingView = drawingViews.AddBaseView((_Document)assemblyAllDoc, centerPoint, 0.2, ViewOrientationTypeEnum.kArbitraryViewOrientation, DrawingViewStyleEnum.kHiddenLineDrawingViewStyle, viewNameShow, oCamera, oBaseViewOptions);
成功了 感谢