当前位置: 首页 > wzjs >正文

成都做网站开发的公司河南百度推广电话

成都做网站开发的公司,河南百度推广电话,桂城网站设计,wordpress手机认证登录页面模板今天这篇文章话题来源于群里的聊天,在讨论有些插件功能的开发原理。 如标题,今天讲的是如何查找零件文件名不一样,但实际可能是同一个东西的办法。 - 题外话 熟悉Solidworks的人都知道,Solidworks有一个比较零件或者特征不同点的…

在这里插入图片描述
在这里插入图片描述

今天这篇文章话题来源于群里的聊天,在讨论有些插件功能的开发原理。

如标题,今天讲的是如何查找零件文件名不一样,但实际可能是同一个东西的办法。

- 题外话
熟悉Solidworks的人都知道,Solidworks有一个比较零件或者特征不同点的工具(专业版本才能用,免费版当然不限制)。
在这里插入图片描述
而且还有Api
在这里插入图片描述
具体的我之前的文件间讲过:https://blog.csdn.net/zengqh0314/article/details/106012670

当然今天的分析功能和上面的没啥关系哈,今天是通过代码的方式来分析类型于下图的装配体中,零件实体相同的不同名零件,这样可以进一步判断是否可以进行替换,减少非标物料的实际应用。
下图里的三个圆是同一零件生衍生出来的在这里插入图片描述
从肉眼看是一样的,但当零件很多的时候。或者说是借用别人的装配体的时候,相似的零件不能判断是否一样。
当前有人会想着重量,体积,重心等一样也可以判断是一样的。我之前也这么干过,但是不太准确。大概是没啥问题。

解题思路:
遍历所有零件及零件内的实体,如果两个零件的实体之间能够进行正常的一个几何变换到刚好重合的状态,就说明两个零件的实体是一样的。也可以认为这两个零件是一样的。就这是所谓的不同文件名但长一样的零件。
最关键的api方法就是GetCoincidenceTransform2
在这里插入图片描述
具体的例子我就不讲了。

所以,要比较两个零件是否一样的,我们需要拿到零件对应的实体。再去用这个方法判断一下,是否能直接直接空间几何的变化后保持一致。

           var swApp = Connect.GetRunningSolidWorks();  //连接可以nuget上搜索Paine ,找到对应的引用。var swModel=swApp.IActiveDoc2;var KeepComp = swModel.ISelectionManager.GetSelectedObjectsComponent3(1, -1);var MoveComp = swModel.ISelectionManager.GetSelectedObjectsComponent3(2, -1);var v1Bodies = GetBodyCopies((KeepComp.IGetModelDoc() as PartDoc));var v2Bodies = GetBodyCopies((MoveComp.IGetModelDoc() as PartDoc));if (v1Bodies.Length==1 && v2Bodies.Length==1){var body1keep = v1Bodies[0];var body2move = v2Bodies[0];//零件中都相对于原点时的移动位置body2move.GetCoincidenceTransform2(body1keep, out MathTransform moveTokeepTransform);if (moveTokeepTransform!=null){MessageBox.Show(@"两零件实体相同!");                 }else{MessageBox.Show(@"两零件不同!");return;}}

上面就是关键的代码了,当然实际 应用中还可以做很多不同的事情 ,比如,零件的自动替换工作。
上面代码中用到了一个复制零件实体的功能。

        private Body2[] GetBodyCopies(PartDoc partDoc){var vBodies = (Object[])partDoc.GetBodies2((int)swBodyType_e.swAllBodies, true);Body2[] newBodies = new Body2[vBodies.Length];for (int i = 0; i < vBodies.Length; i++){var swBody2 = (Body2)vBodies[i];newBodies[i] = (Body2)swBody2.Copy();}return newBodies;}

而且还可能 需要判断 一些其它看不见的信息,比如质量 材质等其它信息。

我们来看下执行结果 :
在这里插入图片描述

在这里插入图片描述

有了这个判断 的结果 ,要达到第一个图插件的目的,就需要遍历所有不同的零件文件,进行统一的比较。再将结果分组实现即可。

如果需要选择与所选零件实体相同但文件名不同的零件,也是同样的操作,拿这个一零件去与其它装配体的零件进行比较,得到所有相同的零件所对应的Comp对象,进行选中,即可。

上面的代码我会单独保存出来,下次再上传。

http://www.dtcms.com/wzjs/131619.html

相关文章:

  • 做网站赚钱需要多少人手无锡做网站的公司
  • 奥门网站建设北京网站建设
  • 龙泉网站建设seoul什么意思
  • 网站制作 推荐新鸿儒互联网运营推广
  • 做网站浏览器关键词优化排名软件
  • 电影视频网站建设费用深圳关键词优化
  • 睢县做网站做网站的软件叫什么
  • 太原网站制作费用百度热线电话
  • wordpress教程 网站标题廊坊关键词排名首页
  • 所有的网站建设教程最近最火的关键词
  • oa系统排名seo平台怎么样
  • 如何做html网站小红书软文推广
  • 图书销售网站开发与实现制作网站首页
  • 做餐饮加盟的网站建设链接提交工具
  • 美女做暖暖免费视频2017网站企业网站营销的典型案例
  • 做企业网站需要注意哪些免费舆情网站下载大全最新版
  • 攀枝花做网站搜索引擎营销题库和答案
  • 免费外贸网站百度app营销软件
  • 东软网站建设jsurl转码
  • 100种晚上禁用的app大全高平网站优化公司
  • 做网站北京公司百度引擎搜索网址
  • 网站页面制作视频专业搜索引擎seo技术公司
  • 做网站要学什么c语言迅速上排名网站优化
  • app设计尺寸规范湖南关键词优化快速
  • 站牛网百度导航最新版本下载安装
  • 合肥网站建设网站建设地推任务网
  • 哪里可以做购物网站中国免费网站服务器下载
  • 高端工作网站灰色关键词排名
  • 外贸网站分类电商平台有哪些?
  • 网站官网上的新闻列表怎么做百度广告联盟