Inventor创建基础视图时旋转视图

Inventor创建基础视图时旋转视图

ss13953642009
Advocate Advocate
100 次查看
6 条回复
1 条消息(共 7 条)

Inventor创建基础视图时旋转视图

ss13953642009
Advocate
Advocate

使用Inventor的DrawingViews.AddBaseView方法创建部件的基础视图时,只能创建主视图,左视图,俯视图这些。没有找到主视图向左旋转,或者向右旋转一定角度创建的视图。如何创建主视图向右旋转90°的基础视图D22D15A5-DEE6-42ef-98A5-1EADE1918F02.png

0 个赞
已接受的解答 (2)
101 次查看
6 条回复
回复 (6)
2 条消息(共 7 条)

王承之pmhker
Advisor
Advisor

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


AGN L    EESignature

0 个赞
3 条消息(共 7 条)

ss13953642009
Advocate
Advocate

您好,创建视图后再进行旋转,视图的名称需要二次调整,我所投影的部件包含两部分一部分为主体,一部分为部件。主体部分的BOM表结构设置为参考。导致在旋转后视图的名称会偏差很多。lQLPJwVq0-wMBtnNAq7NA3Swr2GhKWnCAHwIk-jZ6WWZAA_884_686.pnglQLPKd3vz7WwRtnNAoDNAp6wpslh5SM43c0Ik-jZ685lAA_670_640.png

并且因为视图边界的影响,主体只会展示一点,实际旋转得到的视图时这样的。

lQl.png

事先设定相机视图 [ArbitraryCamera]这个我看了一下API,但是没搞懂Camera是怎么实现的。您这边能给一下具体的创建思路吗?

0 个赞
4 条消息(共 7 条)

王承之pmhker
Advisor
Advisor

方便上传案例文件吗?


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


AGN L    EESignature

0 个赞
5 条消息(共 7 条)

王承之pmhker
Advisor
Advisor
已接受的解答

或者你参考下如下规则中 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


AGN L    EESignature

6 条消息(共 7 条)

ss13953642009
Advocate
Advocate

您好这是案例文件

0 个赞
7 条消息(共 7 条)

ss13953642009
Advocate
Advocate
已接受的解答

// 创建瞬时几何对象和瞬时对象的实例,用于后续操作
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);

成功了 感谢