Autor
|
Thema: cgr, wrl, stl in CATPart konvertieren (93031 mal gelesen)
|
Martin K Mitglied Konstrukteur, CAD Administrator
Beiträge: 126 Registriert: 24.01.2002 Windows XP 32BIT Windows7 64BIT AIX5.3 CATIAV425 CATIA V5 R19 SP03 CATIA V5 R19 SP09 TEST
|
erstellt am: 12. Mrz. 2008 12:39 <-- editieren / zitieren --> Unities abgeben:
Hallo SteffenDas script zum Umwandeln von cgr nach model funktioniert sehr gut. Mein Problem ist die Auswahl der Datei. Ich gehe davon aus, dass das Auswahlfenster im Verzeichnis /tmp mit dem Filter *.cgr geöffnet wird. Geöffnet wird aber immer mein Homeverzeichnis ohne Filter. Fehlt bei mir noch ein Eintrag? Oder ist noch irgendwo ein Fehler? Achtung, habe nur Unix zur Verfügung. Gruß Martin ---------------------------------------------------------------------------------------------- Language="VBSCRIPT" Sub CATMain() sInputFile = CATIA.FileSelectionBox("cgr-Datei auswählen", "/tmp/*.cgr", CatFileSelectionModeOpen) Set oDoc = CATIA.Documents.Read(sInputFile) oDoc.ExportData sInputFile + ".model", "model" oDoc.Close End Sub ---------------------------------------------------------------------------------------------- [Diese Nachricht wurde von Martin K am 12. Mrz. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zhawler Mitglied Dipl.Ing.
Beiträge: 2 Registriert: 08.01.2008
|
erstellt am: 10. Jan. 2008 06:34 <-- editieren / zitieren --> Unities abgeben:
HalloHabe das Problem etwas eingekreist. Wenn in Advanced-Machining der Abtragssimulations-Zwischenstand gespeichrt wird als cgr, kann es vorkommen, das manche POL's "leer" sind und somit nicht gePastet werden können. Im Anhang ist ein cgr-File bei dem das POL199 "defekt" ist. Hoffe jemand kennt einen geeigneten Filter oder sonst ne Lösung. Gruss chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zhawler Mitglied Dipl.Ing.
Beiträge: 2 Registriert: 08.01.2008
|
erstellt am: 08. Jan. 2008 15:47 <-- editieren / zitieren --> Unities abgeben:
HalloBei mir funktioniert es tadellos, bis auf die im Advanced-Machining erstellten .cgr-Files da geht es nicht. Hat jemand da eine Erklärung? Gruss Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1399 Registriert: 13.07.2005
|
erstellt am: 23. Jan. 2007 20:49 <-- editieren / zitieren --> Unities abgeben:
Hallo kri,sorry, mein Fehler! Natürlich muß ich auch die nachfolgende Zeile abändern, da das CATPart ja das letzte und das Model das vorletzte Document ist, wenn ich nichts schließe! Also lauten die Zeilen so: Code: oDoc.SaveAs sInputFileName & ".CATPart" 'oDoc.Close Set oDoc = CATIA.documents.Item(CATIA.documents.Count - 1) oDoc.Close
Ich hoffe, jetzt stimmt es! mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kri Mitglied Dipl. Ing. Konstruktion / FEM
Beiträge: 965 Registriert: 15.12.2004 Hauptrechner CATIA V5R12, R14, R16 32/64Bit Windows XP Pro X64 Edition Intel XEON E5345 4x2,33GHz 16GB RAM Quadro FX 3450/4000 SDI 256MB - Zweitrechner CATIA V5R12, R14, R16 32/64Bit Windows XP Pro X64 Edition 2x Intel Pentium D 3.2GHz 4GB RAM Quadro FX 3450/4000 SDI 256MB
|
erstellt am: 23. Jan. 2007 09:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Lusilnie,die Sache mit dem Hochkomma/löschen funktioniert bei mir nicht richtig. Leider wird das CATPart geschlossen und das Model bleibt offen. - lösche ich die vorletzte "oDoc.Close" bleibt das Model offen - lösche ich die letzte "oDoc.Close" bleibt das Model offen - lösche ich die vorletzte und letzte "oDoc.Close" bleiben das Model & CATPart offen Also hab ich beide gelöscht. Dann muß ich zwar das Model manuell schließen. Aber das Script läuft schneller durch als mit dem Öffnen.Befehl am Ende.
------------------ kri Warum wollen Leute, die nicht einmal einen PC sauber hoch und wieder runter fahren können, entscheiden welches Spiel ich kaufe/spiele? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stahly Mitglied CAX-Koordinator
Beiträge: 1014 Registriert: 29.07.2002 W7 x64 - Fujitsu H700 - V5 - PRO.FILE - ProE
|
erstellt am: 23. Jan. 2007 07:05 <-- editieren / zitieren --> Unities abgeben:
Super Makro!Danke an alle - kann man gut gebrauchen! bis dahin... stahly ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1399 Registriert: 13.07.2005
|
erstellt am: 22. Jan. 2007 21:10 <-- editieren / zitieren --> Unities abgeben:
Hallo kri,auch eine Möglichkeit, doch es geht viel einfacher: Mit nur einem Zeichen, einem ' an der richtigen Stelle (-> am Anfang der Zeile nach oDoc.SaveAs sInputFileName & ".CATPart"), damit das CATPart einfach nicht geschlossen wird! Durch dieses Zeichen am Anfang wird die Zeile als "Kommentar" deklariert. Alternativ kann man auch einfach die Zeile löschen, oder eine Abfrage einbringen, oder, oder,... Sieht dann so aus: Code: Sub CATMain() Dim sInputFile As String sInputFile = CATIA.FileSelectionBox(".cgr-Datei auswaehlen", "*.cgr", CatFileSelectionModeOpen) Dim sInputFileName As String sInputFileName = Left(sInputFile, InStrRev(sInputFile, ".") - 1) Dim sInputFileNameV4 As String If Len(sInputFileName) > 72 Then sInputFileNameV4 = Left(sInputFileName, 72) & ".model" Else sInputFileNameV4 = sInputFileName & ".model" End If Dim oDoc As document Set oDoc = CATIA.documents.Read(sInputFile) oDoc.ExportData sInputFileNameV4, "model" oDoc.Close Set oDoc = CATIA.documents.Open(sInputFileNameV4) Dim docSel As selection Set docSel = oDoc.selection If CATIA.SystemConfiguration.Release < "16" Then docSel.Search "Name=CAT_1000_1" Else docSel.Search "V4Model.MASTER" End If docSel.Copy Dim iPartNumber As String iPartNumber = Mid(sInputFileName, InStrRev(sInputFileName, CATIA.FileSystem.FileSeparator) + 1) Set oDoc = CATIA.documents.Add("Part") Dim iProduct As Product Set iProduct = oDoc.Product iProduct.PartNumber = iPartNumber Set docSel = oDoc.selection docSel.Add iProduct docSel.Paste iProduct.Update oDoc.SaveAs sInputFileName & ".CATPart" 'oDoc.Close Set oDoc = CATIA.documents.Item(CATIA.documents.Count) oDoc.Close End Sub
mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kri Mitglied Dipl. Ing. Konstruktion / FEM
Beiträge: 965 Registriert: 15.12.2004 Hauptrechner CATIA V5R12, R14, R16 32/64Bit Windows XP Pro X64 Edition Intel XEON E5345 4x2,33GHz 16GB RAM Quadro FX 3450/4000 SDI 256MB - Zweitrechner CATIA V5R12, R14, R16 32/64Bit Windows XP Pro X64 Edition 2x Intel Pentium D 3.2GHz 4GB RAM Quadro FX 3450/4000 SDI 256MB
|
erstellt am: 22. Jan. 2007 18:02 <-- editieren / zitieren --> Unities abgeben:
Hallo,hab da selbst was gebastelt. Nicht das ich wirklich verstehe was ich da gemacht habe. Der Code ist aber gut lesbar. Da hab ich halt mit Copy/Paste probiert und ne Bezeichnung ausgewechselt. Geht garantiert viel eleganter. Jetzt wird das erstellte CATPart nach der Erstellung geöffnet. Sub CATMain() Dim sInputFile As String sInputFile = CATIA.FileSelectionBox(".cgr-Datei auswaehlen", "*.cgr", CatFileSelectionModeOpen) Dim sInputFileName As String sInputFileName = Left(sInputFile, InStrRev(sInputFile, ".") - 1) Dim sInputFileNameV4 As String If Len(sInputFileName) > 72 Then sInputFileNameV4 = Left(sInputFileName, 72) & ".model" Else sInputFileNameV4 = sInputFileName & ".model" End If Dim oDoc As document Set oDoc = CATIA.documents.Read(sInputFile) oDoc.ExportData sInputFileNameV4, "model" oDoc.Close Set oDoc = CATIA.documents.Open(sInputFileNameV4) Dim docSel As selection Set docSel = oDoc.selection If CATIA.SystemConfiguration.Release < "16" Then docSel.Search "Name=CAT_1000_1" Else docSel.Search "V4Model.MASTER" End If docSel.Copy Dim iPartNumber As String iPartNumber = Mid(sInputFileName, InStrRev(sInputFileName, CATIA.FileSystem.FileSeparator) + 1) Set oDoc = CATIA.documents.Add("Part") Dim iProduct As Product Set iProduct = oDoc.Product iProduct.PartNumber = iPartNumber Set docSel = oDoc.selection docSel.Add iProduct docSel.Paste iProduct.Update oDoc.SaveAs sInputFileName & ".CATPart" oDoc.Close Set oDoc = CATIA.documents.Item(CATIA.documents.Count) oDoc.Close Set oDoc = CATIA.documents.Open(sInputFileName & ".CATPart") End Sub
------------------ kri Warum wollen Leute, die nicht einmal einen PC sauber hoch und wieder runter fahren können, entscheiden welches Spiel ich kaufe/spiele? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kri Mitglied Dipl. Ing. Konstruktion / FEM
Beiträge: 965 Registriert: 15.12.2004 Hauptrechner CATIA V5R12, R14, R16 32/64Bit Windows XP Pro X64 Edition Intel XEON E5345 4x2,33GHz 16GB RAM Quadro FX 3450/4000 SDI 256MB - Zweitrechner CATIA V5R12, R14, R16 32/64Bit Windows XP Pro X64 Edition 2x Intel Pentium D 3.2GHz 4GB RAM Quadro FX 3450/4000 SDI 256MB
|
erstellt am: 22. Jan. 2007 09:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Lusilnie,das Script läuft klasse. Kann Dir leider keine U`s mehr geben. Geht wohl nur einmal pro Thread. Eine Frage hätte ich noch zur "Benutzerfreundlichkeit". Ist es möglich, das Script so abzuändern, das nach dem speichern als *CATPart, das Catpart auf den Schirm bleibt? Man war das ein schwerer Satz . Dann kann man das entstandene Part direkt in sein Arbeits-Product ziehen.
------------------ kri Warum wollen Leute, die nicht einmal einen PC sauber hoch und wieder runter fahren können, entscheiden welches Spiel ich kaufe/spiele? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1399 Registriert: 13.07.2005
|
erstellt am: 20. Jan. 2007 01:01 <-- editieren / zitieren --> Unities abgeben:
Hallo kri,danke für den Hinweis mit der Namensbegrenzung. Ist wirklich ein V4-Problem. Also basteln wir auch das noch in den CODE: Code: Sub CATMain() Dim sInputFile As String sInputFile = CATIA.FileSelectionBox(".cgr-Datei auswaehlen", "*.cgr", CatFileSelectionModeOpen) Dim sInputFileName As String sInputFileName = Left(sInputFile, InStrRev(sInputFile, ".") - 1) Dim sInputFileNameV4 As String If Len(sInputFileName) > 72 Then sInputFileNameV4 = Left(sInputFileName, 72) & ".model" Else sInputFileNameV4 = sInputFileName & ".model" End If Dim oDoc As document Set oDoc = CATIA.documents.Read(sInputFile) oDoc.ExportData sInputFileNameV4, "model" oDoc.Close Set oDoc = CATIA.documents.Open(sInputFileNameV4) Dim docSel As selection Set docSel = oDoc.selection If CATIA.SystemConfiguration.Release < "16" Then docSel.Search "Name=CAT_1000_1" Else docSel.Search "V4Model.MASTER" End If docSel.Copy Dim iPartNumber As String iPartNumber = Mid(sInputFileName, InStrRev(sInputFileName, CATIA.FileSystem.FileSeparator) + 1) Set oDoc = CATIA.documents.Add("Part") Dim iProduct As Product Set iProduct = oDoc.Product iProduct.PartNumber = iPartNumber Set docSel = oDoc.selection docSel.Add iProduct docSel.Paste iProduct.Update oDoc.SaveAs sInputFileName & ".CATPart" oDoc.Close Set oDoc = CATIA.documents.Item(CATIA.documents.Count) oDoc.Close End Sub
So sollte auch dieses Problem behoben sein! (Hoffe ich, habe es in grenzenloser Selbstüberschätzung nicht getestet! {->Kein CATIA da!} ) @Thomas Harmening: Danke schön, gern gescheh'n!
mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern [Diese Nachricht wurde von Lusilnie am 20. Jan. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige:
Anzeige: (Infos zum Werbeplatz >>)
|