Real_King 发表于 2015-4-26 17:19:43

面域质心:Auto...T开发基础与.第二版2.8面域P/Invoke技术GetCentroid一调用CAD就关闭

本帖最后由 Real_King 于 2015-4-26 17:27 编辑

AutoCADVBA&VB.NET开发基础与.第二版2.8面域P/Invoke技术GetCentroid的问题:
06 CAD 中,调用DotNetARX中的GetCentroid()获取质心,可一调用,CAD就自动关闭,到底是什么原因?难道是06cad版本问题?
另外
这一句是否动态引用acdb17.dll?
请大家指教,acdb17.dll 在哪个文件夹,如果不能通过上面的代码引用,我想直接在VS里添加引用,谢谢大家~


雪山飞狐_lzh 发表于 2015-4-26 18:00:28

在autocad安装目录下 17对应2008?在外面 忘了 你要引用对应版本的

Real_King 发表于 2015-4-26 18:17:02

本帖最后由 Real_King 于 2015-4-26 18:23 编辑

雪山飞狐_lzh 发表于 2015-4-26 18:00 static/image/common/back.gif
在autocad安装目录下 17对应2008?在外面 忘了 你要引用对应版本的
飞狐大师,愿闻其详~我是06版cad的,貌似应该是16,
C:\Program Files (x86)\Common Files\Autodesk Shared\acdb16.dll
但是有问题

Real_King 发表于 2015-4-26 18:31:58

雪山飞狐_lzh 发表于 2015-4-26 18:00 static/image/common/back.gif
在autocad安装目录下 17对应2008?在外面 忘了 你要引用对应版本的

1、从开始菜单中打开VS2010程序文件夹中Visual Studio Tools下的Visual Studio命令提示。
2、将目录切换到Autocad安装目录
3、运行dumpbin.exe/exports dllName 命令即可查看dllName这个文件中定义的C++函数重整名称。

第二步切换是怎么回事呢?请飞狐老师指点

雪山飞狐_lzh 发表于 2015-4-26 18:40:04

直接运行depend.exe试试 没有就百度

雪山飞狐_lzh 发表于 2015-4-26 19:41:47

http://forums.autodesk.com/t5/net/region-centroid/td-p/3193544
看看这里 有反射com对象的方法

Real_King 发表于 2015-4-27 09:47:58

雪山飞狐_lzh 发表于 2015-4-26 19:41 static/image/common/back.gif
http://forums.autodesk.com/t5/net/region-centroid/td-p/3193544
看看这里 有反射com对象的方法

Point3d centroid;
using (Solid3d solid = new Solid3d())
{
    solid.Extrude(region, 2.0, 0.0);
    Point3d solidCentroid = solid.MassProperties.Centroid;
    centroid = solidCentroid.TransformBy(Matrix3d.Displacement(region.Normal.Negate()));
}
完美测试,万分感谢!
页: [1]
查看完整版本: 面域质心:Auto...T开发基础与.第二版2.8面域P/Invoke技术GetCentroid一调用CAD就关闭