| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Simulation von Kunststoffteilen und Spritzgussformen - Live aus dem Spritzguss-Forschungslabor |
Autor
|
Thema: Einheit im Schrifteld anzeigen (2331 mal gelesen)
|
Desperados Mitglied Student Maschinenbauinformatik
Beiträge: 18 Registriert: 28.03.2008
|
erstellt am: 28. Mrz. 2008 12:02 <-- editieren / zitieren --> Unities abgeben:
Hallo! ich würde gerne im Schriftfeld automatisch die Einheit des Gewichtes anzeigen lassen abhänging davon, was in den Dokumenteigenschaften eingestellt ist. Ist dort z.B. kg eingestellt soll automatisch kg angezeigt werden. ist Gramm eingestellt soll dort g stehen. Gibt es dafür eine Möglichkeit? Alternativ: wie kann ich die Einheiten über die API einstellen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThoMay Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 5258 Registriert: 15.04.2007 SWX 2019 Windows 10 x64
|
erstellt am: 28. Mrz. 2008 13:07 <-- editieren / zitieren --> Unities abgeben: Nur für Desperados
Hallo und einen schönen guten Tag Desperados. Ja, gibt es. In der Vorlage für deine Teile und Baugruppen in den Eigenschaften bei Masse ein kg anhängen. Allerdings bezieht sich dies nur auf eine Einheit: Entweder Gramm oder Kilogramm. Eine Einstellung mit 3 Nachkommastellen ist dann eigentlich genug. Siehe Bild. Gruß ThoMay ------------------ Es gibt keine dummen Fragen, nur unzweckmäßige. Hierauf bekommt man dann machesmal eine unzweckmäßige, freundliche Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 28. Mrz. 2008 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für Desperados
Per API kannst Du die "Units" abrufen. Leider weiss ich nicht wie das genau funktioniert und ob es das herausgibt wo Du brauchst. Suche in der API-Hilfe nach "Units". Dort hat es auch ein paar Beispiele. Vielleicht ist da was für Dich dabei. ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Desperados Mitglied Student Maschinenbauinformatik
Beiträge: 18 Registriert: 28.03.2008
|
erstellt am: 28. Mrz. 2008 14:04 <-- editieren / zitieren --> Unities abgeben:
Schon mal vielen Dank für eure Vorschläge. Das anhängen von kg wäre schon mal eine Möglichkeit. Obwohl ich es eigentlich lieber automatisch hätte, für den Fall das jemand von kg in gramm umstellt oder so. Sowas wie "SW-Units(Mass)" Nach den "Units" werd ich mal suchen. Werd ich sicherlich finden. [Diese Nachricht wurde von Desperados am 28. Mrz. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 28. Mrz. 2008 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für Desperados
Du, wenn Du die Masse per API ausliest, ist das immer in kg! Versuche es mal mit dem Makro und stelle die Einheiten um. Dies ist nur für die Konfiguration "Standard" gültig! Hast Du diese Konfig. nicht, geht auch das Makro nicht. Code: Dim swApp As Object Dim ModelDoc2, swConfig As Object Dim UnitTest As Integer Dim FileName As String Dim vMassProp, vConfName As Variant Const sConfigName As String = "Standard"Sub main() Set swApp = Application.SldWorks Set ModelDoc2 = swApp.ActiveDoc FileName = ModelDoc2.GetPathName() Debug.Print FileName vMassProp = swApp.GetMassProperties2(FileName, sConfigName, 1) If Not IsEmpty(vMassProp) Then Debug.Print " CenterOfMassX = " & vMassProp(0) Debug.Print " CenterOfMassY = " & vMassProp(1) Debug.Print " CenterOfMassZ = " & vMassProp(2) Debug.Print " Volume = " & vMassProp(3) Debug.Print " Area = " & vMassProp(4) Debug.Print " Mass = " & vMassProp(5) ' Immer in kg!!! Debug.Print " MomXX = " & vMassProp(6) Debug.Print " MomYY = " & vMassProp(7) Debug.Print " MomZZ = " & vMassProp(8) Debug.Print " MomXY = " & vMassProp(9) Debug.Print " MomZX = " & vMassProp(10) Debug.Print " MomYZ = " & vMassProp(11) Debug.Print "-------------------------------" End If UnitTest = ModelDoc2.LengthUnit() Select Case UnitTest Case 0 Debug.Print " Längen-Einheit = " & "mm" Case 1 Debug.Print " Längen-Einheit = " & "cm" Case 2 Debug.Print " Längen-Einheit = " & "m" Case 3 Debug.Print " Längen-Einheit = " & "in" Case 4 Debug.Print " Längen-Einheit = " & "ft" Case 5 Debug.Print " Längen-Einheit = " & "ft-in" Case 6 Debug.Print " Längen-Einheit = " & "A" Case 7 Debug.Print " Längen-Einheit = " & "nm" Case 8 Debug.Print " Längen-Einheit = " & "mü" Case 9 Debug.Print " Längen-Einheit = " & "mil" Case 10 Debug.Print " Längen-Einheit = " & "UIN" End Select Debug.Print "-------------------------------" End Sub
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Desperados Mitglied Student Maschinenbauinformatik
Beiträge: 18 Registriert: 28.03.2008
|
erstellt am: 28. Mrz. 2008 15:59 <-- editieren / zitieren --> Unities abgeben:
ich wollte das Gewicht aber nicht auslesen und manuell in die Eigenschaften eintragen, sonder schon die Solidworksfunktion "SW-Mass@@...@..." benutzen. Dieser Wert hat ja immer die EInheit wie sie in den Dokumenteigenschaften eingestellt ist. Jetzt hatte ich gehofft, dass man die einheit auch dynamsich da anzeigen kann. Geht aber anscheind nicht! Da frag ich mich, was die Programmierer sich dabei gedacht haben! Der wert wird dynmaisch in ein Schriftfeld eingetragen, aber die Einheit soll ich selber ergänzen? Ist doch voll behindert! Entweder Eiinheit kann auch dynamich eingetraen werden, oder der Wert wird direkt mit einheit ausgegeben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 28. Mrz. 2008 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für Desperados
Zitat: Original erstellt von Desperados: oder der Wert wird direkt mit einheit ausgegeben.
Oder: "der Wert wird wahlweise direkt mit Einheit ausgegeben". Das wäre noch viel besser. Oder sogar noch besser: Eine Variable wie "SW-Unit"! ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Desperados Mitglied Student Maschinenbauinformatik
Beiträge: 18 Registriert: 28.03.2008
|
erstellt am: 31. Mrz. 2008 11:39 <-- editieren / zitieren --> Unities abgeben:
Zitat:
Oder sogar noch besser: Eine Variable wie "SW-Unit"! [/B]
Das wär gut! Frag mich sowieso wie die Programmierer sich das gedacht haben! Man kann den Wert in ein Schriftfeld eintragen lassen aber ohne Einheit? sehr logisch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
locol1011 Mitglied Konstrukteur
Beiträge: 427 Registriert: 12.07.2006 Win 10, SWX 2018-64 SP5.0 HP Workstation XW6600 64GB RAM 3D-SpaceExplorer
|
erstellt am: 31. Mrz. 2008 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für Desperados
Hallo, zum Thema kg anzeigen lassen...selbst wenn ich in den Dokumenteigenschaften kg einstelle, spuckt der Kasten mir doch nur gramm aus... Jetzt die Frage...liegts an mir oder am SW? MfG Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Blokscha Mitglied Konstrukteur
Beiträge: 175 Registriert: 10.07.2000
|
erstellt am: 01. Apr. 2008 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für Desperados
Hallo Desperados, hatte ein ähnliches Problem und habe es folgendermaßen gelöst. Sub barGewicht() Dim swApp As Object Dim Model As Object Dim retval As Variant Dim ConfigName As String Dim View As Object Dim massProps As Variant Dim Gewicht As Double Dim RefModel As Object Dim Masse As Variant Dim Body As Object Dim valid As Long Dim txtMasse As Double Dim Mldg, Stil, Titel, Antwort Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Set Model = swApp.ActiveDoc On Error GoTo keinVolumen If (Model.GetType() = swDocASSEMBLY) Then retval = Model.ResolveAllLightWeightComponents(True) End If massProps = Model.GetMassProperties() Gewicht = Format(massProps(5), "0.00000000") If Gewicht > 100 Then Gewicht = Format(Gewicht, "0") txtMasse = Gewicht Model.CustomInfo("Masse") = "ca. " & txtMasse & " kg" Exit Sub End If If Gewicht > 10 And Gewicht < 99.999999 Then Gewicht = Format(Gewicht, "0.0") txtMasse = Gewicht Model.CustomInfo("Masse") = "ca. " & txtMasse & " kg" Exit Sub End If If Gewicht > 1 And Gewicht < 9.999999 Then Gewicht = Format(Gewicht, "0.00") txtMasse = Gewicht Model.CustomInfo("Masse") = "ca. " & txtMasse & " kg" Exit Sub End If If Gewicht > 0.1 And Gewicht < 0.999999 Then Gewicht = Format(Gewicht, "0.000") txtMasse = Gewicht * 1000 Model.CustomInfo("Masse") = "ca. " & txtMasse & " g" Exit Sub End If If Gewicht > 0.01 And Gewicht < 0.099999 Then Gewicht = Format(Gewicht, "0.0000") txtMasse = Gewicht * 1000 Model.CustomInfo("Masse") = "ca. " & txtMasse & " g" Exit Sub End If If Gewicht > 0.001 And Gewicht < 0.009999 Then Gewicht = Format(Gewicht, "0.00000") txtMasse = Gewicht * 1000 Model.CustomInfo("Masse") = "ca. " & txtMasse & " g" Exit Sub End If If Gewicht < 0.001 Then Model.CustomInfo("Masse") = "< 1 g" Exit Sub End If keinVolumen: MsgBox LoadResString(105), vbOKOnly, "Information" Exit Sub End Sub Gruß Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Piet Mitglied Konstruktionsleiter & Konstrukteur
Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 01. Apr. 2008 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für Desperados
Ich verweise da mal auf mein Makro "Masseneinheiten", erhältlich in der Makrotauschbörse als Nr. 27. http://solidworks.cad.de/mm_boerse03.htm Zitat: Dies Makro fügt in Teilen ein Makrofeature an das Ende des Featurebaums an. Bei jedem Rechendurchlauf werden Gesamtoberfläche, Volumen und Gewicht ausgelesen und in anschaulichen Eigenschaften ausgegeben (z.B. Gewicht in kg). Diese Werte werden als benutzerdefinierte Eigenschaften in das Teil eingetragen, so dass man in einem Zeichnungsrahmen leicht einen Verweis darauf machen kann. Wenn das Makro einmal eingefügt ist, braucht man nichts mehr machen, die Werte werden bei jedem Durchlauf aktualisiert. Ausnahme: Bei Verwendung der Materialdatenbank ist es etwas schwieriger. Wenn das Material geändert wird, muss das Teil neu geöffnet und ein Strg-Q durchgeführt werden, damit die Masse wieder stimmt. Piet
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |