SolidWorks机械工程师网——最大的SolidWorks学习平台

标题: 求解答--钣金零件 平板型式征 内的展平被压缩 [打印本页]

作者: tg000057    时间: 2022-3-12 21:39
标题: 求解答--钣金零件 平板型式征 内的展平被压缩
求解答:如图,
某一些钣金零件,不知道经过了什么,好像随机一样的,重新再打开时,平板型式内的展平折弯会被压缩,有时是部份压缩,有时是全部压缩。
通常修改零件更新图档时,不一定打开零件,就直接打开工程图更新的,或者用宏批处理导图时,如果出现这种情况,工程图的平板视图就会出错,导致导的图也不对。
所以,求指点,怎么避免出现这种情况,或都有没有一些api可以用来,解除这个压缩状态。

001.png

作者: 牛真人    时间: 2022-3-12 21:39
加密软件的原因吧,一般不会变
作者: tg000057    时间: 2022-3-13 11:13
好吧,又是自问自答的一次:

Sub main()


Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swFeat As SldWorks.Feature
Dim swSubFeat As SldWorks.Feature
Dim k As Integer
Dim Flatten_() As Variant


     Set swApp = Application.SldWorks
     Set swModel = swApp.ActiveDoc
     Set swFeat = swModel.FirstFeature

    Do While Not swFeat Is Nothing
        
        If swFeat.GetTypeName = "FlatPattern" Then

        Set swSubFeat = swFeat.GetFirstSubFeature

            Do While Not swSubFeat Is Nothing
                       
                    ReDim Preserve Flatten_(k)
                    Flatten_(k) = swSubFeat.Name
                    k = k + 1

            Set swSubFeat = swSubFeat.GetNextSubFeature()
            Loop
        
        End If
        
    Set swFeat = swFeat.GetNextFeature
    Loop

For k = 2 To UBound(Flatten_) - 1
  
  swModel.Extension.SelectByID2 Flatten_(k), "BODYFEATURE", 0, 0, 0, True, 0, Nothing, 0

Next

swModel.EditUnsuppress2
swModel.ClearSelection2 True


End Sub
作者: xialxial    时间: 2022-3-13 11:17
很不错,顶一下!
作者: tg000057    时间: 2022-3-14 08:23
tg000057 发表于 2022-3-13 11:13
好吧,又是自问自答的一次:

Sub main()

问题还是没有解决的,这段代码只是方便一键还原而已,至于求助问的,怎么出现的,是否有还原api还是未知。求高手!
作者: tg000057    时间: 2022-3-14 11:31
这样用可以     ,
Dim swFeat As SldWorks.Feature              '°ÑÕ1¿aÕÛíä½aÑ1Ëõ
     Dim swSubFeat As SldWorks.Feature
     Set swFeat = swModel.FirstFeature
   
      Do While Not swFeat Is Nothing

          If swFeat.GetTypeName = "FlatPattern" Then
            Set swSubFeat = swFeat.GetFirstSubFeature

            Do While Not swSubFeat Is Nothing
               swSubFeat.SetSuppression2 2, 1, ""
               Set swSubFeat = swSubFeat.GetNextSubFeature()
            Loop
        
          End If
        
      Set swFeat = swFeat.GetNextFeature
      Loop
然后有新问题,SetSuppression2本来是用在组件的,现在用在特征也可以,只是参数不一样,api帮助内没的说明,所以不明白参数怎么调整,(多配置零件有出错的机率),

作者: wzb413    时间: 2022-3-14 11:48
顶一下,坐等高手!
作者: gzsod    时间: 2022-4-27 16:13
大佬自研能力真强  打算也学VBA
作者: 毛哥898    时间: 2023-12-6 20:32
能否分享一下宏,我也是经常出现,可能是压缩了,又释放了的原因。




欢迎光临 SolidWorks机械工程师网——最大的SolidWorks学习平台 (https://www.swbbsc.com/) Powered by Discuz! X3.2