Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  iLogic

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PDM System exakt anpassen an Anwenderforderungen (GAIN Collaboration,PDM,PDM System,PLM,PLM System)
Autor Thema:  iLogic (4395 mal gelesen)
3D-User
Mitglied



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

Beiträge: 75
Registriert: 26.12.2012

HP Workstation Z440
Win10 64Bit
IV 2018.2

erstellt am: 31. Dez. 2012 14:29    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 hab da ein kleines Problem mit einer iLogic Regel. (Nicht alles stammt von mir!)
Die Regel soll von allen Bauteilen innerhalb einer Baugruppe das Blatt1:2 aus der dazugehörigen Zeichnung als DWG in ein eigenes Verzeichnis speichern.
Das funktioniert auch schon ganz gut.
Allerdings schaffe ich es nicht das Blatt1:2 als aktives Blatt zu schalten.
Ich hab den Fehler gekennzeichnet.
Wie kann ich in meiner Regel auf das Blatt1:2 umschalten?

Vielen Danke
3D-User

iLogic Regel:

Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument
oAsmName = Left(oAsmDoc.DisplayName, Len(oAsmDoc.DisplayName) -4)
oFileName = ThisDoc.FileName(False) 'without extension
oDWGAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
oPath = "C:\Temp\"            ' < Speicherort der Zeichnungen
strIniFile = "C:\Temp\dwg.ini" ' < Konfigurationsdatei für den DWG-Export

' Prüfen ob eine Baugruppe geöffnet ist
If ThisApplication.ActiveDocument.DocumentType <> kAssemblyDocumentObject Then
MessageBox.Show("Diese Funktion kann nur in einer Baugruppe (.iam) ausgeführt werden!", _
"INFO")
Exit Sub
End If

'Ordnername für die Zeichnungen
oFolder = oPath & "\" & oAsmName & " - Zeichnungen"

'Prüfen ob es den Ordner gibt, wenn nicht wird er erstellt
If Not System.IO.Directory.Exists(oFolder) Then
    System.IO.Directory.CreateDirectory(oFolder)
End If

'Zeichnungen einer Baugruppe werden geöffnet
'Modelle und Zeichnungen müssen den gleichen Namen haben
'Modelle und Zeichnungen müssen im gleichen Ordner liegen
Dim oRefDocs As DocumentsEnumerator
oRefDocs = oAsmDoc.AllReferencedDocuments
Dim oRefDoc As Document

For Each oRefDoc In oRefDocs
idwPathName = Left(oRefDoc.FullDocumentName, Len(oRefDoc.FullDocumentName) - 4) & ".idw"

'Prüfen ob das Modell eine Zeichnung hat
If(System.IO.File.Exists(idwPathName)) Then
Dim oDrawDoc As DrawingDocument
oDrawDoc = ThisApplication.Documents.Open(idwPathName, True)
oFileName = Left(oRefDoc.DisplayName, Len(oRefDoc.DisplayName) -4)
On Error Resume Next 'PDF ist geüffnet oder schreibgeschützt, EXIT

'Dateityp des Modells wird erkannt (.iam oder .ipt)
oModellTyp = Right(oRefDoc.DisplayName, 4)

'Anzahl der Blätter In einer Zeichnung wird ermittelt
Dim oSheets As Sheets
oSheets = oDrawDoc.Sheets

' Prüfen ob das Modell eine Baugruppe ist mehr als ein Blatt hat
If oModellTyp = ".ipt" And oSheets.Count > 1 Then

'Blatt 2 aktivieren
oDocument = ThisApplication.ActiveDocument
Blatt1 = oDocument.sheets.item(1).Name
Blatt2 = oDocument.sheets.item(2).Name
ActiveSheet = ThisDrawing.Sheet(Blatt2)    '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  Fehler

'DWG-Export vorbereiten
If oDWGAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then
oOptions.Value("Export_Acad_IniFile") = strIniFile
End If

'Pfad mit Dateinamen erstellen (ohne Rev)
oDataMedium.FileName = oFolder & "\" & oFileName & ".dwg"

'Datei speichern
oDWGAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

'Zeichnung der Hauptbaugruppe schließen
oDrawDoc.Close
End If
'Zeichnung schließen
oDrawDoc.Close
End If
'wenn das Modell keine Zeichnung hat - nicht tun
Next

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 31. Dez. 2012 18:44    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 3D-User 10 Unities + Antwort hilfreich

Hi

Da ist kein Fehler, aber vermutlich ein paar Zeilen weiter oben:

Code:
If oModellTyp = ".ipt" And oSheets.Count > 1 Then

Was soll in einer Baugruppe vom Typ IPT sein?

------------------
MfG
Ralf

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

3D-User
Mitglied



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

Beiträge: 75
Registriert: 26.12.2012

HP Workstation Z440
Win10 64Bit
IV 2018.2

erstellt am: 01. Jan. 2013 14:13    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 rkauskh
Danke für deine Antwort.
Das Problem liegt aber wo anders.

Die Regel soll von einer geöffneten Baugruppe alle enthaltenen Laserschnittzeichnungen als .DWG in einen neuen Ordner herausspeichern. Da aber in einer kompletten Baugruppe auch andere Teile als nur Blechteile mit Laserzuschnitt enthalten sind müssen diese zuerst herausgefiltert werden.

Folgende Teile werden hausgefiltert:
- Bauteile/Baugruppen die keine Zeichnung haben > Normteile oder Kaufteile
- Zeichnung einer Baugruppe > hier sind keine Schnittzeichnungen enthalten
- Zeichnungen von Bauteilen die kein Blatt2 haben > Schnittzeichnungen sind immer auf Blatt2

