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

兰州网站建设怎么选公关公司提供的服务有哪些

兰州网站建设怎么选,公关公司提供的服务有哪些,大连seo推广外包,建筑用木模板的规格与价格前言:本文主要探讨如何通过宏将零件下的所有Body或者自选的Body批量生成Product的思路。同时,进一步探讨代码的优化方法,希望对大家有所帮助。0视频演示高清视频请访问如下链接查看:https://pan.baidu.com/s/1Y64J7Zh1Y--ZuOcnFPa…

b48b717bfd8bc343b3841a8ef6592e2b.png
前言:本文主要探讨如何通过宏将零件下的所有Body或者自选的Body批量生成Product的思路。同时,进一步探讨代码的优化方法,希望对大家有所帮助。

0视频演示

高清视频请访问如下链接查看:

https://pan.baidu.com/s/1Y64J7Zh1Y--ZuOcnFPaokA

1目录

0. 视频演示

1. 目录

2. 编程思路

3. 如何获取装配下的指定对象

4. 如何创建装配文档

5. 如何对窗口排序

6. 如何选择粘贴的模式

7. 如何实现装配子集间Body的复制

8. 如何实现全选Body和自选Body

9. 如何解决装配重名的问题

10. 如何过滤掉PartNumber中不需要的字符

11. 详细代码

12. 参考资料

2编程思路

首先我们设计如下窗体,用于交互:

c2193268b5c3464e7fb3f0b4c66f0ebf.png

接下来,我们为这个窗体添加相应的功能就可以了。

从零件的Body创建Product大概的思路为:

1)获取到零件下的Body特征

2)用Selection方法复制Body

3)获取到装配下的PartDocument 的Part特征

4)用Selection 方法粘贴Body

5)尽可能多的考虑其他Error情况,提前规避

如下的代码就能实现从零件的Body创建Product,这是我已经简化过的核心代码,本文的代码都是在这个基础上增加其他功能演变而来的:

6b9dcb0e5f765a95f810169c824bee82.png

3如何获取装配下的指定对象

获取到Product下的Body的代码为:

CATIA.ActiveDocument.Product.Products.Item(1).ReferenceProduct.Parent.Part.Bodies.Item(1).Shapes.Item(1)

这句里面有两个关键属性,ReferenceProduct和parent的概念,理解了这两个属性,那么对于装配下如何获取指定对象基本就有思路了。

ReferenceProduct是Product的属性,parent就是它的父级。

91a81c540cbea270070e9abc3ce16261.png

下表是我从TypeName、Name、PartName和PartNumber四个维度对上面这句代码的详细比较,我觉得下面这个表看明白了,也就能理解和运用上面的代码了。

006b906b9568a2821ab3cefdfc38ea77.png

dd4eeb1178eb6a1762e1ac620c9def3f.png

4如何创建装配文档

查询V5Automation.chm手册,得到如下信息:

282b12e237d8e25a1f1f49eaea7b6ac9.png

所以很容易就得到了,新建一个装配文档的方法:

Set oPartDoc = CATIA.ActiveDocument

Set oProductDoc = CATIA.Documents.Add("Product")

5如何对窗口排序

查询V5Automation.chm手册,得到如下信息:

d5f00ca626d8e461be94c2ce088e2b56.png

a5229f4ced020e9e1b324895cda04036.png

所以很容易就得到了,新建一个对窗口进行垂直排序的方法:

CATIA.Windows.Arrange catArrangeTiledVertical

CATIA.Windows.Item(1).Activate

6如何选择粘贴的模式

查询V5Automation.chm手册,得到如下信息:

89debcc8618eda48f8270268a74a4f2d.png

所以很容易就得到了,按照结果进行选择性粘贴的方法:

CATIA.ActiveDocument.Selection.PasteSpecial

"CATPrtResultWithOutLink"

7如何实现装配子集间Body的复制

我们可以先利用上面的知识做一个简单的实例,如下图,将Product下第一个Product里的Body复制到第二个Product中

2d89589c12a3456c73a1ca3424fbc207.png

大家看直接看代码就可以了,有兴趣的可以尝试在这个基础上再增加些功能

a5229f4ced020e9e1b324895cda04036.png

这里重点强调下,更新是个问题。目前想出来的一种方法,大家可以参考下:

CATIA.Documents.Item(CATIA.ActiveDocument.Product.

Products.Item(2).ReferenceProduct.Parent.Name).Part.Update

8如何实现全选Body和自选Body

使用For...Next进行循环遍历,当然也可以用For obody in Each Bodies.

全选的代码如下:

fa717994370d6ba94b7db711a631c6fe.png

可选的话使用selection3进行选择就可以,固定套路,代码如下:

eef3e946bee3809fe7ddfe78977ddb06.png

我们可以使用with ...End with 来优化代码,至少目前我所看到的墙外大佬的代码,with的使用基本是家常便饭了。不管书写、阅读还是修改起来也方便很多,让我想起了学Python的时候,一直强调的优雅两个字,扯远了。

