| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
|
Autor
|
Thema: Messungen (2664 mal gelesen)
|
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 16. Dez. 2015 16:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Ich/ Wir haben das Problem das wir per Makro eine Messung ablaufen lassen wollen, dieses soll die Werte zurück zum VBA Programm liefern da wir diese weiterverarbeiten. Messun soll immer so ablaufen: Ebene xy-> Punkt 1 Ebene yz-> Punkt 1 Ebene zx-> Punkt 1 Wir bekommen es absolut nicht hin. Lauffähig sollte es sein aus einem VBA Programm und auf Catia V5R21. Hoffe auf schnelle Hilfe, danke schonmal im Voraus! Mit freundlichen Grüßen Frank kemnitz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 16. Dez. 2015 16:42 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
|
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 21. Dez. 2015 18:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo, es gibt ein neues Problem, und zwar soll der User aus einen bestehenden drehteil eine Zylinderbläche auswählen und werden per Makro Ableitungen erzeugt. Die Ableitungen funktionieren schon, nur die Userselection bekomme ich nicht gebacken, da ich danach bisher den Namen des Parts weiter benutzt haben. Nur was ist wenn der Part mal den Namen X hat, dann funktioniert mein Makro nicht. Ich möchte wissen wie ich es programmieren kann das der User auswählt und ich auf der Auswahl weiter arbeiten kann? Kann mir einer helfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K.Siebert Mitglied Tech Zeichner
 
 Beiträge: 415 Registriert: 19.05.2007
