Autor
|
Thema: Zugriff auf Section cut im Produkt (TPSViews) (2618 mal gelesen)
|
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 12. Jun. 2008 14:27 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Hat es jemand schon mal geschafft, auf die TPSView-Collection zuzugreifen? Laut Doku ist diese Collection unter FTA zu finden; nur zugreifen kann ich nicht Ich komme bis zum AnnotationSet aber dann ist Schluss. Ich kann zwar auch neue Section cuts erzeugen (über TPSViewFactory) aber auf bereits exitierende Views (TPSView) kann ich nicht zugreifen. Wäre schön, wenn jemand mir einen Schubs geben könnte. SG Jens Hansen ------------------ Inoffizielle CATIA-Hilfeseite Private Seite Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 12. Jun. 2008 14:40 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Ich habe mich zwar noch nie in dem Bereich bewegt, in dem du dich gerade bewegst, aber bei mir hilft es oft, dass wenn ich an die "Unterobjekte" nicht heran komme ein For each auf die Collection zu machen. MfG Lila Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 12. Jun. 2008 14:59 <-- editieren / zitieren --> Unities abgeben:
|
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 12. Jun. 2008 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Hallo Jens, ich hab leider gerade keine Ahnung was genau die TPSView-Collection ist aber auf die Sections kannst du doch zugreifen. Ich mein du kannst damit zwar fast nichts machen (kannst zB nicht die Ebene verschieben) aber ich mein die Grundsachen sind möglich (Schnittverhalten, Vollschnitt, 2D-Schnitt, Name, etc.(. Schau dir einfach mal mein Script an. Code:
Sub Test() Dim Name As StringSet oProduct = CATIA.ActiveDocument Set navWB = oProduct.GetWorkbench("NavigatorWorkbench") Set RefObject = oProduct.Product On Error Resume Next Set oSectionCols = RefObject.GetTechnologicalObject("Sections") For i = 1 To oSectionCols.Count Set acSection = oSectionCols.Item(i) If acSection.CutMode = 1 Then acSection.CutMode = 0 ElseIf acSection.CutMode = 0 Then acSection.CutMode = 1 End If Next End Sub
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 12. Jun. 2008 15:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, leider funktioniert das nicht, weil du mit GetWorkbench("NavigatorWorkbench") auf DMU zugreifst. Die Sectioncuts bzw. sectionviews die ich ansprechen will, kommen aus FT&A und befinden sich in der AnnotationTypeLib Das sind die Dinger, die man direkt im Produkt erstellen kann. Die haben leider mit DMU nichts zu tun und sind nicht zu verwechslen mit der Annotation 2D SG Jens Hansen ------------------ Inoffizielle CATIA-Hilfeseite Private Seite Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 13. Jun. 2008 10:24 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habs über eine Suche in der Selection hinbekommen, wobei ich die Objekte aus der Suche in Array packe und so expliziet ansprechen kann. Allerdings hat die TPSView außer dem internen Namen nichts zu bieten Jetzt hänge ich nur noch an dem Verfahren, mit den TPSViews die jeweiligen Ansichten zu erstellen. Mit DefineTPSSectionView gehts jedenfalls nicht weil hierfür die selben Parameter herangezogen werden wie für eine normale Sectionview Ja ... V5-scripting ist toll Jens Hansen ------------------ Inoffizielle CATIA-Hilfeseite Private Seite Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 11. Nov. 2016 19:50 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Hi, was muss man nach: myCatiaApp.StartCommand("Sectioning") schreiben, damit der Schnitt in Y = 0 erzeugt wird und das Fenster geschlossen wird? Es wird hierzu in Macro Recordning nichts aufgezeichnet. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 11. Nov. 2016 19:58 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Servus Warum willst du das über ein Startcommand machen. Über das "GetTechnologicalObject("Sections")" mit "Add" eine neue Section erzeugen. Diese hat dann die Methode "SetPosition". (siehe Doku, da gibt es ein schönes Beispiel das ein Netz mit Schnitten macht) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 11. Nov. 2016 20:06 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
SErvus, wenn ich myCatiaApp.ActiveDocument.Product.GetTechnologicalObject("Sections"). geschrieben habe, steht mir kein Add zur Verfügung. Deshalb dachte ich der andere Weg soll es sein. Wo finde ich die Doku? Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 11. Nov. 2016 20:09 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
|
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 11. Nov. 2016 22:25 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Servus, ich habe inzwischen folgendes zusammen: Dim mySection As SPATypeLib.Sections mySection = myCatiaApp.ActiveDocument.Product.GetTechnologicalObject("Sections") mySection.Add() Dim Matrix(11) As Double Matrix(0) = 1.0 Matrix(1) = 0.0 Matrix(2) = 0.0 Matrix(3) = 0.0 Matrix(4) = 1.0 Matrix(5) = 0.0 Matrix(6) = 0.0 Matrix(7) = 0.0 Matrix(8) = 1.0 ' X Matrix(9) = 11600.0 ' Y Matrix(10) = 0.0 ' Z Matrix(11) = 1750.0 mySection.SetPosition(Matrix) und bekomme eine Fehler in der letzten Zeile: SetPosition in "Sections" not found. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 11. Nov. 2016 22:34 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 11. Nov. 2016 22:48 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Servus "MySection" ist bei dir nicht ein Schnitt sondern die gesamte Colletion der Schnitte. Beispiel: Code: Dim mySections As SPATypeLib.Sections Dim myNewSection As SPATypeLib.Section 'reine Vermutung mySections = myCatiaApp.ActiveDocument.Product.GetTechnologicalObject("Sections") myNewSection = mySections.Add()
Schau dir auch mal das Beispiel in der Doku an! Benutze das Watch-Fenster! Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 12. Nov. 2016 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Servus, ich habe die Matrix für die Lage so wie im Beispiel Dim Pos(11) mySectionY.GetPosition(Pos) Dim Matrix(11) As Double Matrix(0) = 1 Matrix(1) = 0 Matrix(2) = 0 Matrix(3) = 0 Matrix(4) = 1 Matrix(5) = 0 Matrix(6) = 0 Matrix(7) = 0 Matrix(8) = 1 '' X Matrix(9) = 11538 '' Y Matrix(10) = 0 '' Z Matrix(11) = 1750 mySectionY.SetPosition(Matrix) Und trotzdem Fehler in der letzten Zeile. Hab jetzt erstmal die Einstellungen in Tools/Options verändern müssen, damit der Schnitt in Y=0 kommt, so wie ich es brauche. Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Nov. 2016 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Servus Warum verwendest du bei "GetPosition" und "SetPosition" verschiedene Typen? (ist vielleicht nur einer davon richtig) Musst du wirklichen in den Optionen was anderes einstellen, oder geht das auch über die Methoden der API? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 12. Nov. 2016 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
Servus, guter Tip, ich wollte ausnahmsweise einfach was glauben und habe es so aus der Doku übernommen. Inzwischen habe ich des öfteren gelesen, dass vieles dort nicht stimmt. Also für alle mit dem gleichen Problem: Dim Matrix(11) As Double mySectionY.GetPosition(Matrix) Matrix(0) = 1 Matrix(1) = 0 Matrix(2) = 0 Matrix(3) = 0 Matrix(4) = 1 Matrix(5) = 0 Matrix(6) = 0 Matrix(7) = 0 Matrix(8) = 1 '' X Matrix(9) = 11538 '' Y Matrix(10) = 0 '' Z Matrix(11) = 1750 mySectionY.SetPosition(Matrix) Jetzt muss ich nur noch die Schnitte exportieren. Versuche es gerade mit, s. Code unten, bekomme aber ( was sonst ) eien Fehlermeldung in der Zeile . Export() und IntIndexSection ist 0,was auch nciht sein sollte. Dim myPart As MECMOD.Part Dim FirstSection As Integer Dim LastSection As Integer mySection = myCatiaApp.ActiveDocument.Product.GetTechnologicalObject("Sections") If FirstSection = 0 Then FirstSection = 1 End If For IntIndexSection As Integer = LastSection To FirstSection Step -1 myPart = mySection.Item(1).Export() Next
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tweety79 Mitglied Entwicklung Automotive
Beiträge: 269 Registriert: 09.12.2007 WPF, VBA, CATScript, Access
|
erstellt am: 13. Nov. 2016 12:23 <-- editieren / zitieren --> Unities abgeben: Nur für Jens Hansen
HI, ich habe folgenden Code, um Schnitte aus einem Product zu exportieren: mySection = myCatiaApp.ActiveDocument.Product.GetTechnologicalObject("Sections") For i = 1 To mySection.Count() myPartNumberSec = mySection.Item(i).Name myPart = mySection.Item(i).Export() Dim myFileName As String = "C:\Desktop\" & myPartNumberSec & "_" & Now.Date & ".CATPart" Dim a As String If System.IO.File.Exists(myFileName) Then a = MsgBox("Es existiert bereits ein Modell mit dem gleichen Namen. Möchten Sie es überschreiben?", vbYesNo) If a = vbYes Then System.IO.File.Delete(myFileName) Else Exit Sub End If End If myPart.ExportData(myFileName, "CATPart") Next In der Zeile vor Next bekomme ich immer eine Fehlermeldung. BEi manchen Products heißt die Fehlermeldung "PartName invalid", bei manchen "Alredy exists in this session". Und bei manchen Products läuft es ohne Probleme. Sieht jemand den Fehler? Danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |