Autor
|
Thema: Richtungsvergleich (844 mal gelesen)
|
spikey jr. Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.03.2007
|
erstellt am: 29. Mrz. 2007 16:08 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich lasse über ein Makro mehrere Kanten einer Fläche auswählen. Außerdem gibt es noch eine Linie. Jetzt möchte ich gerne die Richtung jeder Kante mit der Richtung der Linie vergleichen, und wenn diese übereinstimmt soll die Kante verrundet werden. Weiß jemand von Euch Rat? Hier mein Programm, daas nicht funktioniert! Dim Rundung As ConstRadEdgeFillet Set Rundung = Werkzeugkasten.AddNewSurfaceEdgeFilletWithConstantRadius(Nothing, catTangencyFilletEdgePropagation, 38#)
Rundung.FilletBoundaryRelimitation = -1 Dim Kantenzaehler As Integer Dim Kante As AnyObject Dim Kanten_Selektion As Selection Set Kanten_Selektion = Bauteildokument.Selection Dim Richtung1 As HybridShapeDirection Set Richtung1 = Flaechenwerkzeugkasten.AddNewDirection(Auszugsrichtung) Dim Richtung2 As HybridShapeDirection Kanten_Selektion.Clear Kanten_Selektion.Add Nutauszug Kanten_Selektion.Search "Topology.CGMEdge,sel" Kantenzaehler = Kanten_Selektion.Count For i = 1 To Kantenzaehler Set Kante = Kanten_Selektion.Item(i) Set Kante = GeometrieObjekt.Value If Richtung1.DirectionSpecification = Richtung2.DirectionSpecification Then Rundung.AddObjectToFillet Kante Rundung.EdgePropagation = catTangencyFilletEdgePropagation Rundung.FilletBoundaryRelimitation = catConnectFilletBoundaryRelimitation Rundung.FilletTrimSupport = catTrimFilletSupport 'End If Next Werkzeug.Update
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 29. Mrz. 2007 16:35 <-- editieren / zitieren --> Unities abgeben: Nur für spikey jr.
|
spikey jr. Mitglied Konstrukteur
Beiträge: 20 Registriert: 15.03.2007
|
erstellt am: 29. Mrz. 2007 16:40 <-- editieren / zitieren --> Unities abgeben:
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 29. Mrz. 2007 17:37 <-- editieren / zitieren --> Unities abgeben: Nur für spikey jr.
|
CAMiCADse Mitglied
Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 29. Mrz. 2007 18:10 <-- editieren / zitieren --> Unities abgeben: Nur für spikey jr.
Hallo, ich zieh die Antwort mal hier rüber, da das Thema des Thread hier besser passt, von dem hin-und her springen wird einem ja schwindelig Zitat: Hi spikey jr.,so kann das nix werden. Was möchtest du damit Zitat: Set Kante = Kanten_Selektion.Item(i) Set Kante = GeometrieObjekt.Value erreichen?
Was ist GeometrieObjekt und warum weisst du der Variablen Kante zweimal unterschiedliche Objekte zu? Worauf bezieht sich die If-Abfrage Zitat: If Richtung1.DirectionSpecification = Richtung2.DirectionSpecification Then Was ist Richtung2 ? Diese Variable ist immer leer (empty/nothing), da du sie nie zugewiesen hast. Also ist Richtung2 immer ungleich Richtung1. Du kannst sowieso nicht zwei Objekte mit "=" vergleichen. Gleich sind sie nur, wenn es die selben sind. Du musst hier mit dem .Measureable arbeiten. Also wie ich oben geschrieben habe über den BRep eine Reference erzeugen, zu deiner Richtung1 ebenfalls eine und messen (das ist dann vergleichen) Gruss ------------------ tomtom1972
Zitat:
Du musst hier mit dem .Measureable arbeiten.
Wieso? Wenn es sich vermeiden lässt, würde ich nicht mit Measurable arbeiten (Performance). Du kannst von einer Diretion mit GetXVal,GetYVal,GetZVal Double-Werte des Vektors auslesen und diese dann vergleichen. Um für parallele Linien immer ein "sind gleich" zu erhalten (bei gegenläufiger Orientierung), vergleichst du nochmal die invertierten Werte. Gruß CAMiCADse Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 30. Mrz. 2007 12:14 <-- editieren / zitieren --> Unities abgeben: Nur für spikey jr.
Hi CAMiCADse, GetXVal,GetYVal,GetZVal funktioniert (meines Wissens nach) nur für "echte" Geometrie-Objekte. Die o.a. Kanten sind aber BReps. Auf die kann ich nur Verweise erzeugen. Ein Verweis ist eine Reference. Und References kann ich nur Messen. Ich müsste mich schon sehr irren, wenn es anders geht. Aber irren ist meschlich. Gruß ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAMiCADse Mitglied
Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 30. Mrz. 2007 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für spikey jr.
Hallo TomTom, in diesem Fall irrst du dich sehr Ob die Reference auf ein Objekt oder auf eine BRep verweist, spielt hier keine Rolle. Die Get*Val-Methoden funktionieren jedenfalls, egal ob Line oder Edge. Gruß CAMiCADse
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 31. Mrz. 2007 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für spikey jr.
|