| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| myCAD 2024 Visiativ-Kundentag in Rosenheim, eine Veranstaltung am 29.10.2024
|
Autor
|
Thema: Makros für Eigenschaten mit Verweisen (1254 / 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: 12. Nov. 2020 16:29 <-- editieren / zitieren --> Unities abgeben:
Hallo, vorerst bitte ich schonmal um Entschuldigung das ich diesen Tread nochmal so aufmache (bin nicht so oft unterwegs gewesen auf Foren und habe den anderen glaube ich ausversehen zu gemacht.) ich habe ein Macro umgeschrieben, das mir die Eigenschaften "säubert" (funktioniert) nun wollte ich einen Materialverweis und ein Gewichtsverweis auf den Strukturbaum einbauen. Bedeutet, das sollte nachher in den Eigenschaften so aussehen: (Nachricht 2) Ja, sind Bibliotheksfeatures Die SW Beispiele hab ich schon gefunden, konnte nur nix damit anfangen Copy,Cut& Paste bis der Arzt kommt stimmt schon das mit dem einarbeiten ist auch vollkommen richtig (Anfänger) habe diese Woche mit dem umschreiben angefangen und vor ein paar Jahren mal die ersten 3 Seiten von einem VB Wälzer gelesen. das Programm läuft bis hier einwandfrei. nur die Materialeigenschaften fehlen mir habe ich ein Property drin was blödsinn ist, das soll halt raus.
wenn ich das nicht tue, dann lässt er den wert stehen. (hab zwar fast keine Ahnung davon aber ich glaube er schaut nach, welcher wert (in dem falle keiner, weil er ja gelöscht wurde) drin steht und schreib diesen dann in die Eigenschaften.
[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: 14. Nov. 2020 09:44 <-- editieren / zitieren --> Unities abgeben:
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 15. Nov. 2020 22:07 <-- editieren / zitieren --> Unities abgeben: Nur für Malte70
Zitat: ....Code:
boolstatus = swCustProp.Get4("Oberflächenbehandlung", False, val, valout) boolstatus = ModelDoc.DeleteCustomInfo("Oberflächenbehandlung") boolstatus = swCustProp.Get4("Oberflächenbehandlung", False, val, valout)
... wenn ich das nicht tue, dann lässt er den wert stehen. (hab zwar fast keine Ahnung davon ...
Hallo, erstmal super, dass du deine Lösung jetzt hier auch postest :) oder ist es noch nicht ganz die Lösung? die DIMs würd ich aus der Schleife nach vorne ziehen, braucht man nur einmal oder? Nochmal zu den 3 Zeilen ... du arbeitest zum Teil mit dem Propertymanager, beim Löschen aber mit dem älteren Befehl. Da gibt es aber auch etwas im Propertymanager. Habe die Hilfe von 2016 verlinkt - wenn du auf deine Version umstellst, merkst du, dass dort wieder einige Befehle verändert wurden. wenn du mit den gelesenen Werten nichts machst, müsste die Zeile mit dem Löschen reichen, ggf. auch als
Code: DIM iResult as integer iResult = swCustProp.Delete2("Oberflächenbehandlung")
in den Ergebnisvariablen val und valout bleibt natürlich was drin, auch wenn du die Property gelöscht hast. wenn du danach etwas leeres zuweist, sind sie auch leer. und etwas leeres braucht man mit "&val" auch nicht anhängen ... also gleich weglassen. Bei den danach neu angelegten Eigenschaften scheinen mir auch ein paar Zeilen übrig zu sein. und irgendwo taucht "sconfigname" auf - scheint aber leer zu sein? ... beim Propertymanager (swCustProp) gibt es einen von modeldocext (den für die benutzerdefinierten Eigenschaften) und auch einen jeweils von der Konfiguration her - falls du die Konfiguration brauchst und Befehle vereinheitlichen möchtest. ich hab auch irgendwo gelesen, dass es sicherer sein könnte erst zu löschen und dann neu anzulegen, insofern wäre .delete und .add schon ok als Befehlsauswahl. Bei einigen Blöcken sieht es für mich so aus, als soll eine Eigenschaft quasi umbenannt werden. Es wird etwas aus "Benennung" geholt, dann aber gelöscht, und das gelöschte bei "Gewicht" wieder dran gehängt? da komm ich noch nicht ganz dahinter .... Gruß, Christian 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: 16. Nov. 2020 10:08 <-- editieren / zitieren --> Unities abgeben:
Benennung ung Gewicht agieren unabhängig voneinander, es ist nur nicht richtig geordnet. Gewicht wird hier gelöscht und unabhäng davon wird Benennung mit seinem Wert gerufen. den rest werd ich mal probieren ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford 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: 16. Nov. 2020 10:54 <-- editieren / zitieren --> Unities abgeben:
Mir ist grade nochwas aufgefallen in der Zeile boolstatus = swModel.AddCustomInfo3(sConfigName, "Material", swCustomInfoText, Chr(34) + "SW-Material" + "@@" + sConfigName + "@" + strName + Chr(34)) setzt er mir jetzt natürlich den Dateinamen (strName) sieht natürlich so aus weils ein Struktubauteil ist . "SW-Material@@Default@UPE 140.SLDLFP" soll aber so aussehen: "SW-Material@@Default@UPE 140.SLDPRT" kann ich ein Ende löschen, sowas wie: boolstatus = swModel.AddCustomInfo3(sConfigName, "Material", swCustomInfoText, Chr(34) + "SW-Material" + "@@" + sConfigName + "@" + strName + deleteend (3) + "prt" + Chr(34)) ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford 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: 16. Nov. 2020 14:19 <-- editieren / zitieren --> Unities abgeben:
auch hier wieder meine Lösung: Dim varsplit As Variant varsplit = Split(strName, ".") boolstatus = swModel.AddCustomInfo3(sConfigName, "Material", swCustomInfoText, Chr(34) + "SW-Material" + "@@" + sConfigName + "@" + varsplit(0) + ".sldprt" + Chr(34)) ------------------ 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: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 16. Nov. 2020 18:10 <-- editieren / zitieren --> Unities abgeben: Nur für Malte70
Hallo, hauptsache, dir macht niemand einen 2. Punkt in den String ... sonst so ähnlich: left(strName(len(strName)-6))&"sldprt" auch gerne genommen: Konstrukte mit find / find reverse. Gruß, Christian. 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: 19. Nov. 2020 12:17 <-- editieren / zitieren --> Unities abgeben:
wenn mich nicht alles täuscht fehlen da Leerzeichen, aber das wäre vielleicht sogar die bessere Möglichkeit ------------------ Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt - Henry Ford Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |