激光切割编程连通性检查问题分析.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
? ? 激光切割编程连通性检查问题分析 ? ? 张向良 摘 要:激光切割程序需要将二维图形进行一系列处理后导入到专用的软件中进行编制,图形中的外缘、终孔、视口等部位的轮廓必须是封闭的,才能被激光程序识別。然而,大多数尺寸大、曲度大、形状复杂的零件,其二维图通常都含有许多肉眼难以发现的不连通位置。这些位置肉眼难以发现,而此前业内使用的一种图形处理程序SYLBDxfProcess实用性较差,性能与实际需求相差甚远。文章将探讨在AutoCAD工作环境下,激光切割图形连通性的检查方法,以期为该工作提供高效的解决方案。 Key:激光切割;图形处理;连通性;封闭性;ObjectARX;二次开发 :TG485 文献标志码:A :2095-2945(2017)33-0079-02 引言 进行激光切割,需要将二维图形导入到专用软件中生成切割程序。对于零件轮廓、通孔、视口等区域需要保证其图形在激光编程程序中是连通(轮廓封闭)的,否则切割机和相关软件无法识别。然而,大多数壁板、框等尺寸大、曲度大、形状复杂的零件,其二维图形中的倾斜边、圆角、曲线结构等位置的图形质量通常都不好,含有许多肉眼难以发现的不连通位置,如断开、交叠、多余线条和端头错位等。这些图形缺陷肉眼难以发现,人工处理几乎不可能;而此前业内使用的SYLBDxfProcess每次只能检查一个链,而且运行极慢,检查结果也不可靠,对解决问题助益甚微。本文将探讨激光切割图形连通性问题及检查算法,以及如何在基于ObjectARX(VC)开发的程序中实现。该方法可以一键式地找出上述图形缺陷的精确位置,将为设计人员提供极大方便,同时也极大保证了工作质量。 1 连通性检查问题描述 用于编制激光切割程序的二维图形中所有的轮廓,包括外缘、视口、各种孔等,必须是连通的才能被识别。在投影图形质量不佳的情况下,很多肉眼看起来连通的轮廓实际上被系统认为是开放的。放大图形后可知,这是由于线与线的连接处存在着尺度极小的断开、重叠、毛刺等。如图1。 2 算法分析 图元的拓扑关系判定需要考虑一个因素——公差。假设约定的公差值为geTol(长度变量单位默认为mm,下同),则两点距离小于geTol时,认为两点重合。这个值应根据所选用的设备、设备的配套软件设置和使用的CAD软件设置来确定。 在激光切割图形中,允许存在的图元包括且限于直线、圆弧和圆。由于圆自封闭,不需要判断连通性,故只需检查直线与圆弧(以下简称曲线)。当曲线pCurve1的某一端点与曲线pCurve2的某一端点重合时,称两曲线邻接。 在一组曲线中,如果每条曲线都与其他至少1条曲线邻接,称这组曲线为一个链;如果一个链中每条曲线的每个端点最多只与其他一条曲线邻接,则称这个链为一个单链。如果一个单链首尾相接,则称该链连通。激光切割图形中的轮廓最终应达到这种状态(由于激光切割图形的特性,此处不考虑诸如8字形之类的曲线相交情形)。于是可根据以上条件设计出检查连通性的算法:(1)获得所有图形元素,分解其中的组合元素。(2)将所有元素分成若干个链。(3)对于每个链,获取一个元素,递归检查与之邻接的元素,以确定是否为连通链。(4)重复2、3步骤,检查所有链。(5)在用户界面突出显示连通的链。 3 算法的实现 考虑到业内普遍的工作方式,本文选择在AutoCAD平台上实现上述算法。由于基于VC++的ObjectARX程序运行效率最高,拥有与AutoCAD自身几乎相同的编程接口与控制能力[1],故使用ObjectARX(VC)2007开发,编译环境是Visual Studio 2005。与AutoCAD自身的功能一样,该连通性检查功能通过命令调用。如图2。 部分代码如下: static void NITemplateAssistAutomaticChain(void) { std::list chainList; std::list::iterator iter; AcDbObjectIdArray entIds = GlobalFunction::GetAllEntityIds(); if (entIds.isEmpty()) { acutPrintf(_T(\nTheres no entity in this drawing!)); return; } // Divide entities into several chains TopologicalFunction::DivideIntoGroups(entIds,chainList,1); // For each chain, check its closure and mark the ents int count = 0; for (iter=chainList.begin();iter!=chainList.end

文档评论(0)

科技之佳文库 + 关注
官方认证
文档贡献者

科技赋能未来,创新改变生活!

版权声明书
用户编号:8131073104000017
认证主体重庆有云时代科技有限公司
IP属地浙江
统一社会信用代码/组织机构代码
9150010832176858X3

1亿VIP精品文档

相关文档