|
erstellt am: 21. Dez. 2015 22:35 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Hallo, hilft das hier dir weiter? Code: Sub CatMain() '---------------PART AUS PRODUKT AUSWAEHLEN Set Document = CATIA.ActiveDocument Dim iSel, iStatus, sFilter(0) set iSel = CATIA.ActiveDocument.Selection sFilter(0) = "Part" iStatus = iSel.SelectElement3(sFilter, "Part selektieren / ESC bei keine Auswahl", _ False, CATMultiSelTriggWhenSelPerf, False) If iStatus = "Normal" Then Else MsgBox "Abbruch(Cancel) der Auswahl", vbOKOnly + vbCritical, " Abbruch " Exit Sub End If Set oPart = Document.Selection.Item(1).Value iSel.clear '----------------PROJEKTIONSFLAECHE AUSWAEHLEN Dim myArrayAxis1(2), myArrayAxis2(2), jSel, jStatus, pFilter(0) set jSel = CATIA.ActiveDocument.Selection 'was soll ausgewählt werden pFilter(0) = "Face" 'hier wird die Selektion vorgenommen jStatus = jSel.SelectElement3(pFilter, "Flaeche selektieren / ESC bei keine Auswahl", _ False, CATMultiSelTriggWhenSelPerf, False) If iStatus = "Normal" Then Else MsgBox "Abbruch(Cancel) der Auswahl", vbOKOnly + vbCritical, " Abbruch " Exit Sub End If Set oSelElem = Document.Selection.Item(1).Value
'die Flaeche ist über zwei Achsen bestimmt die man mit get.... bekommt oSelElem.GetFirstAxis myArrayAxis1 oSelElem.GetSecondAxis myArrayAxis2 '-----------SPLIT "myArrayAxis1" AND "myArrayAxis2" INTO SEPERATE COORDINATES x1 = myArrayAxis1(0) y1 = myArrayAxis1(1) z1 = myArrayAxis1(2) x2 = myArrayAxis2(0) y2 = myArrayAxis2(1) z2 = myArrayAxis2(2) jSel.clear '--------------DRAWING NEU AUS Datei = CATIA.FileSelectionBox(".", "*.CATDrawing", CATFileSelectionModeNewFrom) IF Datei <> "" Then Set oDoc = CATIA.Documents.NewFrom (Datei) end if '-------------CREATE A VIEW CALLED "Front View" Set oSheet = oDoc.Sheets.ActiveSheet Set oFrontView = oSheet.Views.Add("Front View") Set oFrontViewGB = oFrontView.GenerativeBehavior oFrontViewGB.Document = oPart 'hier wird als Projektionsflaeche die ausgewaehlte Flaeche bestimmt oFrontViewGB.DefineFrontView x1, y1, z1, x2, y2, z2 oFrontView.x = 100 oFrontView.y = 70 oFrontViewGB.Update End Sub
------------------
Sei Schlau bleib Dumm !!?!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 22. Dez. 2015 00:41 <-- editieren / zitieren --> Unities abgeben:         
Arrr, könnt platzen..... Jetzt funktioniert die User selection, aber ich kann nicht weiter mit arbeiten, möchte immer noch die Ableitung erstellen und äußere Punkte erzeugen..... Sry, stelle mich grad wie der erste Mensch an, nur mein catia Makro läuft aber das VBA nicht.... Mit freundlichen Grüßen Frank Kemnitz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 22. Dez. 2015 09:51 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Du musst auch das einzelne Element der Selektion aufrufen und dies weiterverwenden. In deinem Beispiel kannst du gleich die Refernence daraus bilden: Code: dim osel as Selection Set osel = catia.activeDocument.selecetion dim E as StringE = osel.selection2(........ 'hier die Selektion ausführen dim oObject as Object Set oObject = osel.item(1).value 'erstes selektiertes Objekt (Punkt, Fläche, ...) dim oRef as Reference Set oRef = osel.item(1).reference `die Reference aus dem ersten selektierten Object
Gruß Bernd PS: Ich hab den Code als VBA geschrieben, in .Net sieht der wohl anders aus (oder ist das VBA 7?) ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 22. Dez. 2015 11:46 <-- editieren / zitieren --> Unities abgeben:         
Danke, ich probiere das heute Abend mal aus. VBA ist gut, da wir über visuel Studio programmieren und auf catia ausführen, so "blind" zu programmieren ist vollkommener rotz wenn man es erst lernen soll-.- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 28. Dez. 2015 18:38 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Dez. 2015 18:43 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Wie sieht dein Code aus? Wie das Modell? In welcher WB befindest du dich? Was liefert dir das Watchfenster (bzw Local) zu den entsprechenden Objekten? Gruß Bernd PS: Falls die Reference-Bildung per Selektion nicht klappt: schon mal per CreateReferenceFromObject oder per CreateReferenceFromName probiert? ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 02. Jan. 2016 16:58 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Jan. 2016 17:27 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Bei mir funktioniert es mit dem zuweisen der Referenz (Erstellung des Extract). Beschreibe doch mal bitte dein Problem besser (was geht, was nicht, welche Fehlermeldung, was hast du alles untersucht). Gruß Bernd PS: Warum verwendest du nicht einen "normale" Ableitung (AddNewExtract) ------------------ Warum einfach, wenn es auch kompliziert geht.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Mitglied Freiberuflicher Konstrukteur
   
 Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 02. Jan. 2016 17:28 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Hi Str33t, üblicherweise wird der Rückgabewert geprüft; in Deinem Fall 'Zyl': Code:
Zyl = UserSel.SelectElement2(Was, "Zylinderfläche für Freistich wählen", False)
Als Wert kommen "Cancel", "Undo", "Redo" und "Normal" in Frage. Falls Zyl <> "Normal", hat der Anwender nix ausgewählt. Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 04. Jan. 2016 16:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo, also soweit funktioniert die Ableitung,, danke für den tip mit dem rückgabewert. Versuche derzeit äußerpunkte zu erzeugen, vergeblich. Trotz Buch und insgesamt 3 Studenten komme ich nicht weiter. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Jan. 2016 17:14 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Hast du das ganze schon mal in VBA in einem Makro aufgezeichnet? - was ist Ableitung_2 nun? Extract oder Extremum? (siehe bei AddNewExtremum) - welcher Fehlermeldung kommt? Gruß Bernd PS: Kannst du am Rechner keinen Screenshot erstellen? ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 04. Jan. 2016 17:34 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Jan. 2016 18:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Musst du nicht erst ein Direction anlegen, (AddNewDirection) bevor du diese ändern kannst? Dabei musst du eine Reference übergeben und nicht die Collection aller OriginElements (mehrere Ebenen, welche Richtung soll es nun sein). kleiner Ausschnitt aus der Makroaufzeichnung: Code: .... Dim originElements1 As OriginElements Set originElements1 = part1.OriginElementsDim hybridShapePlaneExplicit1 As AnyObject Set hybridShapePlaneExplicit1 = originElements1.PlaneYZ Dim reference1 As Reference Set reference1 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1) Dim bodies1 As Bodies Set bodies1 = part1.Bodies Dim body1 As Body Set body1 = bodies1.Item("Hauptkörper") Dim shapes1 As Shapes Set shapes1 = body1.Shapes Dim reference2 As Shape Set reference2 = shapes1.Item("Block.1") Dim hybridShapeDirection1 As HybridShapeDirection Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirection(reference1) Dim hybridShapeExtremum1 As HybridShapeExtremum Set hybridShapeExtremum1 = hybridShapeFactory1.AddNewExtremum(reference2, hybridShapeDirection1, 1) ....
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 10. Jan. 2016 18:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo, also die vorarbeit ist geschafft, Ableitungen und Ebenen sowie Punkte sind veränderungsstabil als Makro lauffähig. Jetzt möchte ich meine Punkte auslesen und weiterverarbeiten, dafür brauch ich einen Wert, der kann aber auf jeder Achse und Ebene liegen. Derzeit bekomme ich die Koordinaten und möchte sie weiter verarbeiten, da ich nur von jedem Punkt eine der drei Koordinaten brauche, derzeit habe ich diese Punkte im Musterobjekt: AP_1: 0/20/45 AP_2: 0/-100/45 AP_3: 0/20/70 Da es sich um ein drehteil handelt ist die Koordinate die bei allen dreien 0 ist Unwichtig und die Koordinate die bei zwei Punkten 45 anzeigt gibt mir den Durchmesser aus, diesen messe ich derzeit aber vorher schon. Die wichtigen Werte für mich sind die mittleren, diese geben mir die Seite aus, links oder rechts. !achtung! Diese Werte kann auch bei den anderen Koordinaten liegen.... Meine Idee (Bild) geht leider nicht... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Jan. 2016 18:52 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Also ich hab nicht ganz kapiert was du willst. Welche Werte willst du haben? Wie viele Punkte hast du (immer gleich)? Liegt deine Drehachse immer auf einer der drei Hauptachsen? Gruß Bernd PS: Bitte nicht immer den gleichen Dateinamen verwenden. ggf den Code einfach in den entsprechenden Tags ([Code]) posten. Hast du am Rechner kein Screenshot-Programme (Dateigröße)?
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 10. Jan. 2016 19:15 <-- editieren / zitieren --> Unities abgeben:         
Ich brauche die nur um zu bestimmen ob der Absatz am drehteil sich rechts oder links befindet, da dies wichtig ist für mich. Ich hatte die Idee dies über eine meessung zu realisieren. Dies ist immer noch das gleiche Thema, bis hierher war es nur der "hinweg" zum eigentlichen Problem.... Ich habe das Part, drehteil. Habe von der zylinderfläche: Eine Ableitung Zwei äußere Punkte, einmal mit Max und einmal mit Min. Eine Ebene und eine darauf mit einem Winkel von 90grad liegende Skizzen Ebene. Außerdem eine rotationsachse. Von der planfläche habe ich: Eine Ableitung Ein äußeren Punkt , Max Eine Ebene Ich messe jeden Punkt derzeitig zu jeder Achse, vllt ist auch das der falsche Ansatz.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 10. Jan. 2016 19:18 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Jan. 2016 19:21 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
|
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 10. Jan. 2016 20:02 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Jan. 2016 20:22 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Und wenn du aus der Fläche (Selektion, Ableitung) einfach den Schwerpunkt bestimmst um die "Richtung" feststellen? Gruß Bernd ESIT: oder statt einem Makro eine PowerCopy verwenden? ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 10. Jan. 2016 20:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo, was meinst du und wie funktioniert das, ist mir grad nicht bewusst. Es soll es soll als Makro ausgeführt werden da es bei uns an der Hochschule im bestehende Programme eingepflegt werden soll. Diese sind schon als VBA Makro vorhanden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 10. Jan. 2016 20:40 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Ich befürchte dass noch recht wenig Ahnung in Catia hast und somit das Makro unnötig komplex wird. Anstatt (wie ich vermute) aus einer Fläche die Berandung und der Extremwerte könntest du ggf auch die Fläche seltieren -> den Flächenschwerpunkt bestimmen (die Richtung). Also was hast du vor? Gruß Bernd PS: was jetzt nun VB oder VBA?
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 10. Jan. 2016 21:21 <-- editieren / zitieren --> Unities abgeben:         
Denke das ich relativ viel Erfahrung hab mit catia, zumindest was catia im normalen 3D Bereich angeht. Im Makro Bereich hab ich fast keine Erfahrung, allerdings ist dies unserer Semester Beleg. Daher muss es so gut wie möglich aufgebaut sein , und vorallem veränderungsstabil, darauf wird bei uns an der Hochschule viel wert gelegt War mein erster danke damals allerdings hatte unser Dozent auch keine Ahnung wie man dies genau als Makro ausführt, da er sich das über die Jahre selber bei gebracht hat. Also hatten wir die Variante mit Ableitung genommen, da dies stabiler ist als nur die Punkte auf die Fläche zu setzten. Wir haben vor einen Körper auf den Absatz zu setzten, dies soll automatisch (für den Benutzer) funktionieren, es sind mehrere Geometrien vorgegeben und dies noch mit ca 100 Maßen, die Maße auszugeben und auch die Geometrie zu erzeugen (Skizzen und Körper) ist weniger das Problem, und steht eigentlich auch schon. Das reine Programmieren ist auch nicht das Problem (außer das rechts links Problem derzeit) da wir seit 3 Semestern programmieren, nur kenne ich den Umfang der Programmierung in catia nicht und unser Buch (catia automatisieren) hilf oft auch nur begrenzt. Es ist eine VBA Programmierung über Visual Studio. Für jede Hilfe bin ich dankbar.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 10. Jan. 2016 21:24 <-- editieren / zitieren --> Unities abgeben:         
Ohne ein schlechtes Bild auf Hochschulen zu werfen, es ist ein freiwilliges Fach, wir bekommen zwar credits aber nur wenige. Wichtig ist hier eher der Lern Faktor, deswegen machen wir auch fast alles in Eigenregie.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Str33t Mitglied Student

 Beiträge: 35 Registriert: 10.06.2015 Catia V5 R19 Acer E5 I5 , 12GB 2GB Grafik
|
erstellt am: 16. Feb. 2016 09:35 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 16. Feb. 2016 12:21 <-- editieren / zitieren --> Unities abgeben:          Nur für Str33t
Servus Und was klappt dann nicht? (bitte mehr Infos: wie sieht deine Geometrie aus, wie sieht der Code (konkret der Probleme) macht aus, was soll der Code bezwecken? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |