以下是包含我的Intersectwith代码的表单的导入。。。
导入Autodesk。AutoCAD。互操作
导入Autodesk。AutoCAD。互操作。常见的
导入Autodesk。AutoCAD。运行时
导入Autodesk。AutoCAD。应用程序服务
导入Autodesk。AutoCAD。数据库服务
导入Autodesk。AutoCAD。编辑输入
导入Autodesk。AutoCAD。几何学
导入系统。窗户
导入系统。IO
我已经让它工作了。。。
Dim COLInterction()作为双精度
共相交=objACADEntity1。相交(objACADEntity2,AcExtendOption.acExtendBoth)
MsgBox(共线段(0)。ToString)
本练习的最终目标是找到直线和多段线的交点。。。然后将直线的端点更改为这些计算的交点。。。从而模拟自动线延伸/修剪功能。
感谢肖特的专业知识!
是否打算将其作为进程外EXE运行?
如果是这样,那么在询问与AutoCAD相关的问题时,必须预先说明这一点。净问题*。所有受管ARX库都不可用,只有COM对象(类似于VBA和VLisp可用的对象)将通过互操作挂钩公开。
*这将防止许多不相关的建议/示例被引导到您的方向。
如果打算将其作为DLL运行(通过NETLOAD加载),那么请在此处压缩并发布项目,以便我们可以看到整个设置。 早上好,肖特,
目的是将其作为进程外执行程序运行。。。它基本上就像一只被烫伤的猫。快速。
那么这些是“托管ARX”库?Ao:)因此,在进程外EXE中是否不需要nd?
导入Autodesk。AutoCAD。运行时
导入Autodesk。AutoCAD。应用程序服务
导入Autodesk。AutoCAD。数据库服务
导入Autodesk。AutoCAD。编辑输入
导入Autodesk。AutoCAD。几何学
我可以删除这些。。。太棒了反正我也不喜欢他们。
几分钟前我发现我的代码运行得很好。。。它只是将所有的点值集中到一个数组变量中。请参见下文。。。
导入Autodesk。AutoCAD。互操作
导入Autodesk。AutoCAD。互操作。常见的
导入系统。窗户
导入系统。IO
PublicSub bnTEST_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)处理bnTEST。点击
objAcad。ActiveDocument。公用事业GetEntity(objACADEntity1,pickpoint,“选择线:”)
objAcad。ActiveDocument。公用事业GetEntity(objACADEntity2,pickpoint,“选择多段线:”)
Dim COLInterction()作为双精度
共相交=objACADEntity1。相交(objACADEntity2,AcExtendOption.acExtendBoth)
MsgBox(共线段(0)。ToString)
MsgBox(共接口(3)。ToString)
末端接头
我认为0,1和2是第一个交点的值,3,4和5是第二个交点的值。
我在一条弧和一条多段线上检查了这个,它也很好地工作!(我认为,如果直线或圆弧与多段线不相交,整个例程很可能会被放入Try-Catch-End-Try。)
请接受我真诚的道歉,因为我不知道告诉你我正在处理一个进程外的EXE。我在学习!
现在进入本练习的下一部分。。。如何将直线起点重新定义为第一个交点,将直线端点重新定义为第二个交点?
类似于。。。
正面1。起始点(共线段(0)、共线段(1)、共线段(2))
但这当然行不通。。。有什么建议吗?
通过自动化AutoCAD时,使用ManagedARX有很多优点。净额。公开的本机AutoCAD功能数量显著增加。一些使用COM/ActiveX几乎不可能完成的任务现在已经相当可行。
一个缺点是,这些本机库只暴露于进程内代码。
可能有一些方法可以缓解这一缺点;可能是一种部署,它利用可执行文件执行非AutoCAD特定的任务,以及对支持“netload”的DLL进行一些关键调用,以实现所有繁重的AutoCAD交互。我还应该指出,尽管进程外COM现在看起来很快,但随着交互的增加,它可能会造成严重的瓶颈。
在接下来的几个月里,我可能会探索这种情况。
我认为你应该能够做这样的事情(未经测试):
Dim stpt() as Double = New Double(colIntersection(0), colIntersection(1), colIntersection(2))
Dim ndpt() as Double = New Double(colIntersection(3), colIntersection(4), colIntersection(5))
objACADEntity1.StartPoint = stpt
objACADEntity1.EndPoint = ndpt 谢谢肖特,
现在可以处理直线和多段线了。。。我接下来讲圆弧。
“它确实让人困惑于各种可能性……”
致以最诚挚的问候,感谢您的指导和专业知识!
(CADTutor很快成为我的头号“go to”论坛。)
页:
1
[2]