[MSCE C#]视图范围应该如何设置?

我在winform上做了一个视口,但是在视口中显示的图形不完整,而且我是前视图,现在得到的是右视图,是得到的矩阵有问题吗?如图: ,只显示了下半身。

我的代码如下

DMatrix3d dma;
StandardView stand;

ViewFlags myViewFlags = ViewInformation.GetDefaultFlags();
string aaa = ViewInformation.GetStandardViewName(StandardView.Front);
ViewInformation.GetStandardViewByName(out dma, out stand, aaa);

DRange3d elemRng;
m_elem.CalcElementRange(out elemRng);
DPoint3d myOrg = elemRng.Low;
DVector3d myRng = DPoint3d.Subtract(elemRng.High, elemRng.Low);
Rectangle myRect = new Rectangle(Location, Size);

  DisplayElemHandle(BytesToIntptr(m_elem.ElementHandle), myViewFlags, myRect, dma, myOrg, myRng);

Parents Reply
  • 可能我上个帖子没有说清楚。我的意思是,无论在代码中还是在Mstn软件中都要将Camera关闭(OFF),因为一旦相机打开,范围就不是一个立方体而是一个棱柱体了,情况会变得很复杂。

    在将相机关闭的前提下,您可以先测试一下顶视图是否能正确保证范围。另外还可以更换其他的一个元素(比如简单的一个圆)来测试。曾经遇到过元素范围不正确的情况出现过,你也可以在代码中将你取到的元素范围值打印出来,然后手工绘制该范围到模型中看是否和你的图形的范围是匹配的。

    还有一个技巧能检验每个元素的范围值是否正确,那就是键入SET RANGE命令并回车,更新视图后则所有元素的范围都会显示出来。要关闭这个范围显示,可再次执行SET RANGE并更新视图。



Children