Autor
|
Thema: Pfad über Dialog auswählen (5334 mal gelesen)
|
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 09. Aug. 2006 14:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Innerhalb eines Makros soll einen Zeichnung abgespeichert werden. Der Name wird aus einem Textfeld des Schriftfeldes ausgelesen. Die Datei soll nun gespeichert werden mit DrwDocument.SaveAs Pfad & Name & ".CATDrawing" Nun würde ich gerne den gewünschten Pfad über einen Dialog ähnlich der FileSelectionBox auswählen. Ich habe bis jetzt keinen entsprechenden Dialog gefunden. Vielleicht weiss jemand von euch wie ich dies realisieren kann. Oder kann man innerhalb der FileSelectionBox den Dateiname fest vorgeben? Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 09. Aug. 2006 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo, meines Wissens nach kann der Dateiname nicht voreigestellt werden bei einer SelectionBox. Die Lösung für dein Problem wäre eine Inputbox, wobei man hier eben nicht sehr komfortabel die Verzeichnisse auswählen kann GRuss Timber ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mathias.bergundthal Mitglied informatiker
Beiträge: 153 Registriert: 03.08.2005 HP xw6000 - WXP Pro SP2 - CATIA V5 R16 SP9 - Visual Studio 2005
|
erstellt am: 09. Aug. 2006 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo mkna, mit was entwickelst du vb, vb.net oder makro editor von CATIA? oder sonst was? gruss, mathias
------------------ In diesem Zeitalter der Massenkomunikation sind Verrücktheiten ansteckend. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 09. Aug. 2006 14:41 <-- editieren / zitieren --> Unities abgeben:
|
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 09. Aug. 2006 14:44 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Dann solltest du wohl den weg über die Input-Box gehen Meiner Meinung nach, habe es bisher auch nicht geschafft der Selectionbox einen voreingestellten Dateinamen zu vergeben ------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Timberwolve Mitglied
Beiträge: 233 Registriert: 21.07.2006
|
erstellt am: 09. Aug. 2006 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hier dann mal ein Code mit dem das geht Code:
Dim mydoc as DrawingDocument Dim Pfad as String Dim Name as StringName = TExtfeld1.Text Pfad = Inputbox("Bitte hier Verzeichnis eintragen!","Speicherpfad","C:\Temp") If Pfad <> "" Then mydoc.SaveAs Pfad & Name & ".CATDrawing Else msgbox "Kein Verzeichnis gewählt" End If
------------------ Wenn alle Stricke reissen, nehm ich ein Drahtseil Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Holger_BW Mitglied CAx Support
Beiträge: 80 Registriert: 23.01.2004 CATIA V5R21SP6 Enovia V4 VPM Enovia V6R2015c Creo 2.0
|
erstellt am: 09. Aug. 2006 15:24 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo Martin, hier waere ein Code, um einen Pfad über den Standard Windows-Dialog auszuwählen. Den habe ich mir aus den in den Kommentarzeilen angegebenen Quellen zusammengebastelt, frag mich also nicht, was da im Detail so alles passiert ;-) Gruß, Holger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 10. Aug. 2006 08:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger in welcher Umgebung läuft dein Programmcode. Wenn ich ihn in dem Visualbasic editor von Catia hinneinlade bekomme ich das irgendwie nicht hin. Wie gesagt bin ein Anfänger in Sachen Programmieren. Aber trotzdem Vielen Dank für Eure Beiträge. Wenn ich es nicht anders schaffe werde ich einfach in der FileSectionBox bewußt ein Zeichen eingeben und über die Funktion Left alles ausser dieses Zeichen als Pfad weiterverarbeiten. Im Moment brauche ich diese Funktionalität nur für mich. Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tstone Mitglied Werkzeugkonstrukteur
Beiträge: 163 Registriert: 04.06.2003 Dell Precision 470 Intel Xeon CPU 3,00GHz 2GB Ram Microsoft Windows XP Catia V5 R18 SP6 VB2005
|
erstellt am: 10. Aug. 2006 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo, versuch es doch mal über das Shell Objekt: Dim Shell As Object Dim Ordner As String Set Shell = CreateObject("Shell.Application") Ordner = Shell.BrowseForFolder(0, "Wählen Sie", 0).Self.Path bis denn ------------------ Grüße TStone "Respektiere die Macht der Worte, wähle sie mit Bedacht!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 10. Aug. 2006 09:16 <-- editieren / zitieren --> Unities abgeben:
Suuuppper !!! Vielen Dank das genau das was ich gesucht habe. 10 U dafür (mehr geht leider nicht) Nebenbei gefragt was ist die shell.application und welche nützlichen Sachen lassen sich noch damit realsieren. Ist das eine Anwendung wie Excel ? Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Schaaf Mitglied
Beiträge: 10 Registriert: 17.11.2010 CATIA V5 R20
|
erstellt am: 27. Jun. 2012 17:57 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Vielen Dank für den nützlichen Tipp und sorry, dass ich das alte Thema wieder ausgrabe, aber ich hab ne unmittelbar anknüpfende Frage: Kann man diesem Pfadauswahldialog nen Standardpfad beibringen, der schon beim Öffnen voreingestellt ist? Danke und Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 27. Jun. 2012 18:11 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
|
Andreas Schaaf Mitglied
Beiträge: 10 Registriert: 17.11.2010 CATIA V5 R20
|
erstellt am: 27. Jun. 2012 20:30 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo Rick, danke für die Antwort. "Von außen" heißt, dass ich ein VB.Net-Programm schreibe, es in der üblichen Windows-Umgebung ausführe und das Programm (ohne VBA- oder CATIA-Korsett) automatisch auf CATIA zugreift? Klingt gut. Zu diesem Thema hab ich übrigens noch einen Code-Schnippsel aus einem CATScript gefunden:
Code: Dim oQuelle As String oQuelle = CATIA.FileSelectionBox("Datei Öffnen", "*.txt", CatFileSelectionModeOpen)
Grüße Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 27. Jun. 2012 20:48 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo Andreas, ja mit .net kannst du alles machen und dir eben auch catia greifen und die libraries laden. Damit hast du in Gänze viel mehr Möglichkeiten. Das Programm selbst kannst du dann auch wieder per vba öffnen und in deine Makroleiste packen. Ich kann dir morgen bissel Beispielcode posten. Einziger Nachteil ist, dass .net etwas langsamer als vba ist, da der Zugriff etwas länger dauert, als die interne Verarbeitung. Aber man hat wirklich extrem mehr Möglichkeiten. So habe ich auch schon Makros/Programme geschrieben, die Smarteam- und CATIAfunktionalitäten vereinen. Man kann mit XML-Strukturen arbeiten, viel mehr Elemente auch auf der GUI verwenden und vor allem die Fehlerbehandlung ist um Welten besser etc.. Ich arbeite eigentlich nur noch mit .Net und habe auch so gut wie alle vorhandenen Makros migriert. ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 28. Jun. 2012 09:42 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo Andreas, hier mal etwas Beispielcode zu deiner Frage... Hierfür muss die Library "CATIA V5 InfInterfaces Object Library" importiert werden.
Code: CATIA fangen: 'Variable für CATIA definieren Public CATIA As INFITF.Application 'alternativ: As Object Public Sub GetCatia() Try 'Catia ansprechen CATIA = GetObject(, "CATIA.Application") Catch ex As Exception
'Fehlermeldung, wenn CATIA nicht gefunden oder angesprochen werden kann. MsgBox(StateMsg, vbCritical, "Catia ist nicht verfügbar!") End Try End Sub
Hierfür muss ein FolderDialog dem Form hinzugefügt sein.
Code: Alle geladenen Dateien in einem definierten Ordner sichern: Public Sub SaveFiles() 'Variablen für die Dokumente definieren Dim CatiaDocs As INFITF.Documents 'alternativ: As Object Dim CatiaDoc As INFITF.Document 'alternativ: As Object Dim srcFileName As String Dim DestFolder as String Dim result As DialogResult Try 'geladene Dokumente von CATIA auswählen CatiaDocs = CATIA.Documents 'Anzeigeordner vorgeben OpenFileDialog1.InitialDirectory = C:\Temp 'Folderdialog aufrufen result = = FolderDialog1.ShowDialog() 'Wenn ein Zielordner mit OK ausgewählt wurde nehme diesen, ansonsten C:\Temp If (result = DialogResult.OK) Then DestFolder = FolderDialog1.SelectedPath else DestFolder = C:\Temp End If 'Speicher alle in CATIA geladenen Dokumente in dem "ausgewählten" Ordner For Each CatiaDoc In CatiaDocs srcFileName = CatiaDoc.Name CatiaDoc.SaveAs(DestFolder & "\" & SrcFileName) Next Catch ex As Exception MsgBox(ex.ToString) End Try End Sub
Die Funktion ist ohne Gewähr , da ich das mehr oder weniger nur heruntergetippt und nicht auf Funktion geprüft habe. Da das hier kein Visual Studio mit Autokorrektur ist, kann ich Schreibfehler also nicht in Gänze ausschließen. Es sollte aber passen, insofern die Randparameter stimmen Edit: Hatte noch einen Fehler gefunden ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Technischer Property Manager - Gewährleistungsmanagement (m/w/d) | ...ist Deutschlands größte öffentlich-rechtliche Versorgungsgruppe mit 2,5 Mio. Versicherten und Versorgungsempfängern ...ist mit einem Kapitalanlagevolumen (Marktwert) von 106,8 Mrd. Euro Deutschlands Nummer 1 unter den Altersversorgern ...ist mit ihren rund 1.480 Mitarbeitenden modernes Wirtschaftsunternehmen und staatliche Oberbehörde in einem
| Anzeige ansehen | Gebäude-, Versorgungs-, Sicherheitstechnik |
|
Andreas Schaaf Mitglied
Beiträge: 10 Registriert: 17.11.2010 CATIA V5 R20
|
erstellt am: 02. Jul. 2012 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hu! Sehr geil, vielen Dank! Da ich mich in den letzten Zügen der Bachelorarbeit befinde, werde ich mich damit erst später befassen, aber es sieht wirklich nach einer Art Allheilmittel aus. Super Tipp! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |