乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 74|回复: 5

Bricscad:检查多段线内部的点

[复制链接]

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2017-9-30 20:35:56 | 显示全部楼层 |阅读模式
Bricscad是否具有与Autodesks AcMPolygonObj dbx类似的扩展
在我的Autocad实现中,我目前正在使用Gile的解决方案,我希望为Bricscad做类似的事情
如果没有类似的库,Bricscad是否证明是测试闭合多段线内点的好方法?

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2017-10-2 19:05:55 | 显示全部楼层
查看Teigha.Geometry命名空间,您可能需要创建一个具有IsOn方法的临时曲面。
Teigha.Geometry 命名空间具有图形系统使用的所有“基元”几何类,而不是可见数据库实体使用的更高级别几何类。
hth
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2017-10-2 19:53:03 | 显示全部楼层
谢谢米克·我试一试。
有没有一个很好的地方可以阅读有关Bricscad的.NET编程?
无论是金砖七国论坛还是Chapoo开发者支持渠道,似乎都没有多大帮助。沼泽似乎是一个地方(像往常一样)
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2017-10-2 23:47:01 | 显示全部楼层
Bricscad的API与AutoCAD的API相同,因此除了一些小的边缘情况外,对一个有效的API将(应该)适用于另一个。有了这些边缘情况,我发现Bricscad以您期望的方式处理它们,但是当对AutoCAD使用相同的代码时,我不得不调整一些事情。如果你需要为两者构建,一个好的开始是你的“使用”来导入命名空间。为每个命名空间使用缩写,如下所示:// alias' for Bricscad。
#if 金砖。
使用Teigha.Runtime;。
使用Teigha.DatabaseServices;。
使用 Bricscad.ApplicationServices;。
使用 Bricscad.EditorInput;。
使用 Bricscad.Runtime;。
使用_AcRx = Teigha.Runtime;。
使用_AcAp = Bricscad.ApplicationServices;。
使用_AcDb = Teigha.DatabaseServices;。
使用_AcGe = Teigha.Geometry;。
使用_AcEd = Bricscad.EditorInput;。
使用_AcGi = Teigha.GraphicsInterface;。
使用_AcClr = Teigha.Colors;。
使用_AcWnd = Bricscad.Windows;。
使用_App = 金砖加;。

// 别名' for AutoCAD。
#elif ACAD。
使用Autodesk.AutoCAD.Runtime;。
使用Autodesk.AutoCAD.ApplicationServices;。
使用Autodesk.AutoCAD.DatabaseServices;。
使用Autodesk.AutoCAD.Geometry;。
使用Autodesk.AutoCAD.EditorInput;。
使用Autodesk.AutoCAD.GraphicsInterface;。
使用Autodesk.AutoCAD.Colors;。
使用Autodesk.AutoCAD.Windows;。
使用_AcRx = Autodesk.AutoCAD.Runtime;。
使用_AcAp = Autodesk.AutoCAD.ApplicationServices;。
使用_AcDb = Autodesk.AutoCAD.DatabaseServices;。
使用_AcGe = Autodesk.AutoCAD.Geometry;。
使用_AcEd = Autodesk.AutoCAD.EditorInput;。
使用_AcGi = Autodesk.AutoCAD.GraphicsInterface;。
使用_AcClr = Autodesk.AutoCAD.Colors;。
使用_AcWnd = Autodesk.AutoCAD.Windows;。
#endif。
然后,在每个构建配置文件的项目属性中的“构建”->“条件编译符号”中添加“Bricscad”和“ACAD”指令。。
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2017-10-3 03:06:46 | 显示全部楼层
谢谢MickD,我正在使用您和Briscad团队推荐的命名空间和编译符号。有没有办法让C#项目中的所有类都使用相同的语句?
到目前为止,唯一给我带来问题的“边缘”案例是创建我在这篇文章中提到的MPolygons,并创建块预览。
话虽如此,我还没有设法为Briscad编译,我相信一旦它在Briscad中启动并运行,我会遇到问题。
一旦我启动并运行它,下一步将是自动加载它。
看起来最好的方法是在
计算机\HKEY_CURRENT_USER\软件\Bricsys\BricsCAD\V17x64\en_US\Addins
中创建一个条目,正如Kean在这里提出的那样?
再次感谢您的输入MickD,非常感谢。
回复

使用道具 举报

7

主题

60

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2017-10-3 11:24:57 | 显示全部楼层
ATook,一定要看看Kean Walmsley的博客 Through the Interface,以及 adesk 论坛。你会发现.net和acad/bcad需要的大部分东西。
对于加载,我所做的是使用 netload 语句设置 On_doc_load_default.lsp。
这假设你可以做到这一点。如果你正在你无法控制的系统上运行工具,我会提供一个包含.mnl的菜单,这是一个与菜单一起加载的lisp。你可以把净负载代码放在那里。
reg的东西也可以工作,但如果东西没有加载,可能会很棘手。
aslo,你的问题是一条直线中的一个点 - 如果你将该点延伸到一条长垂直线上,并测试它是否与斜坡segs相交,你可以通过该点是否在交叉点之间来判断该点是否在内部。你必须仔细考虑这些情况,比如在滑道上的点,但这就是想法。我做了我自己的线/弧交叉例程,我建议这样做,因为你需要在奇怪的情况下控制结果,比如几乎相交的东西。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 13:05 , Processed in 0.235499 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表