Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  SaveAs klappt nicht

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  SaveAs klappt nicht (1783 mal gelesen)
hawu
Mitglied
Auszubildender


Sehen Sie sich das Profil von hawu an!   Senden Sie eine Private Message an hawu  Schreiben Sie einen Gästebucheintrag für hawu

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 04. Dez. 2008 09:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo

ich versuche ein neu erstelltes DrawingDocument mit SaveAs zu speichern.

Das Makro erstellt eine FrontAnsicht eines geöffneten Parts,

auf einem Blatt, das mit Add erstellt wird.

Jetzt würd ich das Dokument gerne noch unter dem Partnamen speichern lassen.

Irgendwas mach ich aber falsch und ich hab keine Idee woran es liegen könnte.


Das Makro sieht so aus:

'****************************************************************

Sub CATMain()

Set oPart = CATIA.ActiveDocument.Part   

Set oDrawing = CATIA.Documents.Add("Drawing")

Set oSheet = oDrawing.Sheets.ActiveSheet

'------------CREATE VIEW "Front View"

Set oFrontView = oSheet.Views.Add("Front View")

Set oFrontViewGB = oFrontView.GenerativeBehavior

oFrontViewGB.Document = oPart

oFrontViewGB.DefineFrontView 1, 0, 0, 0, 1, 0

oFrontView.x = 150

oFrontView.y = 70

oFrontViewGB.Update

'---------REFRAME

Set specsAndGeomWindow1 = CATIA.ActiveWindow

Set specsViewer1 = specsAndGeomWindow1.ActiveViewer

specsViewer1.Reframe

specsViewer1.Reframe

'------------PARTNAME AUS FRONTVIEW

Set PartDrawn = oSheet.Views.Item("Front View").GenerativeBehavior.Document

oName = PartDrawn.Parent.Name

'------------SAVE AS

str = oName

intLen = Len(str)

intCharacters = intLen - 8

saveName = Left(oName, intCharacters)

Datei = saveName & ".CATDrawing"

'MsgBox Datei    ' !!!Bis hier scheint alles zu funktionieren!!!

CATIA.DisplayFileAlerts = False

CATIA.ActiveDocument.SaveAs Datei    'Ab hier nicht mehr

End Sub

'***********************************************************


Viele Gruesse HaWu

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

V5Playaz
Mitglied
Dipl.-Ing (BA)


Sehen Sie sich das Profil von V5Playaz an!   Senden Sie eine Private Message an V5Playaz  Schreiben Sie einen Gästebucheintrag für V5Playaz

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 04. Dez. 2008 11:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für hawu 10 Unities + Antwort hilfreich

Hallo,

versuche es doch mal mit:
oDrawing.saveas Datei

wenn du CATIA.ActiveDocument zum speichern benutzt, musst du zuerst sicherstellen, dass auch wirklich das Part/Zeichnung aktiv ist, welches du speichern willst.

Es kann hier ein Problem sein, dass du versuchst dein Part(weil viell. noch aktiv) als *.catdrawing zu speichern.

grüße Dominik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Florian Held
Mitglied
Teamleiter CAD-Solutions


Sehen Sie sich das Profil von Florian Held an!   Senden Sie eine Private Message an Florian Held  Schreiben Sie einen Gästebucheintrag für Florian Held

Beiträge: 81
Registriert: 07.09.2006

erstellt am: 04. Dez. 2008 11:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für hawu 10 Unities + Antwort hilfreich

Hi,

wie lautet denn der Inhalt deiner Variable Datei, bis wohin das Makro funktioniert?

Würde zudem sicherstellen dass das Part auch gespeichert ist und nicht "Neu" und dass es die Ansicht "Front View" auch wirklich gibt bzw. die View nicht über den Namen sondern über die Erste Ansicht/Selektion definieren.

------------------
MfG,
Florian Held

