| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| 3DEXPERIENCE Conference 2024 | München, eine Veranstaltung am 16.10.2024
|
Autor
|
Thema: Makro Dateiname auslesen (4408 / mal gelesen)
|
tunichtgut Mitglied Konstrukteur
Beiträge: 64 Registriert: 27.01.2011 Solidworks 2012 64 bit, Windows 7 Fujitsu Celsius W480 Intel Xenon 2,64GHz, 2,66GHz 8GB Arbeitspeicher Nvidia Quadro FX 3800
|
erstellt am: 06. Nov. 2014 09:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich habe mal wieder ein anliegen. Wir lesen zur Zeit aus dem Dateinamen die Dateieigenschaften " Benennung und Zeichnungsnummer" aus. zB. 9570-0500-021 Platte über ein Makro werden nun die ersten 14 Stellen der Zeichnungsnummer zugeordnet und die restlichen Stellen der Benennung. das Makro sieht so aus Sub main() ' Connect to SolidWorks If swApp Is Nothing Then Set swApp = Application.SldWorks Set model = swApp.ActiveDoc Set modelext = model.Extension
Set prpmgr = modelext.CustomPropertyManager("")
'variablen Zeichnungsnummer = model.GetTitle name = model.GetTitle 'Eigenschaften extrahieren Zeichnungsnummer = Mid(Zeichnungsnummer, 1, 14) name = Right(name, Len(name) - 14) 'Eigenschaften Schreiben longstatus = prpmgr.Set("Zeichnungsnr. / Best. Nr.", Zeichnungsnummer) longstatus = prpmgr.Set("Benennung", name) model.ForceRebuild3 (True)
Ist es nun auch Möglich, bis zur ersten Leerstelle im Namen auszulesen und in die Dateieigenschaften diesen Wert als Zeichnungsnummer zu schreiben? und dann wieder den Rest in Benennung?
Das ganze hat den Hintergrund, unsere Kunden benennen ja Ihre Dateien immer anders mir verschieden langen Zifferblöcken. Vielen Dank schon mal in voraus Gruß Martin ------------------ Schöne Grüße Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 06. Nov. 2014 09:52 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo Martin, Zitat: Original erstellt von tunichtgut: Ist es nun auch Möglich, bis zur ersten Leerstelle im Namen auszulesen und in die Dateieigenschaften diesen Wert als Zeichnungsnummer zu schreiben? und dann wieder den Rest in Benennung?
Ja klar, du benutzt dafür die Funktion InStr() um die Position des Leerzeichens herauszufinden und benutzt dann deine Stringfunktionen wie gehabt. Beispiel:
Code: Sub main() Dim beispiel As String Dim Znr As String Dim Ben As String Dim FirstBlank As Long beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen" FirstBlank = InStr(1, beispiel, " ") Debug.Print FirstBlank Znr = Left(beispiel, FirstBlank - 1) Ben = Mid(beispiel, FirstBlank + 1, Len(beispiel)) Debug.Print Znr; "##"; Ben End Sub
Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 06. Nov. 2014 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
...oder alternativ die Split-Funktion: Code: Sub main() Dim beispiel As String Dim Znr As String Dim Ben As String Dim Record As Variant beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen" Record = Split(beispiel, " ") ' String an allen Leerzeichen trennen, ' Record enthält dann ein Array mit allen Teilstrings If UBound(Record) > 0 Then ' gibt es überhaupt Leerzeichen? Znr = Record(0) ' Znr enthält ersten Teilstring ' Der Rest kommt in Ben Ben = Right(beispiel, Len(beispiel) - Len(Znr) - 1) End If Debug.Print Znr; "##"; BenEnd Sub
------------------ Klaus www.al-ko.com | mein Gästebuch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 27. Nov. 2017 17:41 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, ich bin neu hier, Ich hab genau das gleiche Problem... Ich möchte aus dem Dateinamen bis zum Leerzeichen alles in Dateieigenschaft Zeichnungsnummer übernehmen und nach dem Leerzeichen in Benennung... Solidworks 2017 Die Beiträge waren sehr hilfreich... aber... es funktoniert nicht... Kann mir jemand evtl. ein funktonierendes Makro zeigen? Vielen Dank schon mal in Voraus. ------------------ :P Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 28. Nov. 2017 06:38 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, kannst du uns vielleicht erst Mal zeigen was du bisher gemacht hast bzw. wo bei dir ein Fehler auftritt, dann können wir dir besser helfen. Ein paar Randbedingungen wären vielleicht auch noch hilfreich um andere Fehlerquellen auszuschließen. 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 |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 28. Nov. 2017 07:14 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Dim swApp As Object Sub main() Dim beispiel As String Dim Zeichnungsnummer As String Dim Benennung As String Dim FirstBlank As Long beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen" FirstBlank = InStr(1, beispiel, " ") Debug.Print FirstBlank Zeichnungsnummer = Left(beispiel, FirstBlank - 1) Benennung = Mid(beispiel, FirstBlank + 1, Len(beispiel)) Debug.Print Zeichnungsnummer; "##"; Benennung 'Eigenschaften extrahieren Zeichnungsnummer = Left(beispiel, FirstBlank - 1) Benennung = Mid(beispiel, FirstBlank + 1, Len(beispiel))
'Eigenschaften Schreiben longstatus = prpmgr.Set("Zeichnungsnummer", Zeichnungsnummer) longstatus = prpmgr.Set("Benennung", Benennung) model.ForceRebuild3 (True) Set swApp = Application.SldWorks End Sub Fehler tritt bei Eigenschaften schreiben auf... -> erster Teil soll in Zeichnungsnummer -> zweiter Teil soll in Benennung
Vielen Dank! ------------------ :P Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 28. Nov. 2017 08:18 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo FlippoInzagi, du hast beim Abschreiben aus dem ersten Makro einige wichtigen Teile vergessen, den Rest durcheinander geschwurbelt (was soll z.B. das Set swApp = Application.SldWorks ganz am Einde deines Codes) und die Zeilen für das Auslesen der Stringteile dafür sicherheitshalber doppelt. Das kann so auch nicht funktionieren. Im Ernst, versuch zumindest zu verstehen, wie das Makro funktioniert und welche Zeilen dir aus dem ersten Beitrag noch fehlen, damit das Makro funktioniert. Ciao, Stefan PS: und nein, per PM-Anfrage mache ich das auch nicht PS2: und falls dir jetzt gerade durch den Kopf geht Ich habe leider keine Ahnung von VBA und hoffe darauf, dass mir jemand das fertige Makro schreibt empfehle ich den Thread http://ww3.cad.de/foren/ubb/Forum2/HTML/028301.shtml , schau auch mal bei meiner Antwort hier, oder auch wie hier als Vorschlag oder hier als Erklärung ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 28. Nov. 2017 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Jetzt zeig es mir bei Zeichnungsnummer und Benennung wenigstens schon mal den kompletten Dateinamen an ----------------------- Dim swApp As Object Sub main() Set swApp = Application.SldWorks ' Connect to SolidWorks If swApp Is Nothing Then Set swApp = Application.SldWorks Set model = swApp.ActiveDoc Set modelext = model.Extension Set prpmgr = modelext.CustomPropertyManager("")
Dim beispiel As String Dim Zeichnungsnummer As String Dim Benennung As String Dim FirstBlank As Long beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen" FirstBlank = InStr(1, beispiel, " ") Debug.Print FirstBlank Zeichnungsnummer = Left(beispiel, FirstBlank - 1) Benennung = Mid(beispiel, FirstBlank + 1, Len(beispiel)) Debug.Print Zeichnungsnummer; "##"; Benennung 'variablen Zeichnungsnummer = model.GetTitle Benennung = model.GetTitle 'Eigenschaften Schreiben longstatus = prpmgr.Set("Zeichnungsnummer", Zeichnungsnummer) longstatus = prpmgr.Set("Benennung", Benennung) model.ForceRebuild3 (True)
End Sub
------------------ :P Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 28. Nov. 2017 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, Code: beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen" FirstBlank = InStr(1, beispiel, " ") Debug.Print FirstBlank Zeichnungsnummer = Left(beispiel, FirstBlank - 1) Benennung = Mid(beispiel, FirstBlank + 1, Len(beispiel))
du zerlegst in diesem Codeabschnitt die Variable --> "beispiel" <-- und schreibst die jeweiligen Teilstücke in die Variablen "Zeichnungsnummer" und "Benennung". Code: Zeichnungsnummer = model.GetTitle Benennung = model.GetTitle
Hier überbügelst du die beiden eingetragenen Werte in deinen Variablen dann wieder mit dem Dokumententitel um diese dann in den Eigenschaften einzutragen. Nun überlege Mal ganz scharf wo der Fehler liegen könnte. 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 |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 28. Nov. 2017 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, ok Vielen Dank schonmal! --------------
Dim swApp As Object Sub main() Set swApp = Application.SldWorks ' Connect to SolidWorks If swApp Is Nothing Then Set swApp = Application.SldWorks Set model = swApp.ActiveDoc Set modelext = model.Extension Set prpmgr = modelext.CustomPropertyManager("")
Dim beispiel As String Dim Zeichnungsnummer As String Dim Benennung As String Dim FirstBlank As Long beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen" FirstBlank = InStr(1, beispiel, " ") Debug.Print FirstBlank Zeichnungsnummer = Left(beispiel, FirstBlank - 1) Benennung = Mid(beispiel, FirstBlank + 1, Len(beispiel)) Debug.Print Zeichnungsnummer; "##"; Benennung 'Eigenschaften Schreiben longstatus = prpmgr.Set("Zeichnungsnummer", Zeichnungsnummer) longstatus = prpmgr.Set("Benennung", Benennung) model.ForceRebuild3 (True) End Sub
------- jetzt steht bei Benennung "Name ab dem ersten Leerzeichen" und bei Zeichnungsnummer "1234-567-89ABC" Ich stehe auf der Leitung... ------------------ :P Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 28. Nov. 2017 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, Zitat: beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen"
du weist in dieser Zeile den Text der Variablen "Beispiel" zu den du später trennst, bei dir steht da eben beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen", jetzt noch mal kurz scharf nachdenken und du bist fast am Ziel . Tipp: Du hattest da vorhin ja schon mal was wo du deinen Dokumententitel ermittelt hast . 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 |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 28. Nov. 2017 15:38 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 28. Nov. 2017 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, model.GetTitle gibt dir wie bereits erkannt den Titel zum aktiven Dokument als String (Textausdruck), diesen möchtest du gerne trennen, was aber im Moment noch nicht passiert da der String in der Variablen "beispiel" derzeit noch mit dem festen Wert (beispiel =) "1234-567-89ABC Name ab dem ersten Leerzeichen" befüllt wird. Spricht doch eigentlich nichts dagegen die Variable "beispiel" mit einem anderen Wert (vielleicht mit dem Dokumententitel) zu füllen bevor du die Variable trennst und die Teilstücke den anderen Variablen (Zeichnungsnummer / Benennung) zuordnest, oder nicht . 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 |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 28. Nov. 2017 17:02 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
|
nahe Ehrenmitglied
Beiträge: 1764 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: 29. Nov. 2017 06:19 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo Flippolnzagi, ich verfolge die Diskussion, ein wenig. Ohne Dir nahezutreten wollen, würde ich Dir mal eine API-Schulung bei Deinem Re-Seller empfehlen anbei ein Auszug, was da geschult wird.
------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 29. Nov. 2017 06:55 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, Zitat: klingt logisch, aber mir fällt nichts ein, wie ich das so umsetzen kann...
du darfst in die Variable "Beispiel" auch was anderes reinschreiben wie einen festen String wie "1234-567-89ABC Name ab dem ersten Leerzeichen" z.B. könnte da auch model.GetTitle drin stehen, dass ja auch einem String entspricht der getrennt werden kann. Das würde in deinem Fall dann so aussehen beispiel = model.GetTitle an stelle von beispiel = "1234-567-89ABC Name ab dem ersten Leerzeichen". Neben der Schulung die Heinz anspricht gibt es im ersten Schritt aber auch viele online Tutorials oder Beispielcodes im Internet oder sogar die API-Hilfe von SolidWorks ist da oft brauchbar. Für die Grundkenntnisse muss es aber nicht mal unbedingt ein SWX API Tutorial sein sonder kann auch Excell oder ähnliches sein, da gibt es wesentlich mehr zu finden. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 29. Nov. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 29. Nov. 2017 07:20 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Guten Morgen, ich weiß, dass dieses Thema als Laie sehr schwer ist... Aber ich bin am Ende doch nur ein Anwender, der "nur" etwas vereinfachen mag. Um eben Fehler beim Abschreiben zu vermeiden und generell etwas Zeit einsparen will. Ich hab nun beispiel = model.GetTitle eingefügt und es kommt wieder der komplette Dokumentenname Nun wird wahrscheinlich aber dem ersten Leerzeichen getrennt
------------------ :P Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 29. Nov. 2017 07:24 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
|
FlippoInzagi Mitglied Konstrukteur
Beiträge: 9 Registriert: 27.11.2017 Solidworks 2017
|
erstellt am: 29. Nov. 2017 07:27 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
|
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: 29. Nov. 2017 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Zitat: Original erstellt von nahe: ... eine API-Schulung bei Deinem Re-Seller empfehlen ...
Vorher ein paar Grundlagen im guten alten Basic / VBA wären vielleicht auch nicht schlecht. Immer dran denken, das "=" ist in Basic eine Zuweisung, nicht wie in Prolog eine Gleichheitsdefinition. 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: 2795 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 29. Nov. 2017 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Hallo, ich hab dir den Code mal etwas aussagekräftiger geschrieben mit ganz viel Kommentierung zum nachvollziehen was da eigentlich in den einzelnen Zeilen passiert, des Weiteren habe ich auch noch was eingebaut falls im Dokumententitel die Endung mit angezeigt wird. Beachte das dieser Code nur funktioniert wenn die Eigenschaften auch schon vorhanden sind.
Code: Option ExplicitDim swApp As SldWorks.SldWorks 'SolidWorks Objekt deklarieren Dim swModel As SldWorks.ModelDoc2 'Model Objekt deklarieren Dim swModelDocExt As SldWorks.ModelDocExtension 'Model Extension Objekt deklarieren Dim swPropMgr As SldWorks.CustomPropertyManager 'Eigenschaftsmanager deklarieren Dim sDocTitle As String 'Variable für zu Teilenden Text deklarieren Dim sZeichnungsnummer As String 'Variable für Text bis Leerzeichen deklarieren Dim sBenennung As String 'Variabel für Text ab Leerzeichen deklarieren Dim lFirstBlank As Long 'Variable für Position des ersten Leerzeichens deklarieren Dim longstatus As Long 'Prüfvariable Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc 'Model Objekt setzen Set swModelDocExt = swModel.Extension 'Model Extension Objekt setzen Set swPropMgr = swModelDocExt.CustomPropertyManager("") 'Eigenschaftsmanager Objekt für Benutzerdefinierte Eigenschaften holen sDocTitle = swModel.GetTitle 'Dokumententitel ermitteln und in sDocTitle schreiben lFirstBlank = InStr(1, sDocTitle, " ") 'Position (Long) des ersten Leerzeichens in sDocTitle ermitteln und in lFirstBlank schreiben sZeichnungsnummer = Left(sDocTitle, lFirstBlank - 1) 'Text (String) bis zum Leerzeichen aus sDocTitle ermitteln und in sZeichnungsnummer schreiben sBenennung = Mid(sDocTitle, lFirstBlank + 1, Len(sDocTitle)) 'Text (String) nach dem ersten Leerzeichen aus sDocTitle ermitteln und in sZeichnungsnummer schreiben lFirstBlank = InStr(1, sBenennung, ".SLD") 'Überprüfen ob sBenennung eine Dateiendung enthält If lFirstBlank > 0 Then 'Püfen ob eine Dateiendung gefunden wurde sBenennung = Left(sBenennung, lFirstBlank - 1) 'Wenn ja Text bis Dateiendung von sBenennung ermitteln und zurück in sBenennung schreiben End If 'longstatus = swPropMgr.Set2("Zeichnungsnummer", sZeichnungsnummer) 'Setzen des Wertes sZeichnungsnummer für die Eigenschaft Zeichnungsnummer 'longstatus = swPropMgr.Set2("Benennung", sBenennung) 'Setzen des Wertes sBenennung für die Eigenschaft Benennung
longstatus = swPropMgr.Add3("Zeichnungsnummer", swCustomInfoText, sZeichnungsnummer, swCustomPropertyReplaceValue) 'Erstellen der Eigenschaft "Zeichnungsnummer" und befüllen mit dem Wert sZeichnungsnummer longstatus = swPropMgr.Add3("Benennung", swCustomInfoText, sBenennung, swCustomPropertyReplaceValue) 'Erstellen der Eigenschaft "Benennung" und befüllen mit dem Wert sBenennung swModel.ForceRebuild3 (True) 'Model neu aufbauen End Sub
[Edit]Hab den Code noch korrigiert das auch bei nicht vorhanden sein der Eigenschaften diese noch erstellt werden. @Christian Zitat: Immer dran denken, das "=" ist in Basic eine Zuweisung, nicht wie in Prolog eine Gleichheitsdefinition.
Das stimmt nicht ganz, hin und wieder ist so ein "=" auch ein Vergleichszeichen. :P Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 29. Nov. 2017 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: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 29. Nov. 2017 13:54 <-- editieren / zitieren --> Unities abgeben: Nur für tunichtgut
Zitat:
@Christian Das stimmt nicht ganz, hin und wieder ist so ein "=" auch ein Vergleichszeichen. :PGruß Bernd
da hast du natürlich recht. man erkennt es dann meist an Schlüsselwörtern in der unmittelbaren Umgebung wie if, case, ... Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |