找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

开思网高精度工业级3D打印服务
CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?在线3D打印服务,一键上传,自动报价 
查看: 720|回复: 3

[求助] 实体分割

[复制链接]
发表于 2018-6-13 09:24:04 | 显示全部楼层 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
求助各位大神,如图所示的图像,怎么用分割的方法将框中的特征分割开来,并且保留,需要注意的是整个数模是STP转化过来的,不能通过删除特征树特征的方式删除。
360截图17891229234918.png
发表于 2018-6-13 13:13:33 | 显示全部楼层
本文为微信公众号:“CATIA那点事儿”原创

常用的做法如下:
将目标实体复制一个副本(As Result)
用曲面切目标实体,保留A侧
用曲面切副本实体,保留B侧
通过以上的步骤,我们即可达到切割实体保留双侧的目的。

上述操作可通过VBScript代码实现

Sub CATMain()
Dim Doc, Prt, SF, Slct, BodyO, BodyN
Set Doc = CATIA.ActiveDocument
Set Prt = Doc.Part
Set SF = Prt.ShapeFactory
Set Slct = Doc.Selection

Dim Status, lType(1)
lType(0) = "Body"
lType(1) = "Body"

Status = Slct.SelectElement2(lType, "Select the body to be split", True)'这里是让用户选择目标实体
If Status = "Redo" Or Status = "Undo" Or Status = "Cancel" Then
    Exit Sub
End If
Set BodyO = Slct.Item(1).Value'获取用户选择的实体
Slct.Clear

lType(0) = "Plane"
lType(1) = "BiDim"
Status = Slct.SelectElement2(lType, "Select the split surface", False)'让用户选择切割元素(或者叫刀更形象)
If Status = "Redo" Or Status = "Undo" Or Status = "Cancel" Then
    Exit Sub
End If

Dim Ref
Set Ref = Slct.Item(1).Value'获取用户选择的“刀”

Slct.Clear
Slct.Add BodyO
Slct.Copy
Slct.Clear
Slct.Add Prt
Slct.PasteSpecial ("CATPrtResultWithOutLink")'上面这波是复制目标实体,然后以As Result的方式粘贴一个副本实体出来

Set BodyN = Slct.Item(1).Value
BodyN.Name = BodyO.Name & "_1"'副本实体的命名在源实体的名字基础上加个“_1”

Slct.Clear

Prt.InWorkObject = BodyO

Dim Split
Set Split = SF.AddNewSplit(Ref, catPositiveSide)'这波是切原实体,保留A侧

Prt.InWorkObject = BodyN
Set Split = SF.AddNewSplit(Ref, catNegativeSide)'这波是切副本实体,保留另一侧

Prt.Update
End Sub
发表于 2018-6-13 14:49:30 | 显示全部楼层
分割一下就好,保留两侧实体
发表于 2018-9-5 09:06:18 | 显示全部楼层
没有用过,谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ|开思网QQ群|手机版|联系我们|iCAx开思网 ( 粤ICP备09030954号

GMT+8, 2018-12-19 11:47 , Processed in 0.213093 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表