[Diese Nachricht wurde von Florian Held am 04. Dez. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

hawu
Mitglied
Auszubildender


Sehen Sie sich das Profil von hawu an!   Senden Sie eine Private Message an hawu  Schreiben Sie einen Gästebucheintrag für hawu

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 04. Dez. 2008 12:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@ V5Playaz

Hallo,

wenn ich das makro ausführe, ist nur ein part offen und die neu
erstellte drawing. mit oDrawing.SaveAs Datei klappts leider auch nicht.
Wie kann ich denn feststellen, welches Document aktiv ist? Oder wie kann
ich sicherstellen, daß die Drawing aktiv ist?

@Florian Held

Hallo,
der Inhalt der Variable, setzt sich aus dem Dateinamen des Parts ohne ".CATPart"
und der Endung ".CATDrawing" zusammen. Der schaut lt. MsgBox auch soweit ok aus.

Die Ansicht "Front View" wird erzeugt, bis dahin läuft das Makro durch.

Dann kommt die Fehlermeldung:  Das Verfahren "SaveAs ist fehlgeschlagen".

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 04. Dez. 2008 12:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für hawu 10 Unities + Antwort hilfreich

Servus
Versuch mal den kopletten Pfad anzugeben (ggf "hart" gecoded).
Oder versuch mal (so stehts in der Doku):
oDrawing.SaveAs (Datei)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

K.Siebert
Mitglied
Tech Zeichner


Sehen Sie sich das Profil von K.Siebert an!   Senden Sie eine Private Message an K.Siebert  Schreiben Sie einen Gästebucheintrag für K.Siebert

Beiträge: 415
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 04. Dez. 2008 12:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für hawu 10 Unities + Antwort hilfreich

Hallo,

Hier ist eine Diskussion über SaveAs http://ww3.cad.de/foren/ubb/Forum137/HTML/002554.shtml

und du musst den Kompletten Pfad angeben das Verzeichnis list du mit Path aus

hier ein Lösungsvorschlag

Code:
'__________________________Dateipad LESEN___________________________________________
Dateipfad = drawingView1.GenerativeBehavior.document.ReferenceProduct.Parent.Path
'FullName =  drawingView1.GenerativeBehavior.document.ReferenceProduct.Parent.Fullname
Name = drawingView1.GenerativeBehavior.document.ReferenceProduct.Parent.name
'________________________________________________________________________________________

'__________________________________Datei endung Part LÃÂÂschen____________________________
LoeschEndung = Left(Name, InStrRev(Name, ".CAT") - 1)
'LoeschEndung = Left(Name, InStrRev(Name, ".") - 1)
'LoeschEndung = Left( Name, Len( Name) -7 ) 'Right
'__________________________________________________________________________________________

'On Error Resume Exit sub
'__________________________Test________________________________________________________________
'Dim Box, Speicher As Long
'MsgBox "Dateipfad:" & Chr (13) & Chr (10)  & Dateipfad  &  "\" & LoeschEndung & "CATDrawing"  ,64, "GESPEICHERT"
'_________________________________________________________________________________________________________________

CATIA.DisplayFileAlerts = False
Datei = Dateipfad  &  "\" & LoeschEndung & ".CATDrawing"
CATIA.ActiveDocument.SaveAS Datei
CATIA.ActiveDocument.Close


------------------
Sei Schlau bleib Dumm !!?!! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Florian Held
Mitglied
Teamleiter CAD-Solutions


Sehen Sie sich das Profil von Florian Held an!   Senden Sie eine Private Message an Florian Held  Schreiben Sie einen Gästebucheintrag für Florian Held

Beiträge: 81
Registriert: 07.09.2006

erstellt am: 04. Dez. 2008 13:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für hawu 10 Unities + Antwort hilfreich

Hi,

ich stimme K.Siebert zu und vermute auch den Fehler in der Variable Datei. je nachdem ob dass speichern DL-Namebasierend oder mit Absoluten Pfad oder im Netzwerk usw. erfolgt, ergeben sich hier unterschiede wie der Pfad aufgebaut sein muss.

Bei DL-Names zum Beispiel kann das Verfahren fehlschlagen, je nachdem wie der DL-Name angegeben wird:

Code:

"[][]\Pfad\Dateiname.CatDrawing"
chr(1) & chr(2) & "Pfad\Dateiname.CatDrawing"
V5dlnames:// oder so ähnlich etc.

Daher auch meine Frage nach einem Beispiel wie die Variable Datei aufgebaut ist 

------------------
MfG,
Florian Held

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

K.Siebert
Mitglied
Tech Zeichner


Sehen Sie sich das Profil von K.Siebert an!   Senden Sie eine Private Message an K.Siebert  Schreiben Sie einen Gästebucheintrag für K.Siebert

Beiträge: 415
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 04. Dez. 2008 13:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für hawu 10 Unities + Antwort hilfreich

@ Florian Held
schau mal bei der Diskussion (link oben) da gibt es einen Beitrag von CAMiCADse

------------------
Sei Schlau bleib Dumm !!?!! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

hawu
Mitglied
Auszubildender


Sehen Sie sich das Profil von hawu an!   Senden Sie eine Private Message an hawu  Schreiben Sie einen Gästebucheintrag für hawu

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 04. Dez. 2008 13:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von bgrittmann:
Servus
Versuch mal den kopletten Pfad anzugeben (ggf "hart" gecoded).
Oder versuch mal (so stehts in der Doku):
[i]oDrawing.SaveAs (Datei)

Gruß
Bernd

[/i]


Hallo,

Mit der ganzen Pfadangabe funktionierts prima.

Grüsse Harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

hawu
Mitglied
Auszubildender


Sehen Sie sich das Profil von hawu an!   Senden Sie eine Private Message an hawu  Schreiben Sie einen Gästebucheintrag für hawu

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 04. Dez. 2008 14:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo und Danke an alle.

Mit der Dateipfadabfrage

Dateipfad = drawingView1.GenerativeBehavior.document.ReferenceProduct.Parent.Path

aus dem obigen Post von k.Siebert hats nicht funktioniert, weil man da denke ich

ein schon bestehendes DrawingDokument benötigt.

Da das Drawing im selben Verzeichnis wie de Part, der abgeleitet wird gespeichert

werden soll, gehts aber mit dem Pfad des Parts.

Hätt ich vielleicht mal dazusagen sollen, den Pfad hab ich jetzt über folgende Zeile bekommen:

oPath = oPart.Parent.Path

den hab ich auch irgenwo hier aus dem Forum.

Dann nur noch oDrawing.SaveAs oPath & "\" & Datei und es hat funktioniert.

Die Variable Datei ist glaube ich ziemlich umständlich entstanden, daß kann auch in

einer Zeile machen. (Wenn mans kann).

Viele Grüße und nochmal Danke an alle.

hier der funktionierende Code:

'******************************************************************
Sub CATMain()

Set oPart = CATIA.ActiveDocument.Part   

Set oDrawing = CATIA.Documents.Add("Drawing")

Set oSheet = oDrawing.Sheets.ActiveSheet

'------------CREATE VIEW "Front View"

Set oFrontView = oSheet.Views.Add("Front View")

Set oFrontViewGB = oFrontView.GenerativeBehavior

oFrontViewGB.Document = oPart

oFrontViewGB.DefineFrontView 1, 0, 0, 0, 1, 0

oFrontView.x = 150

oFrontView.y = 70

oFrontViewGB.Update

'---------REFRAME

Set specsAndGeomWindow1 = CATIA.ActiveWindow

Set specsViewer1 = specsAndGeomWindow1.ActiveViewer

specsViewer1.Reframe

specsViewer1.Reframe

'------------PARTNAMEN AUS FRONTVIEW

Set PartDrawn = oSheet.Views.Item("Front View").GenerativeBehavior.Document

oName = PartDrawn.Parent.Name

Set oDrawing = CATIA.ActiveDocument

'------------SAVE AS

oPath = oPart.Parent.Path

str = oName

intLen = Len(str)

intCharacters = intLen - 8

saveName = Left(oName, intCharacters)

Datei = saveName & ".CATDrawing"

'MsgBox oPath

CATIA.DisplayFileAlerts = False

oDrawing.SaveAs oPath & "\"  & Datei

End Sub
'*****************************************************************

[Diese Nachricht wurde von hawu am 04. Dez. 2008 editiert.]

[Diese Nachricht wurde von hawu am 04. Dez. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

V5Playaz
Mitglied
Dipl.-Ing (BA)


Sehen Sie sich das Profil von V5Playaz an!   Senden Sie eine Private Message an V5Playaz  Schreiben Sie einen Gästebucheintrag für V5Playaz

Beiträge: 447
Registriert: 12.07.2005

DELL PRECISION 390
3,25 GB RAM
WIN XP PRO SP2
CATIA V5 R16-19
Delmia V5 R19
VB6, VB2008
Adobe Acrobat 9 Pro Extended

erstellt am: 04. Dez. 2008 14:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für hawu 10 Unities + Antwort hilfreich

Hallo Harry,

mit:

Code:
CATIA.ActiveDocument.Name
CATIA.ActiveDocument.Fullname
CATIA.ActiveDocument.path
CATIA.ActiveDocument.product.partnumber

kannst du den Namen und Pfad des aktiven Dokuments auslesen.

Grüße Dominik

[Diese Nachricht wurde von V5Playaz am 04. Dez. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

hawu
Mitglied
Auszubildender


Sehen Sie sich das Profil von hawu an!   Senden Sie eine Private Message an hawu  Schreiben Sie einen Gästebucheintrag für hawu

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 04. Dez. 2008 14:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe die Partnumber aus der erstelletn ansicht ("Front View")

austelesen.

Das bietet Vorteile, wenn man zb den part direkt im product

selektieren und ableiten möchte, bekommt so auch wirklich den namen

des parts.

Mit CATIA.ActiveDocument.Product.Partnumber wird die partnumber

des products zurückgegeben.

das ist eben für den fall, das man sich in einem product befindet

günstiger.


Viele Grüße harry

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz