IvanShubin 发表于 2022-7-6 21:54:26

如何接收摄像机目标o

我使用Autodesk在C#上创建应用程序。AutoCAD。与AutoCad交互。我尝试接收摄像机方向:
 
var _app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
var viewport = _app.ActiveDocument.ActiveViewport;
var dir = viewport.Direction;
 
但在模型旋转之后,我总是收到相同的方向值。如果我使用以下代码:
 
var _app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
var viewport = _app.ActiveDocument.ActiveViewport;
var dir = viewport.Direction;
 
并激活布局上的视口-旋转模型后,我收到正确方向的差异。
 
如何在模型视口上接收正确的相机方向?

SEANT 发表于 2022-7-6 22:28:11

 
我在AutoCAD ActiveX(通过Interop使用的API)文档中发现了这一点:
 
除非视口处于活动状态,否则无法执行编辑或视图更改。要激活视口,请在文档对象上使用ActiveViewport属性。
 
更改完成后,必须将视口重置为活动视口,以显示更改。要重置活动视口,只需使用更新的视口对象再次调用ActiveViewport属性。

IvanShubin 发表于 2022-7-6 23:04:32

谢谢你,肖特,
 
但我不想更新视口,我想接收方向的实际值。每次,我都会创建视口的新实例。但在AutoCad中对视口方向进行手动更改后,我总是会收到相同的方向值。如果我重新启动AutoCad-我会收到方向的更新值。
 
还有什么想法吗?
 
有人能检查以下代码吗
var _app = (AcadApplication)Marshal.GetActiveObject("AutoCAD.Application");
var viewport = _app.ActiveDocument.ActiveViewport;
var dir = viewport.Direction;
 
也许我的AutoCAD有问题。
页: [1]
查看完整版本: 如何接收摄像机目标o