| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Cloud for All - Neue Vorteile in Ihrer SOLIDWORKS Lizenz |
Autor
|
Thema: Dim-Parameter auslesen funktioniert nicht (1643 mal gelesen)
|
notthoff Mitglied Dipl.Ing., CAD Admin
Beiträge: 6 Registriert: 13.07.2011 Dell Optiplex 780 4GB Ram (3GB-Swich) Intel Core 2 Duo E8400 Grafik ATI FirePro V4800 Treiber 8.723.0.0 WIN7 /32Bit SW2013 SP4
|
erstellt am: 30. Jun. 2014 10:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe ein Programm, das mir Dimension-Parameter ausliest. Ist eine Passung vorhanden und von welchem Typ. Problem bereicten die beiden Durchmesser D200 n7 und D227 k6 Dann sollen die Passungswerte Durchmesser 200 h7 getToleranceFitValues z.B. h7 GetMinValue -0,046 GetMaxValue 0,000 h7 wird ausgelesen. Aber Min und Max sind 0. Erzeuge ich die Bemaßung neu werden die Min und max Values richtig eingelesen. Beispiel aus der Hilfe (s.u.) liefert das gleiche Problem. ' Preconditions: ' Postconditions: ' 1. The dimension tolerance for the selected dimension are read ' 2. Minimum and maximum dimension tolerances are read ' '---------------------------------------------- Option Explicit Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swSelMgr As SldWorks.SelectionMgr Dim swDisplayDimension As SldWorks.DisplayDimension Dim swDimension As SldWorks.Dimension Dim swDimensionTolerance As SldWorks.DimensionTolerance Dim status As Boolean Dim fontHeight As Double Dim fontScale As Double Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager 'Get the selection Set swDisplayDimension = swSelMgr.GetSelectedObject6(1, 0) ' If selection is not a dimension, then exit If swSelMgr.GetSelectedObjectType3(1, -1) <> swSelDIMENSIONS Then Exit Sub ' Selection is a dimension, so get the dimension tolerance object Set swDimension = swDisplayDimension.GetDimension Set swDimensionTolerance = swDimension.Tolerance ' Set type of Tolerance swDimensionTolerance.Type = swTolBASIC ' Set dimension tolerance value 'swDimension.FullName 'swDimension.getToleranceFitValues Debug.Print ("dimension Name: " & swDimension.FullName) Debug.Print ("Passung: " & swDimension.GetToleranceFitValues) Debug.Print ("dimension Value: " & swDimension.GetSystemValue2("") * 1000 & "mm") Debug.Print ("dimension Name: " & swDimension.FullName) Debug.Print ("Minimum dimension tolerance: " & swDimensionTolerance.GetMinValue * 1000 & "mm") Debug.Print ("Maximum dimension tolerance: " & swDimensionTolerance.GetMaxValue * 1000 & "mm") End Sub
[Diese Nachricht wurde von notthoff am 30. Jun. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 30. Jun. 2014 13:10 <-- editieren / zitieren --> Unities abgeben: Nur für notthoff
Hallo notthoff ich tippe mal drauf, dass der Passungswert h7 "händisch" eingetragen wurden und nicht aus der Auswahlliste gewählt wurden. das hab ich schon mal bei SWX reklamiert und hat damals die SPR Nr 685356 bekommen als Antwort bekam ich damals die folgende Antwort Thanks for the recording. Now I am able to reproduce the issue at my end. This is an issue at our end and we need to take care of it, for this I have opened a SPR, SPR 685356 - Dimension Value PropertyManager : Manually editing the Hole Fit value does not update the tolerances. As a workaround, to avoid this issue its better to select the Hole Fit value from the dropdown list instead of manually changing it. ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
notthoff Mitglied Dipl.Ing., CAD Admin
Beiträge: 6 Registriert: 13.07.2011 Dell Optiplex 780 4GB Ram (3GB-Swich) Intel Core 2 Duo E8400 Grafik ATI FirePro V4800 Treiber 8.723.0.0 WIN7 /32Bit SW2013 SP4
|
erstellt am: 30. Jun. 2014 13:25 <-- editieren / zitieren --> Unities abgeben:
|
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 30. Jun. 2014 13:32 <-- editieren / zitieren --> Unities abgeben: Nur für notthoff
Achtung, es genügt schon wenn Du "h7" als Text händisch in die Combobox der Passungsauswahl einträgst. Du musst den Wert per Mausklick aus der Auswahlliste wählen. ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 30. Jun. 2014 17:25 <-- editieren / zitieren --> Unities abgeben: Nur für notthoff
Hallo, da hat der Heinz schon recht - man sieht das nicht ... hast du mal in das Makro zur Passungstabelle geschaut? (ist auch von Heinz) Ich meine da war jetzt was eingebaut, die Passungen einzeln zu setzen (Bohrung / Welle), weil die Werte sonst nicht richtig ausgelesen werden konnten. und nach dem Setzen funktionierten im 2. Durchlauf plötzlich auch die vorher von Hand eingetragenen Toleranzen. Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 30. Jun. 2014 18:03 <-- editieren / zitieren --> Unities abgeben: Nur für notthoff
Wenn ich im Tabellenmakro den ausgelesenen Wert gleich nochmal reinschreibe, dann findet es auch die gesuchten Werte im ersten Durchgang Code: Set btol = swDim.Tolerance nDimFactor = GetDimFactor(swapp, swmodel, swDim) tol(0) = btol.GetShaftFitValue tol(1) = btol.GetHoleFitValue btol.SetFitValues tol(1), tol(0) ' hier einfach wieder zurückschreiben ....
in deinem Beispiel heißen die Variablen etwas anders, aber das kriegst du angepasst ... danach sollten auch von Hand eingetragene Maße Toleranzwerte kennen. ein weiteres Problem könnte auftreten, wenn beide Passungen angegeben sind - wenn ich mich recht entsinne.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |