iCAx开思工具箱

标题: VB.NET FOR UG 二次开发之 倒角 [打印本页]

作者: 昆山人    时间: 2006-10-31 15:43
标题: VB.NET FOR UG 二次开发之 倒角
请问大虾,倒角应该怎么做?
我用了.MOLDL.CreateEdgeBlend() 没有做出来,它里面没有参数输入,不知道怎么做.
还用了.Features.CreateEdgeBlendBuilder() 也没有做出来,不知道怎么用.

我用Journal 功能 纪录了一段倒圆角的代码,可是看不大明白,望高手指教一下


' NX 4.0.2.2
' Journal created by Andyli on Tue Oct 31 15:20:11 2006 China Standard Time
'
Option Strict Off
Imports System
Imports NXOpen

Module NXJournal
Sub Main

Dim theSession As Session = Session.GetSession()
Dim workPart As Part = theSession.Parts.Work

Dim displayPart As Part = theSession.Parts.Display

' ----------------------------------------------
'   Menu: Insert->Detail Feature->Edge Blend...
' ----------------------------------------------
Dim markId1 As Session.UndoMarkId
markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")

Dim nullFeatures_Feature As Features.Feature = Nothing

Dim edgeBlendBuilder1 As Features.EdgeBlendBuilder
edgeBlendBuilder1 = workPart.Features.CreateEdgeBlendBuilder(nullFeatures_Feature)

theSession.SetUndoMarkName(markId1, "Edge Blend")

Dim scCollector1 As ScCollector
scCollector1 = workPart.ScCollectors.CreateCollector()

Dim seedEdges1(0) As Edge
Dim block1 As Features.Block = CType(workPart.Features.FindObject("BLOCK(0)"), Features.Block)

Dim edge1 As Edge = CType(block1.FindObject("EDGE * 4 * 1"), Edge)

seedEdges1(0) = edge1
Dim edgeMultipleSeedTangentRule1 As EdgeMultipleSeedTangentRule
edgeMultipleSeedTangentRule1 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges1, 0.5, True)

Dim rules1(0) As SelectionIntentRule
rules1(0) = edgeMultipleSeedTangentRule1
scCollector1.ReplaceRules(rules1, False)

Dim markId2 As Session.UndoMarkId
markId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Edge Blend")

edgeBlendBuilder1.Tolerance = 0.0254

edgeBlendBuilder1.AllInstancesOption = False

edgeBlendBuilder1.RemoveSelfIntersection = True

edgeBlendBuilder1.ConvexConcaveY = False

edgeBlendBuilder1.RollOverSmoothEdge = True

edgeBlendBuilder1.RollOntoEdge = True

edgeBlendBuilder1.MoveSharpEdge = True

edgeBlendBuilder1.OverlapOption = Features.EdgeBlendBuilder.Overlap.AnyConvexityRollOver

edgeBlendBuilder1.BlendOrder = Features.EdgeBlendBuilder.OrderOfBlending.ConvexFirst

edgeBlendBuilder1.SetbackOption = Features.EdgeBlendBuilder.Setback.SeparateFromCorner

Dim csIndex1 As Integer
csIndex1 = edgeBlendBuilder1.AddChainset(scCollector1, "10")

Dim feature1 As Features.Feature
feature1 = edgeBlendBuilder1.CommitFeature()

theSession.DeleteUndoMark(markId2, Nothing)

edgeBlendBuilder1.Destroy()

Dim markId3 As Session.UndoMarkId
markId3 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")

Dim edgeBlendBuilder2 As Features.EdgeBlendBuilder
edgeBlendBuilder2 = workPart.Features.CreateEdgeBlendBuilder(nullFeatures_Feature)

theSession.SetUndoMarkName(markId3, "Edge Blend")

' ----------------------------------------------
'   Dialog Begin Edge Blend
' ----------------------------------------------
edgeBlendBuilder2.Destroy()

theSession.UndoToMark(markId3, Nothing)

theSession.DeleteUndoMark(markId3, Nothing)

' ----------------------------------------------
'   Menu: Tools->Journal->Stop
' ----------------------------------------------

End Sub
End Module
作者: zhjb113    时间: 2006-11-2 15:54
你录了一段宏之后,你把你的操作UNDO回去,然后你再执行宏,你就会看到你的操作会被重新执行了
作者: cam-yp    时间: 2006-11-2 16:17
楼上的。。。。高!
作者: vodka    时间: 2006-11-3 01:55
' Collector是NX4开始新增加的对象,用来收集全部需要倒角的Edge
Dim scCollector1 As ScCollector
scCollector1 = workPart.ScCollectors.CreateCollector()

Dim seedEdges1(0) As Edge

' Dim block1 As Features.Block = CType(workPart.Features.FindObject("BLOCK(0)"), Features.Block)
' Dim edge1 As Edge = CType(block1.FindObject("EDGE * 4 * 1"), Edge)
Dim edge1 As Edge ....' 调用selection子程序

seedEdges1(0) = edge1
' 收集规则
Dim edgeMultipleSeedTangentRule1 As EdgeMultipleSeedTangentRule
edgeMultipleSeedTangentRule1 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges1, 0.5, True)

Dim rules1(0) As SelectionIntentRule
rules1(0) = edgeMultipleSeedTangentRule1
scCollector1.ReplaceRules(rules1, False)
作者: 昆山人    时间: 2006-11-3 08:51
vodka大叔的也看不大明白.....晕了...
作者: 昆山人    时间: 2006-11-3 08:55
我想倒个圆角....我想应该不用这么复杂.....有没有简单一点的办法?
这段再研究研究...
作者: 昆山人    时间: 2006-11-3 10:00
下面是我刚才分析,请指教

Sub Main

Dim theSession As Session = Session.GetSession()   
Dim workPart As Part = theSession.Parts.Work

Dim displayPart As Part = theSession.Parts.Display

' ----------------------------------------------
'   Menu: Insert->Detail Feature->Edge Blend...
' ----------------------------------------------
Dim markId1 As Session.UndoMarkId    // 请问有什么用?? Undomarkid 是什么??
markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")  //请问有什么用??

Dim nullFeatures_Feature As Features.Feature = Nothing

Dim edgeBlendBuilder1 As Features.EdgeBlendBuilder
edgeBlendBuilder1 = workPart.Features.CreateEdgeBlendBuilder(nullFeatures_Feature)///创建一个EdgeBlendBuilder,并 赋给edgeBlendBuilder1 (但是我不明白 create...builder   是创建了什么,builder 是什么?)

theSession.SetUndoMarkName(markId1, "Edge Blend")   ///请问有什么用??


Dim scCollector1 As ScCollector
scCollector1 = workPart.ScCollectors.CreateCollector()  //创建一个ScCllector 赋给ScCllector1 (ScCllector 是什么??)

Dim seedEdges1(0) As Edge
Dim block1 As Features.Block = CType(workPart.Features.FindObject("BLOCK(0)"), Features.Block) //寻找 BLOCK 并把它转化为Features.Block类型
Dim edge1 As Edge = CType(block1.FindObject("EDGE * 4 * 1"), Edge)//在BLOCK上寻找要倒圆的边,并转化为Edge类型
seedEdges1(0) = edge1
Dim edgeMultipleSeedTangentRule1 As EdgeMultipleSeedTangentRule
edgeMultipleSeedTangentRule1 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges1, 0.5, True)// 创建一个倒圆规则 赋给edgeMultipleSeedTangentRule1 (不知道ScRuleFactory是作什么用的??)

Dim rules1(0) As SelectionIntentRule ///SelectionIntentRule 这个类是作什么用的???
rules1(0) = edgeMultipleSeedTangentRule1
scCollector1.ReplaceRules(rules1, False) //为什么要ReplaceRules???

Dim markId2 As Session.UndoMarkId   ///不明白??
markId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Edge Blend")//不明白??
edgeBlendBuilder1.Tolerance = 0.0254

edgeBlendBuilder1.AllInstancesOption = False

edgeBlendBuilder1.RemoveSelfIntersection = True

edgeBlendBuilder1.ConvexConcaveY = False

edgeBlendBuilder1.RollOverSmoothEdge = True

edgeBlendBuilder1.RollOntoEdge = True

edgeBlendBuilder1.MoveSharpEdge = True

edgeBlendBuilder1.OverlapOption = Features.EdgeBlendBuilder.Overlap.AnyConvexityRollOver

edgeBlendBuilder1.BlendOrder = Features.EdgeBlendBuilder.OrderOfBlending.ConvexFirst

edgeBlendBuilder1.SetbackOption = Features.EdgeBlendBuilder.Setback.SeparateFromCorner///定义一些倒圆方法

Dim csIndex1 As Integer
csIndex1 = edgeBlendBuilder1.AddChainset(scCollector1, "10") //赋给 csIndex1 有什么用???

Dim feature1 As Features.Feature
feature1 = edgeBlendBuilder1.CommitFeature()  //创建 圆角

theSession.DeleteUndoMark(markId2, Nothing)///??

edgeBlendBuilder1.Destroy()//??

Dim markId3 As Session.UndoMarkId//??
markId3 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")//??

Dim edgeBlendBuilder2 As Features.EdgeBlendBuilder//??
edgeBlendBuilder2 = workPart.Features.CreateEdgeBlendBuilder(nullFeatures_Feature)//??

theSession.SetUndoMarkName(markId3, "Edge Blend")//??

' ----------------------------------------------
'   Dialog Begin Edge Blend
' ----------------------------------------------
edgeBlendBuilder2.Destroy()

theSession.UndoToMark(markId3, Nothing)

theSession.DeleteUndoMark(markId3, Nothing)
作者: 昆山人    时间: 2006-11-3 10:30
我通过把上面代码中的核心部分添加到的的代码中,终于可以倒一个圆角了,我的功能是 选择Edge 然后倒圆....下面程序中红色部分是从上面程序中抽取的。

Option Strict Off

Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.UI
Imports NXOpen.Utilities

Module select_curves_or_edges

    Dim s As Session = Session.GetSession()
    Dim ufs As UFSession = UFSession.GetUFSession()

    Sub Main()

        Dim curves() As NXOpen.Tag
        Dim num_curves As Integer
        Dim n As String = vbCrLf

        Dim prompt As String = "select edges:"

        Dim cnt As Integer = 0
        Dim response As Integer
        Dim inx As Integer = 0
        Dim mask_crvs As UFUi.SelInitFnT = AddressOf mask_for_curves

        Dim output As NXOpen.Tag
        Dim output1 As NXOpen.Tag

        ufs.Ui.LockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)

        Try
            ufs.Ui.SelectWithClassDialog(prompt, "Curves:", _
                UFConstants.UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY, _
                mask_crvs, Nothing, response, cnt, curves)
            ' For inx = 0 To curves.Length - 1
            '  Dim blend1 As New UFModl.EdgeBlendData
            '  ufs.Modl.AskEdgeBlend(curves(inx), blend1)

            '  ufs.Modl.CreateEdgeBlend(blend1, output)
            '  Next
        Finally
            ufs.Ui.UnlockUgAccess(UFConstants.UF_UI_FROM_CUSTOM)
        End Try

        ' For inx = 0 To curves.Length - 1
        ' ufs.Disp.SetHighlight(curves(inx), 0)
        '   Next
        '===========================================================
        Dim workPart As Part = s.Parts.Work
        Dim nullFeatures_Feature As Features.Feature = Nothing

        Dim edgeBlendBuilder1 As Features.EdgeBlendBuilder
        edgeBlendBuilder1 = workPart.Features.CreateEdgeBlendBuilder(nullFeatures_Feature)


        Dim scCollector1 As ScCollector
        scCollector1 = workPart.ScCollectors.CreateCollector()

        Dim seedEdges1(0) As Edge
        'Dim block1 As Features.Block = CType(workPart.Features.FindObject("BLOCK(0)"), Features.Block) '替换

        Dim edge1 As Edge = CType(NXObjectManager.Get(curves(inx)), Edge) '替换

        seedEdges1(0) = edge1
        Dim edgeMultipleSeedTangentRule1 As EdgeMultipleSeedTangentRule
        edgeMultipleSeedTangentRule1 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges1, 0.5, True)

        Dim rules1(0) As SelectionIntentRule
        rules1(0) = edgeMultipleSeedTangentRule1
        scCollector1.ReplaceRules(rules1, False)



        edgeBlendBuilder1.Tolerance = 0.0254

        edgeBlendBuilder1.AllInstancesOption = False

        edgeBlendBuilder1.RemoveSelfIntersection = True

        edgeBlendBuilder1.ConvexConcaveY = False

        edgeBlendBuilder1.RollOverSmoothEdge = True

        edgeBlendBuilder1.RollOntoEdge = True

        edgeBlendBuilder1.MoveSharpEdge = True

        edgeBlendBuilder1.OverlapOption = Features.EdgeBlendBuilder.Overlap.AnyConvexityRollOver

        edgeBlendBuilder1.BlendOrder = Features.EdgeBlendBuilder.OrderOfBlending.ConvexFirst

        edgeBlendBuilder1.SetbackOption = Features.EdgeBlendBuilder.Setback.SeparateFromCorner



        Dim csIndex1 As Integer
        csIndex1 = edgeBlendBuilder1.AddChainset(scCollector1, "10")


        Dim feature1 As Features.Feature
        feature1 = edgeBlendBuilder1.CommitFeature()

        edgeBlendBuilder1.Destroy()
        '===========================================================


    End Sub

    Function mask_for_curves(ByVal select_ As IntPtr, _
                           ByVal userdata As IntPtr) As Integer

        Dim num_triples As Integer = 6
        Dim mask_triples(5) As UFUi.Mask

        mask_triples(0).object_type = UFConstants.UF_line_type
        mask_triples(0).object_subtype = 0
        mask_triples(0).solid_type = 0

        mask_triples(1).object_type = UFConstants.UF_circle_type
        mask_triples(1).object_subtype = 0
        mask_triples(1).solid_type = 0

        mask_triples(2).object_type = UFConstants.UF_conic_type
        mask_triples(2).object_subtype = 0
        mask_triples(2).solid_type = 0

        mask_triples(3).object_type = UFConstants.UF_spline_type
        mask_triples(3).object_subtype = 0
        mask_triples(3).solid_type = 0

        mask_triples(4).object_type = UFConstants.UF_point_type
        mask_triples(4).object_subtype = 0
        mask_triples(4).solid_type = 0

        mask_triples(5).object_type = UFConstants.UF_solid_type
        mask_triples(5).object_subtype = 0
        mask_triples(5).solid_type = UFConstants.UF_UI_SEL_FEATURE_ANY_EDGE

        ufs.Ui.SetSelMask(select_, _
                           UFUi.SelMaskAction.SelMaskClearAndEnableSpecific, _
                           num_triples, mask_triples)

        Return UFConstants.UF_UI_SEL_SUCCESS

    End Function

    Public Function GetUnloadOption(ByVal dummy As String) As Integer

        GetUnloadOption = UFConstants.UF_UNLOAD_IMMEDIATELY

    End Function

