jh_dempsey 发表于 2017-11-8 03:32:25

3d solid.separatebody功能的帮助

大家好
我有一个由多个离散三维实体对象组成的单个实体(请参见附图)。我想把它们分离成单独的实体,所以solid3D。separatebody()函数似乎就是实现此目的的方法:
http://help.autodesk.com/view/OARX/2018/ENU/?guid=OREFNET-Autodesk_AutoCAD_DatabaseServices_Solid3d_SeparateBody<br>上面的链接告诉我:<br>我无法解决的是如何找出它创建的其他对象。我本以为它会返回ObjectID列表或ObjectdCollection,但它什么也不返回。如何知道它生成了哪些对象,以便将它们添加到块表中?运行separatesolids()函数只剩下一个实体,其余的都已删除。


**** Hidden Message *****

MickD 发表于 2017-11-8 03:53:05

你有没有一些代码要看,这将有助于看看你如何设置它。
查看方法签名(它有一个格式错误,描述应该说它返回一个数组,而不是一个列表!),你应该有这样的东西:
Solid3d[] solids = solid3D.separatebody();
然后使用“固体”数组来做你的东西。
hth

jh_dempsey 发表于 2017-11-8 04:09:24

完美的米克。这就是我所需要知道的一切。
没有使用下面的代码。
            ' We now have all the solids created. We now need to split those solids into separate objects
            For Each combinedSolidId As ObjectId In combined3DsolidCollection
                Dim combinedSolid As Solid3d = trans.GetObject(combinedSolidId, OpenMode.ForWrite)
                Dim individualSolids() As Solid3d
                individualSolids = combinedSolid.SeparateBody() 'This resturns an array of solid3D objects
                For Each solid As Solid3d In individualSolids
                  acBlkTblRec.AppendEntity(solid)
                  trans.AddNewlyCreatedDBObject(solid, True)
                Next
            Next

MickD 发表于 2017-11-8 04:10:51

凉的
页: [1]
查看完整版本: 3d solid.separatebody功能的帮助