如何旋转工程图的视图
2015-02-09 15:56
399 查看
原文链接:
http://adndevblog.typepad.com/manufacturing/2014/11/rotate-camera-around-any-axis-any-angle.html
大家知道,工程图里,先是生成基础视图(也就是主视图),然后产生投影视图。例如:
DrawingView.Rotation 或 DrawingView.RotateByAngle 只能让视图绕垂直纸面的轴 (也就是视点方向)旋转。如果我们要让视图绕着相机上方向旋转怎么办?
其实,Inventor API提供了丰富的相机功能,可以轻松实现这个流程。我直接贴代码了。注意其中的解释:
运行结果:
推荐论坛阅读:
如何在iLogoic里使用相机
http://forums.autodesk.com/t5/inventor-customization/controlling-the-camera-using-ilogic/m-p/5033496/highlight/true
http://adndevblog.typepad.com/manufacturing/2014/11/rotate-camera-around-any-axis-any-angle.html
大家知道,工程图里,先是生成基础视图(也就是主视图),然后产生投影视图。例如:
DrawingView.Rotation 或 DrawingView.RotateByAngle 只能让视图绕垂直纸面的轴 (也就是视点方向)旋转。如果我们要让视图绕着相机上方向旋转怎么办?
其实,Inventor API提供了丰富的相机功能,可以轻松实现这个流程。我直接贴代码了。注意其中的解释:
Sub RotateBaseView() ' 预先选择好基础视图 Dim baseView As DrawingView Set baseView = ThisApplication.ActiveDocument.SelectSet(1) ' 通过设置相机的UpVector = 相机视点方向来实现旋转 ' 视点方向 = 眼睛到观察点的向量 ' 然后计算新眼睛位置 Dim c As Camera Set c = baseView.Camera Dim oldEye As Point Set oldEye = c.Eye.Copy Dim oldTarget As Point Set oldTarget = c.Target.Copy Dim oldViewDir As Vector Set oldViewDir = oldEye.VectorTo(oldTarget) Dim viewDist As Double viewDist = oldViewDir.Length Dim newTargetToEye As Vector Set newTargetToEye = c.UpVector.AsVector().Copy Call newTargetToEye.ScaleBy(viewDist) Call oldTarget.TranslateBy(newTargetToEye) c.Eye = oldTarget c.UpVector = oldViewDir.AsUnitVector() Call c.ApplyWithoutTransition End Sub
运行结果:
推荐论坛阅读:
如何在iLogoic里使用相机
http://forums.autodesk.com/t5/inventor-customization/controlling-the-camera-using-ilogic/m-p/5033496/highlight/true
相关文章推荐
- SolidEdge 工程图中如何绘制中断视图
- (屏幕适配)支持屏幕旋转,那么如何禁止其中某个视图旋转呢?
- INFO:InstallShield工程中如何通过Registry视图快速实现安装包注册表写入
- Solidworks工程图 如何绘制向视图,辅助视图
- matlab 如何画动态图(绘图与旋转视图)
- [技巧]如何显示旋转文本
- 如何将自己的文件作为资源文件放入VC工程中?如何在运行时,从EXE文件中提取(释放)出这个文件?
- 如何打包JSP工程为war文件[转自sun: Packaging Web Components]
- 如何在 Windows XP 中自定义Windows Explorer 视图
- NeHe_Lesson4 视图变换矩阵的设置(旋转)
- 如何在Tomcat服务器的工程中实现任务计划调度
- WinCE驱动开发 - 如何旋转wince的桌面
- STS的中在WebFldr视图中如何不让Forms文件夹显示出来?
- 如何在Tomcat服务器的工程中实现任务计划调度---listener
- [导入]上传文件时如何保存视图状态?
- 如何使用VSS來管控你工程代碼
- 文档/视图结构中的各个部分是如何联系到一起的(1)
- Ms-SQL中如何用代码导出表、存储过程、视图的结构
- 如何在Web工程中实现任务计划调度
- 如何在视图状态中保存自定义的对象