| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Daten-Desaster adé: Mit PDM as a Service (PDMaaS) nie wieder Daten überschreiben – Rettung durch Versionskontrolle! |
Autor
|
Thema: Right Funktion (914 mal gelesen)
|
Nobody1976 Mitglied
Beiträge: 46 Registriert: 20.05.2014 SWX 2022 SP5.0
|
erstellt am: 17. Mrz. 2017 08:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum Ich habe von SWX 2013 auf SWX 2016 umgestellt. Für diverse Dateneingaben nutze ich Makros. Folgeder Code leuft in SWX 2013 einwandfrei und macht bei SWX2016 ärger Sub ArtPruefung() Dim Art_richtig As Boolean Dim Pfad_ArtPruefung As String Art_richtig = False Pfad_ArtPruefung = Right(Part.GetPathName, 6) Pfad_ArtPruefung = LCase(Pfad_ArtPruefung) If Pfad_ArtPruefung = "sldprt" Then Art_richtig = True End If If Pfad_ArtPruefung = "sldasm" Then Art_richtig = True End If If Pfad_ArtPruefung = "sldlfp" Then Art_richtig = True End If If Art_richtig = False Then MsgBox "Sie sind in keinem Teil oder in einer Baugruppe!" & vbCrLf & "Bitte in eine entsprechende Datei wechseln und Makro neu ausführen!" & vbCrLf & vbCrLf & "Das Makro wird jetzt beendet.", vbInformation + vbOKOnly, "Dateityp falsch" End End If Dateiart = Pfad_ArtPruefung End Sub Fehlermeldung ist Fehler beim Kompilieren: Erwarte: Datenfeld und das Right ist angeleuchtet. Die aktiven Erweiterungen habe ich in den beiden Bildern hinterlegt. Danke für eure Hilfe Udo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christoph Weise Mitglied Technischer Produktdesigner / Konstruktion / CAD-Admin
Beiträge: 204 Registriert: 22.03.2015 Dell 3650 Intel I7 11700k 32 GB RAM Nvidia RTX A4000 16GB Win 10 22H2 64-bit SolidWorks 2022SP5 QuickPress 6.3.3 PortaX 2.27 SAP ERP 6.0
|
erstellt am: 17. Mrz. 2017 09:15 <-- editieren / zitieren --> Unities abgeben: Nur für Nobody1976
Hallo Udo, So wie ich das sehe willst du mit dem Programmcode feststellen ob dir eine Zeichnung , Baugruppe oder ein Teil vorliegt. Wiso machst du es so kompliziert über die Dateiendung Hier ein Beispiel aus der VBA Hilfe:
Code: Dim instance As IModelDoc2 Dim value As System.Integer value = instance.GetType()
Die Einzelnen Typen sind diese: swDocASSEMBLY 2 swDocDRAWING 3 swDocLAYOUT 5 swDocNONE 0 swDocPART 1 swDocSDM 4 so kannst du ganz einfach das Format auslesen. ------------------ Wer einen Fehler findet darf ihn behalten, wer zwei findet kann beide behalten, ab fünf Fehler gibs Rabatt :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 17. Mrz. 2017 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für Nobody1976
Hallo Udo, ich finde auch Chrisophs Variante besser aber nun zu deinem Problem, für mich sieht es so aus als fehlt bei dir der Verweis auf "SolidWorks 2016 Extensibility Type Library". Falls du auf Christophs Variante umstellen willst als Tip, Bibliotheksfeature (sldlfp) geben auch den Wert 1 (swDocPART) zurück. 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 |
Nobody1976 Mitglied
Beiträge: 46 Registriert: 20.05.2014 SWX 2022 SP5.0
|
erstellt am: 17. Mrz. 2017 10:11 <-- editieren / zitieren --> Unities abgeben:
Tach. Vielen Dank für die Info. Habe ich hinbekommen. Jedoch benutze ich den Right Befehl öffters. Und das Problem hat sich nur verschoben. Irgendwie gibt es Proble mit dem Befehl. Die vorgeschlagene Erweiterung habe ich aktiviert. Gruß Udo [Diese Nachricht wurde von Nobody1976 am 17. Mrz. 2017 editiert.] [Diese Nachricht wurde von Nobody1976 am 17. Mrz. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 17. Mrz. 2017 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Nobody1976
Hallo Udo, bei mir ist auch der Verweis "Visual Basic for Applications" aktiv, kann jetzt nur nicht sagen ob dieser Pflicht ist, auf alle Fälle kann ich den nicht abwählen (auch bei late binding 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 |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 720 Registriert: 17.01.2007 SWX 2019 SP5 AutoCAD 2019 Win 10 pro 64 bit Intel(R) Xeon(R) CPU E5-1650 v4 @ 3.60GHz 64GB RAM Nvidia Quadro M5000 SWx EPDM
|
erstellt am: 17. Mrz. 2017 12:16 <-- editieren / zitieren --> Unities abgeben: Nur für Nobody1976
Zitat: Original erstellt von Nobody1976: Pfad_ArtPruefung = Right(Part.GetPathName, 6)
Auch wenn du jetzt schon eine Lösung hast, kannst du es ja spaßeshalber mal mit Code:
Pfad_ArtPruefung = mid(Part.GetPathName, len(Part.GetPathName)-5)
Da sollte theoretisch das gleiche rauskommen. Gruß, Jens ------------------ CSWA, CSWP, CSWPA-SM =) 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: 3189 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 17. Mrz. 2017 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für Nobody1976
Zitat: ... auch der Verweis "Visual Basic for Applications" aktiv, ... kann ich den nicht abwählen ...
ist bei mir auch so ;) außerdem hab ich mal irgendwo den Tip gelesen, dass man es auch aufrufen kann als
Code: string2 = VBA.right(string1, len)
funktioniert das bei dir? und ist dein String1 richtig? Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nobody1976 Mitglied
Beiträge: 46 Registriert: 20.05.2014 SWX 2022 SP5.0
|
erstellt am: 17. Mrz. 2017 14:35 <-- editieren / zitieren --> Unities abgeben:
|