| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | Innovationstag mit SolidCAM und Plogmann bei HEDELIUS in Meppen |
Autor
|
Thema: Ausfüllen des Schriftfeldes in Zeichnungen mehr automatisieren (1685 mal gelesen)
|
L.Schröter Mitglied Projektierung
Beiträge: 263 Registriert: 29.03.2007 Aus dem Stein der Weisen macht der Dumme Schotter. (Deutsches Sprichwort)
|
erstellt am: 10. Mai. 2007 07:07 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen. Das Ausfüllen des Schriftfeldes in einer Zeichnung ist ja recht mühselig. Wir haben auch schon das Makro zum Schriftfeldausfüllen getestet. Ist dadurch auch angenehmer, aber ich würde das ganze gerne noch mehr „automatisieren“. Material und Massstab sind kein Thema. Den Dateinamen kann man durch $PRP:“SW-Dateiname“ auslesen. Unsere Modelle werden wie folgt abgespeichert: xxxx-xx-xx – Platte.sldprt (Das x steht für eine bestimmte Zahlenkombination, Platte wäre die Benennung) Hier ist jetzt meine Frage: Kann man die Benennung von der Zeichnungsnummer trennen, und in die entsprechenden Felder eintragen? Wenn ja, wie? In Bild 1 habe ich das nur mit dem SWX-Befehl gemacht, ist aber nicht so das wahre. Es sollte so aussehen wie in Bild 2 ------------------ MfG L. Schröter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 10. Mai. 2007 07:30 <-- editieren / zitieren --> Unities abgeben: Nur für L.Schröter
Damit lässt sich der Username (den Du brauchst um Dich bei Windows anzumelden) herauslesen; Unser "Aufbau" dessen ist: Name _ erster Buchstabe des Vornamens -> name_v Code:
Option Explicit Dim Buffer As String * 100 Dim Länge As Long Public User, User_N, User_V As String Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As LongSub Benutzer() Länge = 100 GetUserName Buffer, Länge User = Left(Buffer, Länge - 1) User_N = Left(User, InStr(User, "_") - 1) 'Name User_N = UCase(Left(User_N, 1)) & Right(User_N, Len(User_N) - 1) 'Erster Buchstaben gross 'User_N = Replace(User_N, "ae", "ä") 'User_N = Replace(User_N, "oe", "ö") 'User_N = Replace(User_N, "ue", "ü") 'User_N = Replace(User_N, "UE", "Ü") 'User_N = Replace(User_N, "AE", "Ä") 'User_N = Replace(User_N, "OE", "Ö") User_V = UCase(Right(User, 1)) 'Vorname User = User_V + ". " + User_N ' Debug.Print User End Sub
Liest die SolidWorks Version heraus:
Code: Public Sub get_swx_version()Dim m_DrawingDoc, swApp As Object Dim vVerStr As Variant Dim vDummy As Variant Set swApp = CreateObject("SldWorks.Application") If IsEmpty(vVerStr) Then vVerStr = swApp.DateCode End If If Not IsEmpty(vVerStr) Then If Len(vVerStr) > 5 Then swx_version = Left(vVerStr, 4) Else swx_version = Left(vVerStr, 2) End If End If End Sub
Damit wird der Dateiname aufgespalten. Unser Format XXXXXXXX-XXX, wobei die letzten 3 Ziffern die Pos.Nummer ist und der erste Block die Auftragsnummer. Und "la piece de resistance":
Code: Do vDummy = InStr(strDateipfad, "\") strDateipfad = Right(strDateipfad, Len(strDateipfad) - vDummy) Loop While vDummy <> 0 If UCase(Right(strDateipfad, 7)) = ".SLDPRT" Or UCase(Right(strDateipfad, 7)) = ".SLDASM" Or UCase(Right(strDateipfad, 7)) = ".SLDDRW" Then Name = Left(strDateipfad, Len(strDateipfad) - 7) Else Name = strDateipfad End If Do vDummy = InStr(Name, "-") Name = Right(Name, Len(Name) - vDummy) Loop While vDummy <> 0
Wenn Du willst, kann ich Dir das ganze Makro zukommen lassen. ------------------ [Diese Nachricht wurde von G. Dawg am 10. Mai. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
L.Schröter Mitglied Projektierung
Beiträge: 263 Registriert: 29.03.2007 Aus dem Stein der Weisen macht der Dumme Schotter. (Deutsches Sprichwort)
|
erstellt am: 10. Mai. 2007 09:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Ja das sieht doch sehr gut aus und scheint genau das zu sein was wir suchen Wäre super wenn du mir das Makro zukommen lassen könntest, und evtl. mit einer Erklärung wo ich was verändern kann/muß um es an unsere Bedürfnisse anzupassen. Schicke dir eine PN mit meiner E-Mail Adresse. ------------------ MfG L. Schröter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mc Fly Mitglied Masch-bautechniker
Beiträge: 254 Registriert: 03.11.2003 Win7 Prof SP1 X64 Intel Xeon W3670 16GB RAM SWX 2011 SP5 ** CSWP 10/07 **
|
erstellt am: 10. Mai. 2007 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für L.Schröter
Hallo G. Dawg, kannst du mir auch das Makro zukommen lassen und eine Zeichnungsvorlage. Sende dir auch eine PM mit meiner Mailadresse Danke im voraus Mc Fly ------------------ Ich sehe in jedem Mensch zuerst das positive, enttäuscht werde ich noch früh genug. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 10. Mai. 2007 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für L.Schröter
Nagut, wenn es alle haben wollen, dann stelle ich das eben gleich alles hier hinein. ######################## Achtung: Ich übernehme keine Haftung was auch immer und kann auch nicht für den Inhalt des Makros verantwortlich gemacht werden! Ich habe das Makro geerbt und selber dazugedichtet mit HenryV zusammen. Ich weiss also nicht woher das Ding ursprünglich kommt. Ich weiss, dass man da ca. nochmals 1000 Zeilen reduzieren könnte - da steht noch sehr viel Mist drin... hatte aber nie wirklich Zeit das alles anzupassen! Sorry, ist ein grosses Durcheinander! ######################## Wo was geändert werden muss, kann ich nicht sagen... ich weiss ja nicht wo/was bei Dir ist ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|