9如何解决装配重名的问题

我们都知道,在CATIA DesignMode下同时出现两个相同PartNumber的文件,CATIA会提示报错,要求重命名。

但是Body名称重名这个是允许的。如果我们想让新生成的Product下的零件的PartNumber和Body的名称相同的话,就必须要解决重名的问题,否则要么名称不变,要么就容易产生Error.

这里分享一种思路,供大家参考。我在做的时候,先遍历检查Part中的Body名称,如果有重名,那么就在名称后加Rename&i进行区分,这样生成的Product就不会有重名了。代码如下:

cfc0334e86802add139a7e61c5facefe.png

10如何过滤掉PartNumber中不需要字符

在进行设计后的数据交换时,为了轻量化,很多人习惯使用如下装配模式下的从装配生成零件的命令,如下所示:

77d42c7e3a6329ade9ccef13adcf9f82.png

细心的话,会发现,我们生成的零件文档里的Body名称是这样的:

555d7a83d000bcd9c4f8f6a6a7e78af2.png

你猜的没错,就是“”,这个其实是个非法字符,我们在转化为Product时,要把“”去掉的。我们可以全程使用Replace方法去掉:

2f7560b86110959971842076f33e91c1.png

同样我们还可以去掉空格、“-”、等等字符

代码书写如下:

7fa01ec91904e79295ac4f9124fca908.png

11详细代码

>>>窗体代码:

2c4b31519fbc271a344e9c6cf2cda393.png

f2ad0aa264b596b805568a8004d5fa84.png

>>>模块代码

d01eb1e69cbbfa0f6d33d6cfc9cee2fe.png

>>>初始化CATIAPart

83fad79014b3bde638955086272d782e.png

>>>打开文件对话框选择文件

94c0573315ef08ea47ad0f427d5d7628.png

>>>自定义拷贝Part下的Body生成Product

0409cbe545c6a11f1044f36058116db3.png

138216108c92d3ff35d49b7d785d4be1.png

>>>拷贝Part下的所有Body生成Product

3cbca538fe4dbbe763b5973554a577d9.png

761c967fbaeb9898d52cbd7a3f3606ee.png

12参考资料

1.V5Automation.chm帮助文档

2. Eng-tips论坛资料

https://www.eng-tips.com

3.本文涉及到的模型和代码请访问如下链接下载:

https://pan.baidu.com/s/1wem8c4ZTCwVf3C8VywgSmw
提取码:0o5c

4.3D模型来源于网络。

教程来自慧舟软件

PLM应用工程师

伍松 提供

http://www.lbrq.cn/news/2427859.html

相关文章:

  • 定制高端网站互联网营销怎么做
  • 苏州网站建设设计制作公司怎么样天天外链官网
  • 深圳有做网站最近价格?西安百度公司官网
  • 青岛公司网站建设价格杭州网站建设网页制作
  • 如何在局域网做网站seo专业实战培训
  • wordpress图片间隔seo软件视频教程
  • 广东营销型网站建设报价如何推广我的网站
  • 帝国cms怎么做音乐网站推广普通话内容
  • 卫计委对医院网站建设要求东莞搜索排名提升
  • 尊园地产做的网站广州seo推广公司
  • 网站建设成本百度关键词搜索优化
  • 自助注册搭建网站狠抓措施落实
  • 专业网站建设品牌策划福州网站关键词推广
  • 单片机做网站百度投诉中心电话24个小时
  • 黔西南做网站的有几家全网关键词搜索排行
  • 怎样制作网站电话百度网盘资源搜索入口
  • 网站与网站做外链好吗站长工具端口检测
  • 自己做公司网站百度新闻头条新闻
  • 内蒙古建设厅网站百度免费打开
  • 郑州做网站好的公司企业网站seo案例
  • 替别人做网站google代理
  • 网站建设特效代码推销产品的万能句子
  • wordpress 5.1不提示自动更新百度seo排名优化教程
  • 圣亚科技网站案例谷歌浏览器安卓版下载
  • 网站栏目页面哪里有竞价推广托管
  • 建设网站过程微营销平台有哪些
  • 做影视网站赚钱seo教程 百度网盘
  • wordpress网站文章排版插件网络销售怎么找客源
  • wordpress md做网站seo优化
  • 石家庄长安区网站建设公司百度怎么做广告
  • 【MyBatisPlus】一文讲清 MyBatisPlus 基本原理及基本使用方式
  • 深入理解 Qt 中的 QImage 与 QPixmap:底层机制、差异、优化策略全解析
  • Springboot + MyBatis-Plus + PageHelper 分页性能混合优化方案
  • API网关原理与使用场景详解
  • 计算机网络第四章(3)——网络层《IPV4(子网划分、子网掩码)》
  • 跨端分栏布局:从手机到Pad的优雅切换