Hier ist die Korrektur, die Dassault angewendet hat. Nun funktioniert dieses Beispiel perfekt mit dem Modell des Adv. Tutorials (Küchenmaschine)
'----------------------------------------------------------------------------
(') Voraussetzungen:
' 1. Öffnen Sie public_documents\tutorial\advdrawings\foodprocessor.slddrw.
' 2. Öffnen Sie ein Direktfenster.
'
' Postbedingungen:
' 1. Das angegebene Winkellaufmaß wird in die Zeichnung eingefügt.
' 2. Überprüfen Sie das Direktfenster.
'
' HINWEIS: Da das Modell an anderer Stelle verwendet wird, speichern Sie die Änderungen daran nicht.
' ---------------------------------------------------------------------------
Dim swApp als SldWorks.SldWorks
Dimmen des Teils als SldWorks.ModelDoc2
Dim PartExt als SldWorks.ModelDocExtension
Sun selmgr As SldWorks.SelectionMgr
Dim dispdim As SldWorks.DisplayDimension
Dim swDispDim As SldWorks.DisplayDimension
Dim vdim als Variante
Dim boolstatus als boolescher Wert
Dim errstatus So lange
Sonne i So lang
Option Explizit
Sub main()
Legen Sie swApp = Application.SldWorks fest
Set Part = swApp.ActiveDoc
Festlegen von PartExt = Part.Extension
boolstatus = Part.ActivateView("Zeichnungsansicht1")
boolstatus = Part.Extension.SelectByID2("", "VERTEX", 0.17648799570697, 0.195948476524618, 4.79999999998881E-03, True, 0, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.270641278567064, 0.202920893989561, 4.799999999993197E-03, True, 0, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.238383279638647, 0.257816085148446, -3.999999998999592E-04, True, 0, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.154059738580153, 0.26234352359454, 6.00000000247292E-04, True, 0, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.104823845478885, 0.213673560299033, 6.000000000019918E-04, True, 0, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.152361949162868, 0.163871737392003, 6.000000000019918E-04, True, 0, Nichts, 0)
vdim = PartExt.AddAngularRunningDim(Wahr, Wahr, Wahr, 0.154288188900673, 7.94194886913027E-02, 0, errstatus)
Part.SetPickMode
Für i = 0 Bis UBound(vdim)
Setze dispdim = vdim(i)
Teil.Erweiterung.ReJogRunningDimension
Part.Extension.AlignRunningDimension
Debug.Print "Verkettete Winkelbemaßungen anzeigen? " & dispdim. AnzeigeAsChain
Debug.Print "Die Winkelbemaßungen bidirektional ausführen? " & dispdim. Bidirektional laufen
Debug.Print "Hilfslinien von der Mitte des Winkelverlaufs verlängern? " & dispdim. ExtensionLineExtendsFromCenterOfSet
Debug.Print "Sind Hilfslinien gerüttelt? " & dispdim. Gerüttelt
Debug.Print "Hilfslinienstil gleich wie Führungslinienstil? " & dispdim. ExtensionLineSameAsLeaderStyle
Debug.Print "Die Hilfslinie verwendet die Dokumenteinstellungen? " & dispdim. ExtensionLineUseDocumentDisplay
Nächster
Ende Sub
Wenn ich es richtig verstanden habe, ergab sich das Problem aus der Tatsache, dass die Funktion jedes Mal eine Schleife für dasselbe Element durchführte, daher der Vorschlag, eine Variable und eine Schleife für die Elemente zu deklarieren.
Habe ich recht?