End Module
作者: zhjb113    时间: 2006-11-3 13:59
在修改数据库之前,NX会自动创建一个undomark,如果操作不成功,NX会返回到创建undomark的状态,这样可以防止系统出错。

创建builder的过程可以认为是为创建feature的所进行的准备工作,在builder中你需要给出创建feature所有的信息,准备工作完成之后,你需要把你的工作交给NX去执行,即commit,有点类似于数据库的操作。

Cllector 在NX中是一个很重要的咚咚,可以按照一定的规则(rule)自动搜集满足条件的东东。现在NX里面的很多和选择有关的,都已经使用了cllector。cllector在模型的更新过程中,能够更准确的定位你原来的输入数据。例如,你对某条边及其相切的边进行了导圆,在模型更新的过程中,边会发生变化,其相切的边可能会发生变化,导圆会随之发生变化。

至于后面的builder,是因为你又执行了一次blend,系统给你产生了一段代码,但是你有中止了,所以后面就没有了
作者: 昆山人    时间: 2006-11-3 14:13
多谢楼上大哥详尽的解答,懂得了不少.
上面的程序我只能倒一条边,现在我想倒几条边,我在里面加了一个循环,可是老是出错,下面红色的部分
就是我添加的循环,
........
........
       Dim edge1() As Edge
        Dim seedEdges1(100) As Edge
      
       For inx = 0 To curves.Length - 1
            If inx > 0 Then
                For x = 0 To inx - 1
                    seedEdges1(x) = edge1(x)
                Next
            End If
            Dim edge2 As Edge = CType(NXObjectManager.Get(curves(inx)), Edge)
            edge1(inx) = edge2

            seedEdges1(inx) = edge1(inx)
            Dim edgeMultipleSeedTangentRule1 As EdgeMultipleSeedTangentRule
            edgeMultipleSeedTangentRule1 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges1, 0.5, True)

            Dim rules1(0) As SelectionIntentRule
            rules1(0) = edgeMultipleSeedTangentRule1
            scCollector1.ReplaceRules(rules1, False)



        edgeBlendBuilder1.Tolerance = 0.0254

        edgeBlendBuilder1.AllInstancesOption = False

        edgeBlendBuilder1.RemoveSelfIntersection = True

        edgeBlendBuilder1.ConvexConcaveY = False

        edgeBlendBuilder1.RollOverSmoothEdge = True

        edgeBlendBuilder1.RollOntoEdge = True

        edgeBlendBuilder1.MoveSharpEdge = True

        edgeBlendBuilder1.OverlapOption = Features.EdgeBlendBuilder.Overlap.AnyConvexityRollOver

        edgeBlendBuilder1.BlendOrder = Features.EdgeBlendBuilder.OrderOfBlending.ConvexFirst

        edgeBlendBuilder1.SetbackOption = Features.EdgeBlendBuilder.Setback.SeparateFromCorner



        Dim csIndex1 As Integer
        csIndex1 = edgeBlendBuilder1.AddChainset(scCollector1, "10")


        Dim feature1 As Features.Feature
        feature1 = edgeBlendBuilder1.CommitFeature()

        edgeBlendBuilder1.Destroy()
        Next
        For inx = 0 To curves.Length - 1
            ufs.Disp.SetHighlight(curves(inx), 0)
        Next


作者: supergirl    时间: 2006-11-3 14:19
倒几条边,就把你的边加到collector里面就好了。理论上说collector 可以放无穷的边。
作者: 昆山人    时间: 2006-11-3 14:24
不懂....还请supergirl多多执教...不胜感激
作者: supergirl    时间: 2006-11-3 14:27
你录一个倒几条边的,看看collector是怎么玩的,不就行了
作者: 昆山人    时间: 2006-11-3 14:40
对啊....我录了...下面是其中的代码....我倒了3个圆...下面4条"======="之间的就是那3个倒圆...我想做成在一个循环语句....还是帮忙分析一下

' ----------------------------------------------
'   Menu: Insert->Detail Feature->Edge Blend...
' ----------------------------------------------
Dim markId1 As Session.UndoMarkId
markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")

Dim nullFeatures_Feature As Features.Feature = Nothing

Dim edgeBlendBuilder1 As Features.EdgeBlendBuilder
edgeBlendBuilder1 = workPart.Features.CreateEdgeBlendBuilder(nullFeatures_Feature)

theSession.SetUndoMarkName(markId1, "Edge Blend")

Dim scCollector1 As ScCollector
scCollector1 = workPart.ScCollectors.CreateCollector()
'================================
Dim seedEdges1(0) As Edge
Dim block1 As Features.Block = CType(workPart.Features.FindObject("BLOCK(0)"), Features.Block)

Dim edge1 As Edge = CType(block1.FindObject("EDGE * 2 * 6"), Edge)

seedEdges1(0) = edge1
Dim edgeMultipleSeedTangentRule1 As EdgeMultipleSeedTangentRule
edgeMultipleSeedTangentRule1 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges1, 0.5, True)

Dim rules1(0) As SelectionIntentRule
rules1(0) = edgeMultipleSeedTangentRule1
scCollector1.ReplaceRules(rules1, False)
'================================
Dim seedEdges2(1) As Edge
seedEdges2(0) = edge1
Dim edge2 As Edge = CType(block1.FindObject("EDGE * 2 * 5"), Edge)

seedEdges2(1) = edge2
Dim edgeMultipleSeedTangentRule2 As EdgeMultipleSeedTangentRule
edgeMultipleSeedTangentRule2 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges2, 0.5, True)

Dim rules2(0) As SelectionIntentRule
rules2(0) = edgeMultipleSeedTangentRule2
scCollector1.ReplaceRules(rules2, False)
'=================================
Dim seedEdges3(2) As Edge
seedEdges3(0) = edge1
seedEdges3(1) = edge2
Dim edge3 As Edge = CType(block1.FindObject("EDGE * 6 * 5"), Edge)

seedEdges3(2) = edge3
Dim edgeMultipleSeedTangentRule3 As EdgeMultipleSeedTangentRule
edgeMultipleSeedTangentRule3 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges3, 0.5, True)

Dim rules3(0) As SelectionIntentRule
rules3(0) = edgeMultipleSeedTangentRule3
scCollector1.ReplaceRules(rules3, False)
'==================================
Dim markId2 As Session.UndoMarkId
markId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Edge Blend")

edgeBlendBuilder1.Tolerance = 0.0254

edgeBlendBuilder1.AllInstancesOption = False
作者: supergirl    时间: 2006-11-3 14:57
楼主的录的code有点问题,edge blend 默认的rule 是tangent curve,就是选一个curve,它自动帮你搜出所有的和它tangent的curve,你有这种需求的时候用这个rule比较好。如果没有这个需求,用CreateRuleEdgeDumb 就可以了,就是UI上的single curve。

用循环是肯定可以实现滴。关键是你用FindObject 要找到正确的edge
作者: 昆山人    时间: 2006-11-3 15:12
有道理...怪不得我在倒一个BLOCK的相邻的两条边的时候它会自动把第三条相邻的也倒了...


我再试试看
作者: 昆山人    时间: 2006-11-3 15:22
我用了一种比较简单的办法来倒几个角..循环加在最外面,如下面红色的.可以倒圆...可是完了后会出来一个错误提示,见附件
======================
..........
.........
选择EDGE
......
Try
            For inx = 0 To curves.Length ''new add
                Dim workPart As Part = s.Parts.Work
                Dim nullFeatures_Feature As Features.Feature = Nothing

                Dim edgeBlendBuilder1 As Features.EdgeBlendBuilder
                edgeBlendBuilder1 = workPart.Features.CreateEdgeBlendBuilder(nullFeatures_Feature)


                Dim scCollector1 As ScCollector
                scCollector1 = workPart.ScCollectors.CreateCollector()

                Dim seedEdges1(0) As Edge
                'Dim block1 As Features.Block = CType(workPart.Features.FindObject("BLOCK(0)"), Features.Block) '替换

                Dim edge1 As Edge = CType(NXObjectManager.Get(curves(inx)), Edge) '替换

                seedEdges1(0) = edge1
                Dim edgeMultipleSeedTangentRule1 As EdgeMultipleSeedTangentRule
                edgeMultipleSeedTangentRule1 = workPart.ScRuleFactory.CreateRuleEdgeMultipleSeedTangent(seedEdges1, 0.5, True)

                Dim rules1(0) As SelectionIntentRule
                rules1(0) = edgeMultipleSeedTangentRule1
                scCollector1.ReplaceRules(rules1, False)



                edgeBlendBuilder1.Tolerance = 0.0254

                edgeBlendBuilder1.AllInstancesOption = False

                edgeBlendBuilder1.RemoveSelfIntersection = True

                edgeBlendBuilder1.ConvexConcaveY = False

                edgeBlendBuilder1.RollOverSmoothEdge = True

                edgeBlendBuilder1.RollOntoEdge = True

                edgeBlendBuilder1.MoveSharpEdge = True

                edgeBlendBuilder1.OverlapOption = Features.EdgeBlendBuilder.Overlap.AnyConvexityRollOver

                edgeBlendBuilder1.BlendOrder = Features.EdgeBlendBuilder.OrderOfBlending.ConvexFirst

                edgeBlendBuilder1.SetbackOption = Features.EdgeBlendBuilder.Setback.SeparateFromCorner



                Dim csIndex1 As Integer
                csIndex1 = edgeBlendBuilder1.AddChainset(scCollector1, "10")


                Dim feature1 As Features.Feature
                feature1 = edgeBlendBuilder1.CommitFeature()

                edgeBlendBuilder1.Destroy()        
            Next

        Catch ex As Exception

            ufs.Ui.WriteListingWindow("Error: ")
        End Try



作者: zhjb113    时间: 2006-11-6 15:11
你录宏啊。一次选择多条边进行blend。然后你看宏就可以了。
作者: 昆山人    时间: 2006-11-6 16:06
还是一样的.....




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3