Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro Dateiname auslesen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Elektromagnetische Simulation im niederfrequenten Bereich mit CST Studio Suite
Autor Thema:  Makro Dateiname auslesen (4267 / mal gelesen)
tunichtgut
Mitglied
Konstrukteur


Sehen Sie sich das Profil von tunichtgut an!   Senden Sie eine Private Message an tunichtgut  Schreiben Sie einen Gästebucheintrag für tunichtgut

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

...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; "##"; Ben

End Sub


------------------
Klaus

www.al-ko.com | mein Gästebuch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FlippoInzagi
Mitglied
Konstrukteur

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 27. Nov. 2017 17:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 28. Nov. 2017 06:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 28. Nov. 2017 07:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 28. Nov. 2017 11:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 28. Nov. 2017 13:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 28. Nov. 2017 13:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 28. Nov. 2017 15:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 28. Nov. 2017 15:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

Hallo...

mhhhh.....
(Zeichnungsnummer = model.GetTitle)

dann muss ich anstatt Title irgendwas anderes nehmen...

------------------
:P

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 28. Nov. 2017 16:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 28. Nov. 2017 17:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

Hallo,

klingt logisch, aber mir fällt nichts ein, wie ich das so umsetzen kann...


LG

------------------
:P

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nahe
Ehrenmitglied



Sehen Sie sich das Profil von nahe an!   Senden Sie eine Private Message an nahe  Schreiben Sie einen Gästebucheintrag für nahe

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: 29. Nov. 2017 06:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich


API.JPG

 
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



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 29. Nov. 2017 06:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 29. Nov. 2017 07:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 29. Nov. 2017 07:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

Halt...

Es funktiniert....  

Ich habe jetzt noch den Block mit den Variabeln entfernt und nun funktoniert es  DDDDDDDDD


     


------------------
:P

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FlippoInzagi
Mitglied
Konstrukteur

Sehen Sie sich das Profil von FlippoInzagi an!   Senden Sie eine Private Message an FlippoInzagi  Schreiben Sie einen Gästebucheintrag für FlippoInzagi

Beiträge: 9
Registriert: 27.11.2017

Solidworks 2017

erstellt am: 29. Nov. 2017 07:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

Vielen Dank für Eure Hilfe!

Beim nächsten Problem werde ich wieder fragen 

VG


------------------
:P

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

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: 29. Nov. 2017 08:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 29. Nov. 2017 09:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

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 Explicit

Dim 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)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

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: 29. Nov. 2017 13:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für tunichtgut 10 Unities + Antwort hilfreich

Zitat:

@Christian
Das stimmt nicht ganz, hin und wieder ist so ein "=" auch ein Vergleichszeichen. :P

Gruß
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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz