如何画点?
我正在使用AutoCAD 2008和VS.NET2003。试图编写我的第一个ObjectARX应用程序。我可以创建一条线,但我不知道如何创建一个3d点。Autodesk.AutoCad.DatabaseServices中似乎没有类似的东西有人能为我解决这个不可能的难题吗?
**** Hidden Message ***** AcGePoint3d是您想要的类(acge17.lib),它在其中一个构造函数中需要3个双精度
例如。
AcGePoint3d pnt=new AcGePoint3d(23,34,0);
我不确定您将如何使用arx2008使用VS2003,或者至少在它无法工作之前您将走多远(这是一个MFC的东西)。
哦,我刚刚在您的帖子中注意到这一点->Autodesk.AutoCad.DatabaseServices
您在C#中这样做吗?
如果是这种情况,你需要Autodesk.AutoCad.Geometry或类似的东西并使用Point3d类,启动对象浏览器,看看哪些东西住在哪里,这可能是找到文档之外的东西的最简单方法。
另一件事,数据库只保存对象和实体,对象是没有图形表示的字典,而线和圆(实体)有。像点甚至几何线(在几何类中)这样的东西本身不是数据库实体,而是创建和修改实体的助手,arx有一个非常好的几何库,所以你最好尽早熟悉
hth。
是的C#,忘记提到它了...
我在Geometry中找到了一些Point,但我无法使用AppendEntity添加它,因为它想要数据库服务类声明的类型的东西...否则我不知道如何绘制它?为什么通过添加到数据库来绘制线条(看到了代码示例-但你说它们不是??)而点是以其他方式绘制的?
真的很困惑...
编辑:哦,我错过了..."AcGePoint3d pnt=new AcGePoint3d(23,34,0);" <- 这会在autocad中给我画一个点吗?我明天早上第一件事就测试它 是的,我一直在寻找DBPoint,我不知道我是如何错过的。
谢谢大家,但我仍然卡在下面的行:
BlockTableRecord btr = (BlockTableRecord)tr。GetObject(bt, OpenMode.ForWrite);
我找到了使用tr.getobject和tm.getobject(事务或管理器)的示例。当我在AutoCAD(2008)中运行它时,我得到一个令人讨厌的错误,说:
字段未找到:
'Autodesk.AutoCAD.DatabaseServices.BlockTableRecord.ModelSpace',
但我确实在VS中看到了ModelSpace。我在谷歌上搜索了一下,发现一些人在Autocad的光盘组中抱怨它,但没有解决方案。
附言我还在这台PC上安装了AutoCAD 2006,但我只为此测试应用程序使用2008。
我做错了什么? 明白了!我发现一些指向Autocad 2006文件夹的引用路径(不知道为什么?...一旦我把它改成2008年,一切都很完美。
页:
[1]