Von den jetzt noch übrig gebliebenen Bauteilen soll immer nur das Baltt2 als .dwg herausgespeichert werden. Das funktioniert auch schon ganz gut, bis auf das Umschalten auf Blatt2. (Wenn man die Fehlerhafte Zeile herausnimmt läuft die Regel wunderbar.)

Das Problem ist Folgendes:
Die Regel wird von einer Baugruppe aus gestartet. Dadurch ist die .iam das aktive Dokument.
Wenn ich nun „ActiveSheet = ThisDrawing.Sheet(Blatt2)“ anwende bekomme ich die Fehlermeldung:
„ThisDrawing: Dieses Dokument "12345678.iam" ist keine Zeichnung.“
Ist ja eigentlich auch richtig, da das geöffnete Dokument zur Zeit der Regelanwendung  eine .iam ist.
Erst im Laufe der Regelausführung werden dann die einzelnen Zeichnungen geöffnet.

Also, wie kann ich auf Blatt2 Umschalten, oder wie kann ich “DWGAddln“ sagen das er mir nur das Blatt2 speichern soll?

Danke, und ein Frohes Neues Jahr 2013!!!
3D-User

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 01. Jan. 2013 19: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 3D-User 10 Unities + Antwort hilfreich

Hi

Die Meldung sagt's dir eigentlich schon. Du mußt die Zeichnung zum aktiven Dokument machen. Versuch mal die Zeile

Code:
oDocument = ThisApplication.ActiveDocument

wegzulassen und ersetze oDocument durch oDrawDoc in den folgenden beiden Zeilen

Code:

Blatt1 = oDocument.sheets.item(1).Name
Blatt2 = oDocument.sheets.item(2).Name

------------------
MfG
Ralf

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

3D-User
Mitglied



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

Beiträge: 75
Registriert: 26.12.2012

HP Workstation Z440
Win10 64Bit
IV 2018.2

erstellt am: 01. Jan. 2013 20:46    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 rkauskh

Ich hab's probiert, bringt aber leider keine Änderung.
Ich hab schon alle möglichen Variablen ausprobiert, leider auch kein Erfolg.
Die Fehlermeldung „ThisDrawing: Dieses Dokument "12345678.iam" ist keine Zeichnung.“ kommt ja direkt nach >„Regel ausführen“<, beim kompilieren.  Also die Regel ist eigentlich noch gar nicht gelaufen.
Irgendetwas haben wir übersehen oder vergessen!?!

MFG
3D-User

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 02. Jan. 2013 09:50    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 3D-User 10 Unities + Antwort hilfreich

Moin

Dann mach mal aus

Code:
ActiveSheet = ThisDrawing.Sheet(Blatt2)

Code:
ActiveSheet = oDrawDoc.Sheet(Blatt2)

ThisDrawing setzt voraus, das die Zeichnung das aktive Dokument ist und vermutlich, das die Regel von einer IDW aus ausgeführt wird.

------------------
MfG
Ralf

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

3D-User
Mitglied



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

Beiträge: 75
Registriert: 26.12.2012

HP Workstation Z440
Win10 64Bit
IV 2018.2

erstellt am: 02. Jan. 2013 13:06    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 rkauskh

Bringt leider auch nichts!
Noch immer die gleiche Fehlermeldung.
Ich denke "ActiveSheet" bezieht sich schon auf eine .idw!

MFG
3D-User

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 02. Jan. 2013 20: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 Nur für 3D-User 10 Unities + Antwort hilfreich

Hi

So, ich hab mir mal eben eine BG mit Bauteilen und Zeichnung zum Testen erstellt. Ersetze bitte deine Fehlerzeile mit

Code:
oDrawDoc.Sheets(Blatt2).Activate


------------------
MfG
Ralf

[Diese Nachricht wurde von rkauskh am 02. Jan. 2013 editiert.]

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

3D-User
Mitglied



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

Beiträge: 75
Registriert: 26.12.2012

HP Workstation Z440
Win10 64Bit
IV 2018.2

erstellt am: 02. Jan. 2013 21:55    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 rkauskh

Halleluja!!!, genau das war’s was ich gesucht habe.
Super, vielen Dank.

Jetzt kann ich weiter an meinem Projekt arbeiten.
Ich möchte noch zwischen Laserschnitt und Brennschnitt unterscheiden und diese in separate Verzeichnisse schieben.
Dann möchte ich gleich noch eine Excel-Stückliste zu den Schnittteilen erstellen lassen.

Also, los get’s

MFG
3D-User

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

Volker E
Mitglied
Konstrukteur


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

Beiträge: 164
Registriert: 20.08.2012

Win 7 64 bit,
Inventor 2014 Sp2 64 bit
Intel Xeon CPU E5-1607 3,00 GHz 32GB RAM
Nvidia Quadro 4000
Space Explorer

erstellt am: 20. Sep. 2013 14:21    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 3D-User 10 Unities + Antwort hilfreich


Unbenannt.JPG

 
Hallo zusammen

Hab da ein Problem mit der Regel von 3D User

Ich habe mir den Code von 3D User mal bei mir in eine Regel gepackt.
Der Code sieh soweit gut aus. Bei mir kommt aber eine Fehlermeldung die ich nicht verstehe kann mir einer hier auf die Sprünge helfen?

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)2024 CAD.de | Impressum | Datenschutz