| |
| Dassault PLM Integrationen mit der 3DViewStation, eine Pressemitteilung
|
Autor
|
Thema: Speicherpfad auslesen (1757 / mal gelesen)
|
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 02. Jan. 2018 14:48 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Jan. 2018 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
Servus Schau mal in der Doku welche Methoden dir ein Document-Objekt bietet (Path und FullName hören sich doch vielversprechend an) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 02. Jan. 2018 15:31 <-- editieren / zitieren --> Unities abgeben:
Soweit hab ich das hinbekommen. Jetzt soll er noch einen Ordner tiefer und dann (\Normteile\auswerfer.catpart ) hinzufügen. Wie könnte das sein ? Language="VBSCRIPT" Sub CATMain() Dim targetfolder targetfolder = CATIA.ActiveDocument.Path (?) MsgBox targetfolder End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Jan. 2018 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
Servus Wie wäre es wenn du dir mal die Grundlagen zu VB(A) anschaust? Beispiel: Code: Strfolder = CATIA.ActiveDocument.Path StrTargetPath = Strfolder & "\Normteile\auswerfer.CATPart"
Bitte in Zukunft vor dem stellen einer Frage auch mal die Suchfunktion verwenden. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 02. Jan. 2018 16:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, Danke nochmals und sorry für meine Fragen. Da Ergebnis aus Strfolder = CATIA.ActiveDocument.Path = C:\Part\Produkt\ Da Ergebnis aus StrTargetPath = C:\Part\Produkt\Normteile\auswerfer.CATPart Da Ergebnis sollte aber eine Ordnerebene tiefer sein = C:\Part\Normteile\auswerfer.CATPart wie kann ich so was machen hab nicht gefunden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Jan. 2018 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
Servus Dann schau dir mal die String-Methoden Left und InStrRev an. zB Code: StrPath = left(StrSubFolderPath, InStrRev(StrSubFolderPath,"\"))
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 03. Jan. 2018 11:25 <-- editieren / zitieren --> Unities abgeben:
Danke jetzt funktioniert es. Datei Neu aus im Produkt hier mein Code Sub CATMain() Strfolder = CATIA.ActiveDocument.Path StrPath = Left(Strfolder, InStrRev(Strfolder, "\")) StrTargetPath = StrPath & "Startup\_.catpart" MsgBox StrTargetPath Dim PListe As Products Set PListe = CATIA.ActiveDocument.Product.Products Dim oPartDoc As Document Set oPartDoc = CATIA.Documents.NewFrom(StrTargetPath) Antwort_Pos = InputBox("Beispiel: 100 ", " Positionsummer", "") Zahl = Antwort_Pos If Antwort_Pos = "" Then oPartDoc.Close If Antwort_Pos = "" Then MsgBox ("Es wurde keine Pos Nr.: eingetragen!") If Antwort_Pos = "" Then Exit Sub
Antwort_Bez = InputBox("Beispiel: kern_as", "Bauteil Bezeichnung", "") Zahl = Antwort_Bez If Antwort_Bez = "" Then oPartDoc.Close If Antwort_Bez = "" Then MsgBox ("Es wurde keine Bauteil Bezeichnung eingetragen!") If Antwort_Bez = "" Then Exit Sub Dim part1 As Part Set part1 = oPartDoc.Part
Dim parameters1 As Parameters Set parameters1 = part1.Parameters Dim Pos As Parameter Set Pos = parameters1.Item("Pos Nr.:") Pos.Value = Antwort_Pos Dim Bez As Parameter Set Bez = parameters1.Item("Bauteil Bezeichnung") Bez.Value = Antwort_Bez Dim oNewComponent As Product Set oNewComponent = PListe.AddExternalComponent(oPartDoc) oPartDoc.Close End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 05. Mrz. 2018 14:39 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich habe nochmals eine Frage: Wie kann ich mehrere Ordnerebenen zurückspringen und diesen Pfad dann auslesen. Mein Code (Teil) schaut aktuell so aus. Strfolder = CATIA.ActiveDocument.Path StrPath = Left(Strfolder, InStrRev(Strfolder, "\")) StrTargetPath = StrPath & "Startup\test.catpart" MsgBox StrTargetPath Das aktive Part liegt unter c:\catia100\part\test Das neu Part liegt unter c:\catia100\Startup Da der Ordnernamen (catia100) immer anders ist und die länge des Ordneramen variiert komme ich so nicht weiter. wer kann mir helfen. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 05. Mrz. 2018 15:26 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
|
Esterbauer Mitglied
Beiträge: 62 Registriert: 26.09.2008
|
erstellt am: 05. Mrz. 2018 15:34 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 743 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 06. Mrz. 2018 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für Esterbauer
Hallo, ich habe dir mal eine YouTube Suche hier reinkopiert. https://www.youtube.com/results?search_query=vba+split Ein ähnliche Suche könnte man auch in Google starten. Letztlich geht es darum einen String anhand eines Zeichen (in deinem Fall = \) in einzelne Segmente zu zerlegen die dann in einem Array gespeichert werden das wiederum den einfachen Zugriff auf die einzelnen Segmente erlaubt. ************************* An dieser Stelle mal eine allgemeine Beobachtung von mir, sowie meine persönliche Meinung dazu: Immer öfter stelle ich hier (und auch in anderen Foren) eine Anspruchsmentalität gepaart mit dem Unvermögen (oder auch Unwillen) sich selber intensiv(er) mit einem Thema zu beschäftigen (oder mal die Foren/Google/YouTube Suche zu bemühen, geschweige denn ein Buch zu lesen). Frei nach dem (freilich hier überspitztem) Motto "Ich habe ein Problem, löst das für mich (kostenfrei natürlich)". Dieses überzogene Anspruchsverhalten beschränkt sich leider nicht nur auf Foren dieser Art, sondern scheint mehr ein Phänomen aus unserer Gesellschaft zu sein das sich hier und anderswo nur widerspiegelt. Gerne hilft man hier und anderswo den Einstieg in ein Thema zu finden oder einen Ansatz zur Problemlösung zu geben, fertige Lösungen zu allem und jedem zu bekommen ist und kann nicht Sinn und Zweck sein (zumal die Formulierung der Aufgabenstellung gelegentlich - nicht in diesem Fall - echt unterirdisch ist). Abgesehen davon das man nichts dazulernt wenn man Dinge einfach nur per Copy&Paste übernimmt. Mich persönlich hat u.a. dieses Forum soweit gebracht, das ich mit diesem "Kram" mittlerweile meinen Lebensunterhalt verdiene und das ist auch ein Grund warum ich mit meinen Beiträgen versuche diesem Forum etwas zurückzugeben (und das auch gerne und mit Spaß) Wo führt es eine Gesellschaft hin wenn diese Verhaltensweisen immer mehr um sich greift? Wie gesagt meine Beobachtung und meine Meinung. Ausdrücklich möchte ich betonen das ich hier den Kollegen Esterbauer nicht persönlich angreifen möchte (ich kenne seine persönliche Situation nicht und da gebe es hier und anderswo durchaus "schlimmere" Beispiele), ich habe das lediglich mal als Anlass genommen um meinen Ärger und meine Meinung über dieses Phänomen mitzuteilen und vielleicht/hoffentlich die eine oder andere Selbstreflexion zu provozieren. @Esterbauer: Das soll dich nun bitte nicht davon abhalten hier weiter(e) Fragen zu stellen, es wäre nur schön wenn zu erkennen wäre das du zu mindestens versucht hast (z.B. durch ein Codebeispiel) das Problem selber zu lösen. Und das kann ich aus dem Satz "und wie soll das funktionieren ?" leider nicht raus lesen - darum mein Statement. Also bitte nicht persönlich nehmen. Mit versöhnlichen Grüßen Randle
------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |