我是靠谱客的博主 平常篮球,最近开发中收集的这篇文章主要介绍只显示模型的外轮廓,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

模型太大,都会影响性能,而有时只是查看模型,并不需要内部细节,可以采取提取轮廓的方式来简化模型,提高效率。

以下是一个解决方案。它首先从零件或装配衍生,删除所有内部细节。然后利用该衍生件创建一个临时的非参数化零件。该零件内部的所有集合特征都被抑制。  

VBA

Public Sub CreateExternalBoundary() 
     
    Dim oTopDoc As Document 
    Set oTopDoc = ThisApplication.ActiveDocument 
   
    Dim oTrans As Transaction 
    Set oTrans = ThisApplication.TransactionManager. _
                StartTransaction(oTopDoc,"CreateExternalBoundary") 
     
    Dim oPartDoc As PartDocument 
     
    If oTopDoc.DocumentType = kAssemblyDocumentObject Then 
     
        ' Create a new part document, invisibly. 
        Set oPartDoc = ThisApplication.Documents.Add(kPartDocumentObject, , True) 
         
        ' Derive the assembly into the part. 
        Dim oDerivedAsmDef As DerivedAssemblyDefinition 
        Set oDerivedAsmDef =
                oPartDoc.ComponentDefinition.ReferenceComponents. _
                       DerivedAssemblyComponents.CreateDefinition(oTopDoc.FullDocumentName)
        Call oPartDoc.ComponentDefinition.ReferenceComponents. _
                DerivedAssemblyComponents.Add(oDerivedAsmDef)
         
    Else 
        Set oPartDoc = oTopDoc 
    End If 
     
     
    'Find any voids within the solid and delete them. 
    Dim oVoidFaces As FaceCollection 
    Set oVoidFaces = ThisApplication.TransientObjects.CreateFaceCollection 
     
    Dim oShell As FaceShell 
    For Each oShell In oPartDoc.ComponentDefinition.SurfaceBodies.Item(1).FaceShells 
        If (oShell.IsVoid = True) Then 
            Dim oFace As Face 
            For Each oFace In oShell.Faces 
                oVoidFaces.Add oFace 
            Next 
        End If 
    Next 
     
    If oVoidFaces.Count > 0 Then 
        Call oPartDoc.ComponentDefinition.Features.DeleteFaceFeatures.Add(oVoidFaces) 
    End If 
     
    'Save the doc. 
    'At this point the internal cavities can still
    ' be seen by supressing the"DeleteFaceFeature" 
    Call oPartDoc.SaveAs(oTopDoc.FullFileName + "_Boundary.ipt", False) 
     
     
    'Create the final PartDocument as a NonParametric solid. 
    'This will definitely suppress the possibility to
    ' see the internal geometry of the initial document 
    Dim oMatrix As Matrix 
    Set oMatrix = ThisApplication.TransientGeometry.CreateMatrix() 
     
    Dim oBody As SurfaceBody 
    Set oBody = oPartDoc.ComponentDefinition.SurfaceBodies(1) 
     
    Dim oPartDocFinal As PartDocument 
    Set oPartDocFinal = ThisApplication.Documents.Add(kPartDocumentObject, , True) 
    Call oPartDocFinal.ComponentDefinition.Features.NonParametricBaseFeatures.Add

最后

以上就是平常篮球为你收集整理的只显示模型的外轮廓的全部内容,希望文章能够帮你解决只显示模型的外轮廓所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部