|   |   | 
  | Gut zu wissen: Hilfreiche Tipps und Tricks aus  der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | 
|   |   | 
  | InnovateNext 26. in Donaueschingen, eine Veranstaltung am 13.11.2025
  | 
| 
Autor
 | 
Thema:  Rechnung mit zuweisung erstellen (2339 /  mal gelesen)
 | 
 
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 23. Nov. 2020 09:58       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Hallo liebe Community,  habe meinen Programmcode soweit erweitert (grundgerüst, muss auch noch bearbeitet werden) Funktioniert auch, ist nur noch etwas chaotisch (setze mich noch daran)   ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford
 [Diese Nachricht wurde von Malte70 am 23. Nov. 2020 editiert.] [Diese Nachricht wurde von Malte70 am 27. Nov. 2023 editiert.] 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: 3396 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19) 
                         | 
                        
                         
                                                 
                        erstellt am: 23. Nov. 2020 17:13       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Moin, in Rätseln du schreibst ... beim Code auch. was möchtest du mit Abmessung +4 machen und wo ist die? wozu zählst du die Konfigurationen durch (for i = ... ... next i) wenn damit überhaupt nichts gemacht wird? du hast immer noch 2x get und dazwischen das delete - ... wozu??? und warum steht da mehrfach mittendrin noch mal set model = activedoc und sogar set swapp ... ? sieht ja aus, wie mein Schreibtisch ... bitte aufräumen! Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
 
  
  
        Beiträge: 2809 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3 
                         | 
                        
                         
                                                 
                        erstellt am: 23. Nov. 2020 17:20       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Hallo Malte, Zitat: würde gerne die Abmessung +4 rauswerfen lassen
  Was meinst du mit "Abmessung +4"    Gruß Bernd  ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 24. Nov. 2020 09:29       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Moin, Zitat: Original erstellt von Malte70: Funktioniert auch, ist nur noch etwas chaotisch (setze mich noch daran) ...          strOrdnerName = ""     'Dateiendung     strName = Dir(strOrdnerName & "*.sldprt") ...     FileName = strOrdnerName & strName ...     Set ModelDoc = swApp.OpenDoc6(FileName, 1, 0, "", Errors, Warnings)
  
  Der Code kann nicht funktionieren, da Opendoc6 einen eindeutigen Dateinamen benötigt. Sobald zwei SWX -Parts in dem Verzeichnis sind, gibt es einen Fehler, da ModelDoc dann den Wert "Nothing" bekommt. ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 25. Nov. 2020 15:34       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Schonmal danke für eure Zeit,     dachte ich hätte das Problem besser beschrieben     Angenommen ich bekomme hier bei den Abmessungen den Wert 100 herausgeworfen , dann möchte ich das er mir stattdessen 104 herauswirft. ich hab hier in der Skizze einen wert, z.B.100 herausgelesen und möchte aber stattdessen 104 dort stehen haben. Get4 will der scheibar haben, sonst bleibt mein vorheriger wert dort stehen.      ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford
 [Diese Nachricht wurde von Malte70 am 27. Nov. 2023 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 25. Nov. 2020 15:37       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Hab den Code etwas unter Zeitdruck gefühlt 1000 mal geändert, seht mir das bitte etwas nach, ich räum auch noch auf  ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 25. Nov. 2020 17:35       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                          Zitat: @Andreas: es funktioniert. wenn ich z.b. -Baugruppen oder Bibliotheksdatein aufrufe, dann werden mir diese auch angezeigt,wie schon geschrieben, Funktioniert. habe nur keinen Pfad eingetragen. 
  Wenn du die Datei selbst öffnest, dann gebrauchst du die OpenDoc-Methode nicht.    Das etwas funktioniert, will ich nicht abstreiten, aber das ist ein reines Zufallsergebnis und hat nichts mit einem strukturierten Programm zu tun. Sorry für die harten Worte, aber es macht keinen Sinn, da du mit Copy&Paste nie zu einem brauchbaren und verlässigen Makro kommst. Um auf dein Problem mit deiner Abmessung plus vier zurückzukommen: Du kannst z.B. eine globale Variable "Maß" anlegen und dort deine Gleichung "D1@Skizze1"+4 hinterlegen. Dann ändert sich dieses Maß auch bei Änderung der Geometrie. Dann musst du nicht noch einmal das Makro darüberlaufen lassen. Die Datei ist im 2020er Format     ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 26. Nov. 2020 08:15       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Danke für die Antwort,  das Problem ist, das die Dateien schon existieren und bestimmt über 100 Stück sind. Ich wollte da eben nicht jede Datei öffnen und das Maß an eine Globale Variable hängen ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 26. Nov. 2020 08:36       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Moin, es gibt erst ab SWX2021 die Möglichkeit, Berechnungen in den Eigenschaften vorzunehmen. Von daher bleibt dir zum Einen die Möglichkeit, den Wert für deine Eigenschaft im Programm zu berechnen und als reinen Text zu übergeben. Wenn du dann aber etwas am Teil änderst, wird sich diese Eigenschaft nicht mitändern. Dessen musst du dir bewußt sein. Alternativ kann ich mir vorstellen, die globale Variable nebst der Gleichung im Programm zu erzeugen. Habe ich aber noch keine Erfahrung mit, müsste man sich reinfuchsen     ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 26. Nov. 2020 08:39       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                         | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 26. Nov. 2020 09:03       <-- editieren / zitieren -->           Unities abgeben:           
                         | 
                        
                        Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
       
  
        Beiträge: 3396 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19) 
                         | 
                        
                         
                                                 
                        erstellt am: 26. Nov. 2020 20:08       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                          Zitat: ... Der Code kann nicht funktionieren, da Opendoc6 einen eindeutigen Dateinamen benötigt...
  Moin, doch, ich glaub das funktioniert schon so: - mit dir(pfad + filter) bekommt man den ersten treffenden Dateinamen zurück. - mit jdedem weiteren dir (ohne Parameter) bekommt man den nächsten passenden Dateinamen ... bis keiner mehr da ist. auch die Schleife ist da ;) , die Abbruchbedingung sogar redundant: - solange strName nicht "" ist .... - aber falls es doch "" ist (sonst wird filename nicht gleich strOrdnerName sein ...) Code: Do While strName <> ""             FileName = strOrdnerName & strName             If FileName = strOrdnerName Then             Exit Do                         End If
  --> einschließlich der Leerzeile einfach mal 4 Zeilen rausschmeissen ...  ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 27. Nov. 2020 08:57       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Hallo Christian, den Dir-Befehl habe ich wohl versehentlich ignoriert bzw. im oberen Teil falsch interpretiert     Ist aber eine interessante Lösung, um mehrere Dateien in einer Rutsche abzuarbeiten. Danke dir noch mal für die Info! ------------------ ========== Gruß Andreas ========== 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: 3396 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19) 
                         | 
                        
                         
                                                 
                        erstellt am: 27. Nov. 2020 14:17       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                         | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 14:54       <-- editieren / zitieren -->           Unities abgeben:           
                          Zitat: Wenn du dann aber etwas am Teil änderst, wird sich diese Eigenschaft nicht mitändern. Dessen musst du dir bewußt sein.
  Das wäre egal, die Teile werden eh nie wieder zum Ändern angefasst.  Hab mir das jetzt tiefgehend angeschaut, würde aber doch gerne bei einer einfachen Rechnung bleiben, sprich:  Code:
  Dim instance As IEquationMgr Dim Index As Integer Dim Equation As String Dim Solve As Boolean Dim value As Integer   Set swEquationMgr = swModel.GetEquationMgrvalue = instance.Add2((0, Chr(216) + Chr(34) + "D2@Skizze1" + "@@" + sConfigName + "@" + strName + Chr(34), True)) + 4
  
  da kommt bei mir ein Fehler, hab ich da was komplett falsch gemacht?    
 
 ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 15:02       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Die "+4" müssen mit in die Gleichung: Code: value = instance.Add2((0, Chr(216) + Chr(34) + "D2@Skizze1" + "@@" + sConfigName + "@" + strName + "+ 4" + Chr(34), True))
  ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 15:23       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Jetzt zeigt er mir: Fehler91 und Syntaxfehler ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford [Diese Nachricht wurde von Malte70 am 01. Dez. 2020 editiert.] [Diese Nachricht wurde von Malte70 am 27. Nov. 2023 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 15:38       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Das ist mein Code: Code: value = instance.Add2((0, Chr(216) + Chr(34) + "D2@Skizze1" + "@@" + sConfigName + "@" + strName + "+ 4" + Chr(34), True))
  [/B] Das ist dein Code: Code: value = instance.Add2(0, Chr(216) + Chr(34) + "D2@Skizze1" + "@@" + sConfigName + "@" + strName + Chr(34) + "+ 4", True)
  Jetzt suche und finde den Fehler    
  ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 15:52       <-- editieren / zitieren -->           Unities abgeben:           
                         | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 16:19       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                         | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 16:31       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Ja, ich hatte das mit beiden Stellungen probiert und vergessen diese wieder zurückzuschieben aktuell sagt er das eine With- blockvariable fehlt. hab ich da einen Wert vielleicht nicht richtig Dimensioniertß Bin mir z.B nicht sicher ob ich Dim Index vielleicht as long statt Integer machen sollte. Da sagt die Hilfe meiner Ansicht nach beides. Ein Paar Klammern wollte er weg haben. ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
 
  
  
        Beiträge: 2809 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 16:48       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Hallo Malte, hab den Code mal in etwas "schöner" umgeschrieben um eine etwas besser lesbare Grundlage für alle zu schaffen. Da ich jetzt nicht genau wusste was in welcher Eigenschaft bzw. in der Gleichung stehen soll hab ich da etwas gefreestylt, also musst du ggf. noch anpassen. Code: Option ExplicitDim swApp                   As SldWorks.SldWorks Dim swModelDoc              As SldWorks.ModelDoc2 Dim swModelDocExt           As SldWorks.ModelDocExtension Dim swEquationMgr           As SldWorks.EquationMgr Dim swCustPropMgr           As SldWorks.CustomPropertyManager Dim fileName                As String Dim strOrdnerName           As String Dim strName                 As String Dim val                     As String Dim valout                  As String Dim varsplit                As Variant Dim vConfNameArr            As Variant Dim sConfigName             As String Dim i                       As Integer Dim lWarnings               As Long Dim lErrors                 As Long Dim longstatus              As Long Dim boolstatus              As Boolean Sub main() Set swApp = Application.SldWorks 'Dateiposition strOrdnerName = "C:\_SMB\CAD\_SWX-Vorlagen\Makros\testordner\" 'Dateiendung strName = Dir(strOrdnerName & "*.SLDPRT") Do While strName <> ""     fileName = strOrdnerName & strName     If fileName = strOrdnerName Then         Exit Do     End If                  Set swModelDoc = swApp.OpenDoc6(fileName, 1, 0, "", lErrors, lWarnings)     Set swModelDocExt = swModelDoc.Extension     Set swCustPropMgr = swModelDocExt.CustomPropertyManager("")     Set swEquationMgr = swModelDoc.GetEquationMgr                 varsplit = Split(strName, ".")     vConfNameArr = swModelDoc.GetConfigurationNames     For i = 0 To UBound(vConfNameArr)         sConfigName = vConfNameArr(i)     Next i     boolstatus = swCustPropMgr.Get4("Abmessung", False, val, valout)     boolstatus = swModelDoc.DeleteCustomInfo2(sConfigName, "Abmessung")     Debug.Print Chr(34) + "Abmessung = " + "D1@Skizze1" + "@@" + sConfigName + "@" + strName + "+ 4" + Chr(34)     longstatus = swEquationMgr.Add2(0, Chr(34) + "Abmessung = " + "D1@Skizze1" + "@@" + sConfigName + "@" + strName + "+ 4" + Chr(34), True)     boolstatus = swModelDoc.AddCustomInfo3(sConfigName, "Abmessung", swCustomInfoText, Chr(216) + valout)     boolstatus = swModelDoc.AddCustomInfo3(sConfigName, "Gewicht", swCustomInfoText, Chr(34) + "SW-Mass" + "@@" + sConfigName + "@" + varsplit(0) + ".sldprt" + Chr(34))     boolstatus = swModelDoc.AddCustomInfo3(sConfigName, "Benennung", swCustomInfoText, "")     boolstatus = swModelDoc.AddCustomInfo3(sConfigName, "Norm", swCustomInfoText, "")     boolstatus = swModelDoc.AddCustomInfo3(sConfigName, "Lieferant", swCustomInfoText, "")     'Ende Einfügen                 ' Zoom To Fit     swModelDoc.ShowNamedView2 "*Isometrisch", 7     swModelDoc.ViewZoomtofit2                 Debug.Print "Abmessung"     Debug.Print strName & " ==> " & val & " ==> " & valout          longstatus = swModelDoc.SaveAs3(fileName, 0, 2)     swApp.CloseDoc ""     strName = Dir Loop End Sub 
  Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete     [Diese Nachricht wurde von bk.sc am 01. Dez. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 01. Dez. 2020 17:33       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                          Zitat: Original erstellt von Malte70: steht bei beiden Stellungen
  Dann will ich mal für Aufklärung sorgen: Du fügst mit der Add2-Methode eine Gleichung hinzu. In SWX  müssen die Gleichungen in Anführungszeichen eingeschlossen sein. Das sind die Chr(34) vorne an zweiter Stelle und ganz hinten. Du hast dein Teilstring "+4" aber hinter das letzte Chr(34) gesetzt, so dass der Gleichungsmanager meckert. Es spielt also sehr wohl eine Rolle, wo die "+4" stehen     ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 02. Dez. 2020 09:30       <-- editieren / zitieren -->           Unities abgeben:           
                           @Andreas Das hatte ich so verstanden! In den Eigenschaften würde das so aussehen: Maß in der Zeichnung Ø100 alt:
  Code:
  Ø"D2@Skizze1@@BFM Manschette Ø100@xx liØ100.SLDPRT
 
  neu:
  Code:
  Ø"D2@Skizze1@@BFM Manschette Ø100@xx liØ100+4.SLDPRT"
 
  Bernd hat das jetzt so umgeschrieben, das der Wert einmalig genommen wird und trotz Änderung bestehen bleiben würde.  Alles gut soweit. die + "4" + erziehlen nur keinen Effekt      ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford [Diese Nachricht wurde von Malte70 am 27. Nov. 2023 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 02. Dez. 2020 09:52       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Malte, du mischt aber alles quer Beet     Jetzt setzt du auf einmal einen Dateinamen zusammen, vorher sollte es eine benutzerdefinierte Eigenschaft sein. Frei nach Robert Lembke: "Welches Schweinerl hätten wir denn gerne???" Wenn du im Dateinamen die 104 stehen haben möchtest, musst du anders vorgehen. Dann musst du den Zahlenwert von D2@... bestimmen, Stichwort Umwandlung von String in Integer oder Long, dann die Addition durchführen und das Ganze wieder in deinen Dateinamen umwandeln. ------------------ ========== Gruß Andreas ========== 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: 3396 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19) 
                         | 
                        
                         
                                                 
                        erstellt am: 02. Dez. 2020 13:39       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Sry, wenn einer so mit dem Auto ankäme und nach dem Weg fragt, müsste man den Schlüssel abnehmen ... hier kann z.Glück nicht ganz so viel passieren    Wenn jemand dich ständig als Peter anspricht, wirst du vermutlich nicht reagieren, wenn du Malte heisst, oder? Wenn du etwas als set swEquationManager anlegst, kannst du nicht erwarten, dass es auf Instance hört ... genau das gleiche mit modeldoc und Part ... Das hier kann weg, weil überflüssig !!
  Code:
              If fileName = strOrdnerName Then             Exit Do                          End If
 
   Hier wird etwas "modeldoc" getauft und dann nach "part" gerufen ...
 
 Code:
              Set ModelDoc = swApp.OpenDoc6(fileName, 1, 0, "", errors, warnings)             swApp.ActivateDoc2 strName, False, errors             Set swEquationMgr = Part.GetEquationMgr
 
  Dann holst du einfach alles nochmal, diesmal klappt es, aber der alte Müll schwirrt noch rum ...
  Code:
              Set swApp = Application.SldWorks             Set swModel = swApp.ActiveDoc             Set swEquationMgr = swModel.GetEquationMgr
 
             und dann wird nach "instance" gerufen ??? Code:                          value = instance.Add2(0, Chr(216) + Chr(34) + "D2@Skizze1" + "@@" + sConfigName + "@" + strName + Chr(34) + "+ 4", True)
 
   Super gruselig ...
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
 
  
  
        Beiträge: 2809 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3 
                         | 
                        
                         
                                                 
                        erstellt am: 02. Dez. 2020 13:43       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Hallo Malte, ersetzt mal  Code: longstatus = swEquationMgr.Add2(0, Chr(34) + "Abmessung = " + "D1@Skizze1" + "@@" + sConfigName + "@" + strName + "+ 4" + Chr(34), True)
  durch  Code: longstatus = swEquationMgr.Add2(0, "Abmessung" + Chr(34) + "=" + Chr(34) + "D2@Skizze1" + Chr(34) + "+ 4", True)
  dann sollte jetzt in den Globalen Variablen (Gleichungen) auch für Abmessung der Wert mit +4 verrechnet werden. Kannst du noch mal Stichpunktartig aufführen was passieren soll? Soll das wahrscheinlich Rohmaß in den Eigenschaften (benutzerdefiniert oder konfigurationsspezifisch) oder Gleichungen (als Globale Variable) stehen oder in beidem (beachte hierführ es kann keine Globale Variable und Eigenschaft mit identischem Namen gleichzeitig geben), soll der Wert nur als Text geschrieben sein oder verknüpft oder eine Mischung? Gruß Bernd  PS: @Christian du triffst es mit grusselig ganz gut, das war auch meine Intension den Code zumindes rudimentär aufzubereiten bevor ich dadran etwas weiter zu machen.
 ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete      [Diese Nachricht wurde von bk.sc am 02. Dez. 2020 editiert.] [Diese Nachricht wurde von bk.sc am 02. Dez. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 02. Dez. 2020 19:58       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Ich Programmiere jetzt notgedrungen nebenher ca.3 Wochen.  Man kann sich halt nicht in ein Lambo setzen und direkt den Grand Prix gewinnen.  , muss erstmal fahren lernen.    Bin einfach froh über jede Hilfe.  Also, 
 - das Maß im 3D Modell soll stehenbleiben. - das Ergebnis reicht mir als Zahl in den Eigenschaften - Globale Variablen würde ich da gerne aus vielen Gründen weglassen. Danke schonmal ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 02. Dez. 2020 20:45       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                         | 
                        
                        ad_man Ehrenmitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
      
  
        Beiträge: 1521 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000 
                         | 
                        
                         
                                                 
                        erstellt am: 02. Dez. 2020 21:34       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  So, habe mal auf die Schnelle was erstellt: Code: Sub main()     Dim swApp                   As SldWorks.SldWorks     Dim swModel                 As SldWorks.ModelDoc2     Dim strDateipfad            As String     Dim strPfad                 As String     Dim strDateiname            As String     Dim swConfigMgr             As SldWorks.ConfigurationManager     Dim swConfig                As SldWorks.Configuration     Dim swSelMgr                As SldWorks.SelectionMgr     Dim swDispDim               As SldWorks.DisplayDimension     Dim swDim                   As SldWorks.Dimension     Dim vConfigNameArr          As Variant     Dim vConfigName             As Variant     Dim vDimValArr              As Variant     Dim vDimVal                 As Variant     Dim sSpecConfigNameArr(0)   As String     Dim vSpecConfigNameArr      As Variant     Dim dimValue                As Variant     Dim dblRoh                  As Double          'Solidworks anbinden     Set swApp = Application.SldWorks     Set swModel = swApp.ActiveDoc    'Dateipfad ermitteln     strDateipfad = swModel.GetPathName     ' Zerlegen in Pfad und Dateiname ohne Extension (7 Zeichen)     For i = Len(strDateipfad) To 1 Step -1         If Mid(strDateipfad, i, 1) = "\" Then             strPfad = Left(strDateipfad, i)             strDateiname = Mid(strDateipfad, i + 1, Len(strDateipfad) - i - 7)             Exit For         End If     Next i     'Bemaßung auswählen     Set swConfigMgr = swModel.ConfigurationManager     Set swConfig = swConfigMgr.ActiveConfiguration     Set swSelMgr = swModel.SelectionManager     status = swModel.Extension.SelectByID2("D1@Skizze1@" & strDateiname & ".SLDPRT", "DIMENSION", 0, 0, 0, False, 0, Nothing, 0)     Set swDispDim = swSelMgr.GetSelectedObject6(1, -1)     Set swDim = swDispDim.GetDimension     vConfigNameArr = swModel.GetConfigurationNames     dimValue = swDim.GetSystemValue3(swThisConfiguration, vConfigNameArr(0))          'Testausgabe     Debug.Print dimValue(0) 'Ausgabe ist in m          'Rohmaß festlegen => 4 mm addieren     dblRoh = (dimValue(0) * 1000) + 4     Debug.Print dblRoh      End Sub 
  In der ZIP-Datei steckt ein Zylinder im SWX2020-Format und das Makro als swp-Datei. Ich lese den Wert der Kreisbemaßung aus Skizze1 aus und addiere dann 4 mm hinzu. Mit dieser Zahl kannst du dann deine Eigenschaft oder auch den Dateinamen "füttern"     ------------------ ========== Gruß Andreas ========== 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: 3396 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19) 
                         | 
                        
                         
                                                 
                        erstellt am: 03. Dez. 2020 10:18       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                          Zitat: Original erstellt von Malte70: Ich Programmiere jetzt notgedrungen nebenher ca.3 Wochen. Man kann sich halt nicht in ein Lambo setzen und direkt den Grand Prix gewinnen.   , muss erstmal fahren lernen.     Bin einfach froh über jede Hilfe. ... 
  Hallo Peter     (siehe mein Post vorher) deshalb versuchen wir ja auch hartnäckig zu helfen, aber der Verlauf erweckt noch nicht so den Eindruck, als wenn die Hilfe ankommt. ich mein in dem Sinn, dass du im eigenen Quelltext die Hinweise berücksichtigst. wir machen das hier nämlich auch nur nebenbei und aus Enthusiasmus - die meisten jedenfalls. Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
 
  
  
        Beiträge: 2809 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3 
                         | 
                        
                         
                                                 
                        erstellt am: 03. Dez. 2020 12:00       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                        
  Hallo Malte, Zitat: Globale Variablen würde ich da gerne aus vielen Gründen weglassen
  . Der Charm beim Arbeiten mit einer zusätzlichen globalen Variable quasi als Hilfsvariable wäre eine direkte Abhängigkeit der Eigenschaft von der Bemaßung, d.H. die Eigenschaft ändert sich automatisch mit bei Bemaßungsänderung. Gruß  Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete    Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 03. Dez. 2020 14:41       <-- editieren / zitieren -->           Unities abgeben:           
                        
  @ Christian  Das weiß ich doch, dafür bin ich auch echt dankbar.  Wenn ich mal etwas Luft habe werde ich mir das auch alles mal von vorne anschauen.      @ Bernd
 das Problem ist, das die Teile nicht richtig erstellt wurden, und das möglichst keine Abhängigkeiten vorhanden sein sollen. ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford 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: 3396 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19) 
                         | 
                        
                         
                                                 
                        erstellt am: 03. Dez. 2020 15:41       <-- editieren / zitieren -->           Unities abgeben:            Nur für Malte70  
                          Zitat: Original erstellt von Malte70: ... Wenn ich mal etwas Luft habe werde ich mir das auch alles mal von vorne anschauen ...
 
  Den schwitzenden Holzfäller mit der stumpfen Säge kennst du? auf den Tip die Säge zu schärfen winkt er ab "keine Zeit, ich muss ja noch die ganzen Bäume fällen"  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                       
 
                        Malte70 Mitglied Konstrukteur
  
  
        Beiträge: 61 Registriert: 11.11.2020 PC1 AMD Threadripper 1020X 12-Core G.Skill 64GB DDR4 MSI RX5700XT GDDR6 8GB 1TB SSD M2 Windows 10 Pro Inventor 2018 Inventor 2017 Solidworks 2015 Solidworks 2020 Solidworks 2018 SW PDM 2015 und 2020 Logitrace V.12 Autocad R13 Autocad 2017 Office 2019 Baugruppen meist ab 20.000 Teile<P>PC2 Dell Precision 5820 
                         | 
                        
                         
                                                 
                        erstellt am: 04. Dez. 2020 11:50       <-- editieren / zitieren -->           Unities abgeben:           
                        
  @Christian bei mir müsste der Holzfäller erstmal fahren um ein Blatt zu holen,in der Zeit kommen dann die Holzfällerkollegen und und bohren Löcher in den Baum, damit man keine Möbel mehr daraus bauen kann     @Bernd Hat jetzt alles funktioniert        Ich werde mir als nächstes meine Bücher schnappen und diese genauer anschauen und mir das alles von vorne aneignen.     Vielen ,vielen Dank nochmal, auch das ihr hier nicht an mir verzweifelt seid     ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  |