内容的栏目 * @param int $category 0列表 1频道 2单页 3外链 * @return array */ function category_list($forumlist, $model = 0, $display = 0, $category = 0) { if (empty($forumlist)) return NULL; static $cache = array(); $key = $model . '-' . $display . '-' . $category; if (isset($cache[$key])) return $cache[$key]; if ($display) { foreach ($forumlist as $k => $val) { if (1 == $val['display'] && 1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } else { foreach ($forumlist as $k => $val) { if (1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } return empty($cache[$key]) ? NULL : $cache[$key]; } /** * @param $forumlist 所有版块列表 不分模型 * @param int $display 0全部CMS栏目 1在首页和频道显示内容的栏目 * @param int $category 0列表 1频道 2单页 3外链 * @return array */ function category_list_show($forumlist, $display = 0, $category = 0) { if (empty($forumlist)) return NULL; static $cache = array(); $key = $display . '-' . $category; if (isset($cache[$key])) return $cache[$key]; if ($display) { foreach ($forumlist as $k => $val) { if (1 == $val['display'] && 1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } else { foreach ($forumlist as $k => $val) { if (1 == $val['type'] && $val['category'] == $category) { $cache[$key][$k] = $val; } } } return empty($cache[$key]) ? NULL : $cache[$key]; } /** * @param $forumlist 所有版块列表 * @return mixed BBS栏目数据(仅列表) 尚未开放bbs频道功能 */ function forum_list($forumlist) { if (empty($forumlist)) return array(); static $cache = array(); if (isset($cache['bbs_forum_list'])) return $cache['bbs_forum_list']; $cache['bbs_forum_list'] = array(); foreach ($forumlist as $_fid => $_forum) { if ($_forum['type']) continue; $cache['bbs_forum_list'][$_fid] = $_forum; } return $cache['bbs_forum_list']; } // 导航显示的版块 function nav_list($forumlist) { if (empty($forumlist)) return NULL; static $cache = array(); if (isset($cache['nav_list'])) return $cache['nav_list']; foreach ($forumlist as $fid => $forum) { if (0 == $forum['nav_display']) { unset($forumlist[$fid]); } } return $cache['nav_list'] = $forumlist; } ?>Autodesk Inventor VBA: detect auto-mitered corners? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Autodesk Inventor VBA: detect auto-mitered corners? - Stack Overflow

programmeradmin0浏览0评论

I'm trying to write a sub to essentially check if more than 1 flange was added during the addition of a 'flange feature' to a sheet metal part and if so, were there any that shared a vertex. Essentially, I'm looking for anywhere the corners come together in a nice seam as this indicates that part needs to be welded. I already have a sub that checks for the 'corner seam' feature but when you add 2 flanges side-by-side in the same feature, Inventor automatically adds the same geometry a corner seam would add, but without the feature. I came up with code to look for non-planer or cylindrical faces on the flange since the bend faces get twisted, but the same happens when the base flange isn't square. Is there any way to access the auto-mitered corner feature or... see if the sketches of the flanges share a vertex? Here's the code I currently have working, though not sure this helps at all. Every attempt to look at coinciding vertices just results in too many compile errors of mismatch types and properties that don't exist. Here's the closest I think I've come, but again just a ton of compile errors.

Sub CheckFlangeFeature()
    Dim oDoc As PartDocument
    Set oDoc = ThisApplication.ActiveDocument
    
    Dim oSheetMetalCompDef As SheetMetalComponentDefinition
    Set oSheetMetalCompDef = oDoc.ComponentDefinition
    
    Dim oFeatures As SheetMetalFeatures
    Set oFeatures = oSheetMetalCompDef.Features
    
    ' Access the FlangeFeatures collection
    Dim oFlangeFeatures As Object
    Set oFlangeFeatures = oFeatures.FlangeFeatures
    
    Dim oFlangeFeature As Object
    Dim i As Integer
    
    For i = 1 To oFlangeFeatures.Count
        Set oFlangeFeature = oFlangeFeatures.Item(i)
        
        ' Check if the flange feature added more than one flange
        If oFlangeFeature.Faces.Count > 9 Then
            Debug.Print "Flange feature " & oFlangeFeature.Name & " added more than one flange."
            
            ' Check if the sketches of the flanges share a common vertex
            If FlangesShareCommonVertex(oFlangeFeature) Then
                Debug.Print "Flanges in feature " & oFlangeFeature.Name & " share a common vertex."
            End If
        End If
    Next i
End Sub

Function FlangesShareCommonVertex(oFlangeFeature As Object) As Boolean
    Dim oSketch1 As PlanarSketch
    Dim oSketch2 As PlanarSketch
    Dim oVertex1 As SketchPoint
    Dim oVertex2 As SketchPoint
    
    ' Get the sketches of the flanges
    Set oSketch1 = oFlangeFeature.Definition.Sketches.Item(1)
    Set oSketch2 = oFlangeFeature.Definition.Sketches.Item(2)
    
    For Each oVertex1 In oSketch1.SketchPoints
        For Each oVertex2 In oSketch2.SketchPoints
            If oVertex1.Geometry.IsEqualTo(oVertex2.Geometry) Then
                FlangesShareCommonVertex = True
                Exit Function
            End If
        Next oVertex2
    Next oVertex1
    
    FlangesShareCommonVertex = False
End Function
发布评论

评论列表(0)

  1. 暂无评论