Autor
|
Thema: Probleme mit UserSel (4208 mal gelesen)
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 01. Mrz. 2010 21:20 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte während der Ausführung meines Makros dem User die Möglichkeit geben, ein Element zu selektieren. Hierzu habe ich folgenden Programmcode Code: Sub CATMain() Dim UserSel As Selection Set UserSel = CATIA.ActiveDocument.Selection UserSel.Clear Dim E E = UserSel.SelectElement2("Line", "Linie auswählen", True) If E = "Normal" Then MsgBox (UserSel.Item(1).Value.Name) Else MsgBox ("Abbruch") End Sub
Bei der Ausführung erhalte ich aber als Fehlermeldung Zitat: Compile Error: Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic
Kann mir jemand weiterhelfen? 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: 01. Mrz. 2010 21:27 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 01. Mrz. 2010 21:34 <-- editieren / zitieren --> Unities abgeben:
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 02. Mrz. 2010 09:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe doch noch ein Problem. Ich möchte eine Referenz auf ein selektiertes Element erzeugen. Ich programmiere in CATVBA. Leider erhalte ich immer die Fehlermeldung: Zitat: Run-Time error '438' Object doesn't support this property or method
Code: Dim Was(0) Was(0) = "Line" 'Definion und leeren der Selektion Dim UserSel As Object Set UserSel = CATIA.ActiveDocument.Selection UserSel.Clear Dim E As String E = UserSel.SelectElement2(Was, "Linie auswählen", False) If E = "Normal" Then MsgBox (UserSel.Item(1).Value.Name) Else MsgBox ("Abbruch") End If E = UserSel.Item(1).Value 'Vom Compiler markierte Zeile Dim RefP As Reference Set RefP = MeinPart.CreateReferenceFromObject(E) product1.Update
Im Forum habe ich ein ähnliches Beispiel gefunden. Leider nur in Catscript. Wäre deshlab sehr froh, wenn mir jemand helfen könnte.Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. 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: 02. Mrz. 2010 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 02. Mrz. 2010 14:02 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe deine Antwort wohl nicht ganz verstanden. Code: Dim Was(0) Was(0) = "Line" 'Definion und leeren der Selektion Dim UserSel As Object Set UserSel = CATIA.ActiveDocument.Selection UserSel.Clear Dim E E = UserSel.SelectElement2(Was, "Line auswählen", True) If E = "Normal" Then MsgBox (UserSel.Item(1).Value.Name) Else MsgBox ("Abbruch") End If Dim myObj As Object Set myObj = UserSel.Item(1).Value Dim RefP As Reference RefP = MeinPart.CreateReferenceFromObject(myObj)
Nun bekomme ich in der letzen Zeile die Meldung Zitat: Runtime Error 424 Object Required
Aber eigentlich sollte das jetzt doch schon so funktionieren. Object ist doch allen Datentypen übnergeordnet... 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: 02. Mrz. 2010 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Code:
Dim RefP As Reference Set RefP = MeinPart.CreateReferenceFromObject(myObj)
Ich möchte Dir, ohne jetzt beleidigend klingen zu wollen, denn so habe ich ja auch angefangen, nahelegen, ein Buch zum Thema VB zu lesen. Natürlich helfe ich auch gern ohne das Vorwissen weiter, aber es würde Dir die Arbeit erleichtern. Edit: Wenn du Google (oder eine andere Suchmaschine) benutzt um nach deinen Fehlermeldungen zu suchen erhälst Du auch schneller Antworten. Die Fehlermeldungen sind nämlich einheitlicher Standard. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 02. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 02. Mrz. 2010 17:18 <-- editieren / zitieren --> Unities abgeben:
Hallo, du meinst weil ich statt meinPart hätte ich ein Objekt(CAT-Part) nehmen müssen-hatte den Code einfach reinkopiert. Ich habe auch Vorkenntnisse-nur halt nicht so sehr in VB... Noch eine kleine Frage. Ich möchte eine Referenz auf ein selektiertes Achsensystem erzeugen. Code: Dim Was(0) Was(0) = "AxisSystem" Dim UserSel As Object Set UserSel = CATIA.ActiveDocument.Selection UserSel.Clear Dim E As String E = UserSel.SelectElement2(Was, "Achsensystem auswählen", True) If E = "Normal" Then MsgBox (UserSel.Item(1).Value.Name) Else MsgBox ("Abbruch") End If
CreateReferenceFromObject funktioniert laut Hilfe hier nicht. Zitat: The geometric object to be referenced. It can be a plane, a line or a point.
Für CreateReferenceFromName bräuchte ich den vollständigen Namen mit Pfad. Kann mir noch mal jemand einen Tipp geben?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: 02. Mrz. 2010 18:05 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo, dann möchte ich mich für dne Hinweis auf ein Buch entschuldigen. Kam mir halt so vor, als würden elementare Grundkenntnisse fehlen, was dann eben an anderer Stelle besser supportet werden könnte. So dann zu deinen neuen Fragen: Nicht alles was in der Doku steht stimmt auch. Die ist oftmals sogar veraltet. Vertrau also nicht immer darauf, was dadrin steht, sondern probier es aus. Ich behaupte in dem Fall geht das auch mit Achsensystem. Da Du aber bereits eine Selektion hast und daraus das Objekt fischst, kannst Du auch gleich die Referenz daraus holen: Code:
' Dieser Code ist frei aus dem Gedächnis geschrieben, ich bitte also um Nachsicht bei Fehlern Dim refAxisSystem as INFTIFF.Reference Dim selWork as INFTIFF.Selection Dim objBuffer as Object Dim arrOfVariant(0) as Variant Dim sReturn as StringarrOfVariant(0) = "AxisSystem" Set selWork = CATIA.ActiveDocument.Selection Set objBuffer = selWork; sReturn = objBuffer.SelectElement2(arrOfVariant, "Achsensystem auswählen", True) If sReturn = "Normal" Then MsgBox (selWork.Item2(1).Value.Name) Else Exit Sub End If Set refWork = selWork.Item2(1).Reference
Anmerkung: Wenn Du SekectEkement2 mit True machst, dann ist es nicht sinnvoll vorher die Selektion zu leeren, denn dann könntest Du gleich False übergeben. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 02. Mrz. 2010 20:34 <-- editieren / zitieren --> Unities abgeben:
|
V5Playaz Mitglied Dipl.-Ing (BA)
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: 02. Mrz. 2010 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
|
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: 03. Mrz. 2010 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Ich gebe lieber die Librarys an, da einige Klassen-/Objektnamen mehrfach vergeben sind. Daher mache ich dies gerade auch beim CATVBA, da da ja schon von Anfang an alle CATIA-APIs angezogen werden. Ob ich den Namen jetzt aus dem Gedächnis richtig geschrieben habe weiß ich aber nicht, da ich immer Nur INF und Strg + Leertaste eingebe. Edit: Ich nutze übrigens lieber VB6, statt VS2008 ;p. Das hat aber auch den Grund, dass ich VB6 kein .NET-Gedöns hat (ich komme weniger in Versuchung bei den COM-Verlinkungen und die funzen dann auch) und Dassault gerade erst VS2005 SP1 für CAA freigegeben hat. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila
Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 03. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 03. Mrz. 2010 15:57 <-- editieren / zitieren --> Unities abgeben:
Hallo, also leider funktioniert es so noch nicht. Die Bibliothek INFTIFF kennt mein Compiler nicht. Habe es dann deinen Code verwendet, ohne die Bibliothek anzugeben. Ich erhalte auch eine MessageBox mit dem Namen des selektierten Elements. Aber die Zeile Code: Set refWork = selWork.Item2(1).Reference
macht immer noch Probleme. Ich erhalte als Fehlermeldung: Zitat: Run-time error '-2147467259(80004005)': Method 'Reference' of object 'SelectedElement' failed
Dabei erscheint, wenn ich diese Zeile eingebe , diese Methode sogar in der Vorauswahl...
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: 03. Mrz. 2010 16:32 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Also die Bibliothek müsste korrekt INFITF heißen. Und Dim RefP As Reference Set RefP = MeinPart.CreateReferenceFromObject(myObj) funktioniert auch nicht? Edit: Code:
Sub CATMain() Dim refAxisSystem As INFITF.Reference Dim selWork As INFITF.Selection Dim objBuffer As Object Dim arrOfVariant(0) As Variant Dim sReturn As String Dim partWork As MECMOD.Part arrOfVariant(0) = "AxisSystem" Set selWork = CATIA.ActiveDocument.Selection Set objBuffer = selWork sReturn = objBuffer.SelectElement2(arrOfVariant, "Achsensystem auswählen", True) If sReturn = "Normal" Then MsgBox (selWork.Item2(1).Value.Name) Else Exit Sub End If Set partWork = CATIA.ActiveDocument.Part Set refWork = partWork.CreateReferenceFromObject(selWork.Item2(1).Value) End Sub
funzt bei mir ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 03. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 04. Mrz. 2010 07:37 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, also bei deinem Code bekomme ich die Meldung, dass für dieses Objekt die Methode nicht unterstützt wird für die Zeile Code: Set partWork = CATIA.ActiveDocument.Part
Dann ich ich es ein wenig geändert:
Code: Dim PartDokument As PartDocument Set PartDokument = CATIA.Documents.Item(2) Set partWork = CATIA.ActiveDocument.Part Set refWork = partWork.CreateReferenceFromObject(selWork.Item2(1).Value)
Jetzt meckert der Compiler bei der letzten Zeile. Für das Objekt wird diese Methode nicht unterstützt... Gibt es sonst nicht eine Möglichkeit den vollständigen Namen zu ermitteln? Dann könnte ich ja CreateReferenceFromName verwenden.. Anbei eine kleine BeispieldateiEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. 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: 04. Mrz. 2010 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo, wenn du uns gleich das Beispiel gegeben hättest dann wären wir schon längst am Ziel. Mir war nicht klar das du versucht innerhalb eines Produkts das ein Part enthält ein Achsensystem zu selektieren. Hierbei musst du dann mit dem Part Objekt aufpassen. Nur dieses Part Objekt enthält die Methode CreateReferenceFromObject . Wenn dein "ActiveDocument" aber ein Produkt ist besitzt diese keine Klasse "Part". Von dem her wird diese Methode nicht unterstützt. Hier mal die Lösung zu deinem Problem. Code: Sub CATMain() Dim intRefObj As INFITF.Reference Dim intSelObj As Object 'INFITF.Selection Dim intFilter(0) As Variant Dim intSelStateStr As String Dim intPartObj As MECMOD.Part Dim intProdObj As Product intFilter(0) = "AxisSystem" Set intSelObj = CATIA.ActiveDocument.Selection intSelStateStr = intSelObj.SelectElement2(intFilter, "Achsensystem auswählen", True) If intSelStateStr = "Normal" Then 'MsgBox (selWork.Item2(1).Value.Name) Set intPartObj = intSelObj.Item2(1).Value.Parent.Parent Else Exit Sub End If Set intRefObj = intPartObj.CreateReferenceFromObject(intSelObj.Item2(1).Value) End Sub
Dieses Script funktioniert jetzt mit einem Produkt und auch mit einem Part ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 04. Mrz. 2010 14:02 <-- editieren / zitieren --> Unities abgeben:
Also, das mit der Referenz erzeugen klappt. Ich wollte das ganze nun so erweitern, dass die beiden Koordinatensysteme der beiden Parts im Beispiel kongruent gesetzt werden. Erhalte dann aber die Meldung Zitat: Run-time error '-2147467259((80004005)': The method AddBiEltCst failed
Kann jemand noch einmal einen Blick darauf werden? Code: Sub CATMain()Dim constraint1 As Constraint Weiß niemand etwas?:( Dim reference1 As Reference Dim product1 As Product Dim productDocument1 As Document Dim intRefObj As INFITF.Reference Dim intSelObj As Object 'INFITF.Selection Dim intFilter(0) As Variant Dim intSelStateStr As String Dim intPartObj As MECMOD.Part Dim intProdObj As Product '1 Referenz erzeugen ''''''''''''''''''''''''''''''''''''''''''''' Set productDocument3 = CATIA.ActiveDocument Set product3 = productDocument3.Product Set reference1 = product3.CreateReferenceFromName("Product3/Part1.1/!Absolute Axis System") 'Referenz durcdh Auswahl erzeugen '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' intFilter(0) = "AxisSystem" Set intSelObj = CATIA.ActiveDocument.Selection intSelStateStr = intSelObj.SelectElement2(intFilter, "Achsensystem auswählen", True) If intSelStateStr = "Normal" Then Set intPartObj = intSelObj.Item2(1).Value.Parent.Parent Else Exit Sub End If
Set intRefObj = intPartObj.CreateReferenceFromObject(intSelObj.Item2(1).Value) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Kongruenz setzen Dim constraints1 As Constraints Set constraints1 = product3.Connections("CATIAConstraints") Set constraint1 = constraints1.AddBiEltCst(catCstTypeOn, intRefObj, reference1) product3.Update End Sub
[Diese Nachricht wurde von wulfgang am 04. Mrz. 2010 editiert.] Wenn ich eine Möglichkeit hätte den vollständigen Pfadnamen zu ermitteln, könnte ich ja auch CreateByReference nehmen. Gibt es da nicht eine Möglichkeit? [Diese Nachricht wurde von wulfgang am 04. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 08. Mrz. 2010 11:04 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe das Problem inzwischen gelöst. CreateReferenceFromObject funktioniert bei Constraints nicht. Man muss einen Umweg über CreateReferenceFromName gehen. Falls jemand das gleiche Problem hat, kann er mir gerne schreiben! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michau Mitglied Bachelor angehend :)
Beiträge: 19 Registriert: 12.04.2011 Catia V5 R18-R19 Solid Edge Unigraphics 6 Pro E Wildfire 4
|
erstellt am: 12. Apr. 2011 10:43 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo, habe das gleiche Problem mit den Reference. Will von einer Selection eine Reference machen. Dabei soll das Aktive Dokument eine Baugruppe sein und die Refereenz soll für die Baugruppen Bedinungen benutzt werden. Jedoch gibts bei mir schon Probleme bei der Zeile Set intPartObj = intSelObj.Item2(1).Value.Parent.Parent Da meckert VBA schon. Sobald ich es als Object deklariere kann ich irgendwie keine Referenz davon ziehen. Wollte eigentlich ne Message schicken aber ich komm hier nicht durch die Firewall grüße Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michau Mitglied Bachelor angehend :)
Beiträge: 19 Registriert: 12.04.2011 Catia V5 R18-R19 Solid Edge Unigraphics 6 Pro E Wildfire 4
|
erstellt am: 12. Apr. 2011 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
hier der Code: vielleicht kann mir da einer helfen Dim activedoc As INFITF.Document Dim AllProduct As Product Dim AllProducts As Products Dim i As Long Dim Selection1 As Object Dim Status As String Dim SpPart As MECMOD.PART Set activedoc = CATIA.ActiveDocument Set AllProduct = activedoc.Product Set AllProducts = AllProduct.Products Dim RefPos1 As Reference Dim RefPos2 As Reference Dim SpannRef1 As Reference Dim SpannRef2 As Reference Set Selection1 = activedoc.Selection Dim InputObjectType(0) InputObjectType(0) = "Point" Status = Selection1.SelectElement2(InputObjectType, "Wählen Sie den Punkt aus", False) Set SpPart = Selection1.Item(1).Value.Parent.Parent Set SpannRef1 = SpPart.CreateReferenceFromName(Selection1.Item(1).Value) Set RefPos1 = AllProduct.CreateReferenceFromName("Test_Spanner/Spanner_Komplet." & CStr(1) & "/Part12.1/!Point.1") Set RefPos2 = AllProduct.CreateReferenceFromName("Test_Spanner/Spanner_Komplet." & CStr(1) & "/Part12.1/!Plane.6") Dim constraints1 As Constraints Set constraints1 = AllProduct.Connections("CATIAConstraints") Dim constraint1 As Constraint Dim Constraint2 As Constraint Set constraint1 = constraints1.AddBiEltCst(catCstTypeOn, RefPos1, SpannRef1) End Sub
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. Apr. 2011 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
SpPart.CreateReferenceFromName(Selection1.Item(1).Value) macht wenig Sinn in meinen Augen, da die Selection direkt eine Reference ausgibt. Versuch also Code:
Selection1.Item(1).Reference
------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michau Mitglied Bachelor angehend :)
Beiträge: 19 Registriert: 12.04.2011 Catia V5 R18-R19 Solid Edge Unigraphics 6 Pro E Wildfire 4
|
erstellt am: 12. Apr. 2011 12:43 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Danke für den Tip. Hab den Code jetzt so benutzt Code: Set SpannRef2 = Selection1.Item(1).Reference Jetzt hat er wahrscheinlich die Reference schon aber jetzt kommt der Fehler: Method 'AddBiEltCst' of Object 'Constraints' Failed Das ist ja der Befehl für die Bedingung. Hab ich was falsch deklariert oder warum kommt der dann mit den Referenzen nicht klar. 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. Apr. 2011 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Ich sehe nicht, dass Du Dir constraints1 irgendwo holst. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michau Mitglied Bachelor angehend :)
Beiträge: 19 Registriert: 12.04.2011 Catia V5 R18-R19 Solid Edge Unigraphics 6 Pro E Wildfire 4
|
erstellt am: 12. Apr. 2011 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
das mach ich doch mit dem Code am ende oder nicht? Habe ich mich da in der Funktion vertan? Code: Dim constraints1 As Constraints Set constraints1 = AllProduct.Connections("CATIAConstraints") Dim constraint1 As Constraint Set constraint1 = constraints1.AddBiEltCst(catCstTypeOn, RefPos1, SpannRef1) 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. Apr. 2011 14:55 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Ohh sorry, da unten das sah nicht so eindeutig aus, habe ich übersehen. :-( Dann fällt mir auf die Schnelle auch nix ein. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michau Mitglied Bachelor angehend :)
Beiträge: 19 Registriert: 12.04.2011 Catia V5 R18-R19 Solid Edge Unigraphics 6 Pro E Wildfire 4
|
erstellt am: 12. Apr. 2011 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
man kann nicht allwissend sein...... trotzdem danke für die Mühe..... versuch mich mal nachher wenn ich zuause bin an wulfgang zu wenden und seinen lösunungsansatz heraus zu finden. falls er noch aktiv im forum ist Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michau Mitglied Bachelor angehend :)
Beiträge: 19 Registriert: 12.04.2011 Catia V5 R18-R19 Solid Edge Unigraphics 6 Pro E Wildfire 4
|
erstellt am: 18. Apr. 2011 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hab eine Alternative Lösung herausbekommen mit dem CreateReferenceFromName. Als Anreiz für die wo es selber Versuchen wollen. Beim Aufzeichen wir der Komplette Pfad als Referenz benutzt. z.b. ("Spanner_Komplet/207_U.1/NAUO6/!Achse 1") Man muss nun einfach die Einzelne Bausteine Auslesen und einfach zu dem gesamten Pfad zusammen setzen. Was das Programm möglicherweise auch sehr felxibel macht. Eine Baugruppe mit mehrern Unterprodukten müsste man sicher mit einer Erweiterung im Code abfangen. Falls jemand nicht auf die Lösung kommt, einfach melden. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |