Hier is de correctie die door Dassault is toegepast. Nu werkt dit voorbeeld perfect met het model van de adv. tutorial (keukenmachine)
'----------------------------------------------------------------------------
' Randvoorwaarden:
' 1. Open public_documents\tutorial\advdrawings\foodprocessor.slddrw.
' 2. Open een onmiddellijk venster.
'
' Postvoorwaarden:
' 1. De opgegeven hoekige loopmaat wordt in de tekening ingevoegd.
' 2. Inspecteer het venster Onmiddellijk.
'
' OPMERKING: Omdat het model elders wordt gebruikt, dient u de wijzigingen niet op te slaan.
' ---------------------------------------------------------------------------
Dim swApp als SldWorks.SldWorks
Dim deel als SldWorks.ModelDoc2
Dim PartExt als SldWorks.ModelDocExtension
Zon selmgr As SldWorks.SelectionMgr
Dim dispdim As SldWorks.DisplayDimension
Dim swDispDim als SldWorks.DisplayDimension
Dim vdim als variant
Dim boolstatus als Booleaanse
Dim errstatus zo lang
Zon i Zo lang
Optie Expliciete
Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Deel instellen = swApp.ActiveDoc
Stel PartExt = Deel.Uitbreiding in
boolstatus = Part.ActivateView("Tekening View1")
boolstatus = Part.Extension.SelectByID2("", "HOEKPUNT", 0.17648799570697, 0.195948476524618, 4.79999999998881E-03, Waar, 0, Niets, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.270641278567064, 0.202920893989561, 4.7999999999993197E-03, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.238383279638647, 0.257816085148446, -3.99999999999592E-04, True, 0, Niets, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.154059738580153, 0.26234352359454, 6.00000000247292E-04, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.104823845478885, 0.213673560299033, 6.000000000019918E-04, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.152361949162868, 0.163871737392003, 6.000000000019918E-04, True, 0, Nothing, 0)
vdim = PartExt.AddAngularRunningDim(True, True, True, 0.154288188900673, 7.94194886913027E-02, 0, errstatus)
Deel.SetPickMode
Voor i = 0 Naar UBound(vdim)
Dispdim instellen = vdim(i)
Part.Extension.ReJogRunningDimension
Deel.Extensie.AlignRunningDimension
Debug.Print "Weergave geketende hoekafmetingen? " & dispdim. DisplayAsChain
Debug.Print "De hoekafmetingen bidirectioneel uitvoeren? " & dispdim. Bidirectioneel uitvoeren
Debug.Print "Verlenglijnen verlengen vanuit het midden van de hoekige lopende dimensie? " & dispdim. ExtensionLineExtendsFromCenterOfSet
Debug.Print "Worden verlenglijnen gejogd? " & dispdim. Joggen
Debug.Print "Extensielijnstijl hetzelfde als aanhaallijnstijl? " & dispdim. ExtensionLineSameAsLeaderStyle
Debug.Print "Extensieregel maakt gebruik van documentinstellingen? " & dispdim. ExtensionLineUseDocumentDisplay
Volgend
Einde Sub
Als ik het goed begrijp, kwam het probleem voort uit het feit dat de functie elke keer op hetzelfde element liep, vandaar het voorstel om een variabele en een lus op de elementen te declareren.
Heb ik gelijk?