|
CATIA V5 Programmierung : Winkel zwischen 2 Linien messen
dabaeda am 08.05.2007 um 14:00 Uhr (0)
Hallo,vielleicht hat jmd ne Idee dazu:ich möchte den Winkel zwischen einer Linie(line) und einer anderen Linie(projection) messen, und dann in Excel abspeichern. Beide Linien sind nicht in einem Sketch, sondern als 3D-Geometrie in einem Geoset.1.Mit welchem Befehl kann man denn Winkel messen?2.Wie kann ich dann die Winkel weitergeben? Später muss ich viele Winkel (automatisch) messen, und diese dann als txt-File speichern.Beim speichern von koordinaten habe ich das bisher so gemacht: Zitat:Redim aCoord(2)d ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Winkel zwischen 2 Linien messen
YellowDevil am 08.05.2007 um 14:29 Uhr (0)
Dim TheSPAWorkbench As WorkbenchDim aTheMeasurable,bTheMeasurable As MeasurableDim angle1Dim reference1 As ReferenceDim reference2 As ReferenceSet reference1=part1.CreateReferenceFromObject(deine erste Linie)Set reference2=part1.CreateReferenceFromObject(deine zweite Linie)Set TheSPAWorkbench=CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")Set aTheMeasurable=TheSPAWorkbench.GetMeasurable(reference1)angle1=aTheMeasurable.GetAngleBetween(reference2)Ich hoffe das hilft dir weiter.
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Winkel zwischen 2 Linien messen
dabaeda am 09.05.2007 um 11:26 Uhr (0)
Danke für den Tip, leider funkt das nicht ganz.Folgenden Code habe ich: Zitat:Dim angle1Dim TheSPAWorkbench As Workbench Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" ) Dim TheMeasurable As Measurable Set TheMeasurable = TheSPAWorkbench.Measurable(RefPtRichtung) Hier liegt der Fehlerangle1 = TheMeasurable.GetAngleBetween(RefProjektionNormale(0))Fehlerbewschreibung: Das Objekt unterstürtz diese Eigenschaft/Methode nicht.:TheSPAWorkbench.MeasurableStimmt das mit der referenz was n ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Fläche verschieben mit Formel - HybridShapeTranslate
Physimathi am 09.05.2007 um 11:52 Uhr (0)
Hallo,danke für die Anregung. Das man Werte Umwandeln kann, dass wusste ich noch nicht. Toll, doch mein Problem besteht immer noch und ich habe es auch schon weiter eingekreist.Es ist so:HybridShapeTranslate hat die Eigenschaft "Distance.Value As Length" (Read Only)Wenn ich es in Catia händisch eingebe, wird diesem Wert die Formel übergeben. Nur gelingt es mir nicht diesen Verschiebungsparameter mit der Formel zu belegen. -- Kann ja sein es geht nicht --Der neue Code, wenn ich ihn mal so nennen kann Bestim ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Fläche verschieben mit Formel - HybridShapeTranslate
Physimathi am 08.05.2007 um 18:57 Uhr (0)
Hallo,und wieder ein schweres Problem:Ich will eine Fläche verschieben, doch ich bekomme die Formel nicht zugewiesen:Fileskelett:-Produkt + neues Teil-Skizze-Füllen-Füllen kopieren-Einfügen Spezial - als Ergebnis-Füllen löschenDas Problem liegt bei "CreateFormula( CATBSTR iName, CATBSTR iComment, CATIAParameter iOutputParameter, CATBSTR iFormulaBody)Der CATIAParameter muss als Z As Double vorliegen um ihn dem "hybridShapeTranslate1.DistanceValue = Z".Doch ist Z As Double, dann gibt es einen "Type mismatch" ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Produkt nachbauen
elharry am 09.05.2007 um 12:37 Uhr (0)
Hallo,scheint schwerer zu sein als ich Dachte.Habe mich nun entschlossen, das Produkt nicht Parallel zum bestehenden aufzubauen sondern innerhalb des bestehenden Produktes ein neues Produkt anzuhängen und unter diesem die Parts zu kopieren.Das erzeugen eines Produktes klappt inkl. aktuellem Datum und Urzeit.Probleme macht mir noch das aufbauen der Selektion der Parts und dann das kopieren in das gerade erzeugte Produkt. Das habe ich mir mal mit dem Makro Recorder aufgezeichnet und versucht hier einzubauen ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Konstruktionselemente von Suche/Selektion ausschließen
YellowDevil am 09.05.2007 um 14:22 Uhr (0)
Eine ähnliche Frage hatten wir oben grade, da war es nur so das man den umgekehrten Fall hatte und zusätzlich was in die Suche einschliessen wollte.Sollte derselbe weg sein nur mit anderen Operanden.sSel.Search(" das zu suchende - das was ausgeschlosssen werden soll ")Getestet habe ich es ganz einfach an einem Part mit 3 Geo Sets "Test","Test1" und "Test2". Dann hab ich nach allen Geo Sets suchen lassen und das Geo Set "Test1" von der suche ausgeschlossen. Und es funktioniert.Hier der Code:Set selection1=C ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Fläche verschieben mit Formel - HybridShapeTranslate
Physimathi am 09.05.2007 um 14:26 Uhr (0)
Hallo,ich habe die Lösung. Es ist ja doch einfach gewesen. Nur draufkommen muss man.Erstellt man eine AddNewTranslate(Objekt, Richtung, Weite), dann kann man die Formel dem Wert der Eigenschaft "Distance" gleich zugewiesen werden.Erstellt man eine AddNewEmptyTranslate(), dann kann man die Formel dem Wert der Eigenschaft "Distance" erst zuweisen, wenn man einen Wert für "DistanceValue" zugeordnet hat.Danach kann man der Eigenschaft "Distance" eine Formel zuweisen.- ohne vorherige ""DistanceValue" Wertezuord ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : HybridShapeSplit - Beide Seitenflächen greifen
YellowDevil am 09.05.2007 um 14:34 Uhr (1)
Ich weiss es nicht ganz genau,aber ich glaube so funktioniert das nicht.Wenn mich nicht alles täuscht,dann unterscheidet CATIA am Ende nicht.Kannst Du nicht einfach zwei Splits erstellen lassen, den einen von der einen Seite und den anderen von der anderen. Dann müsstest du doch das gewünschte Ergebniss haben.
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Winkel zwischen 2 Linien messen
dabaeda am 09.05.2007 um 15:40 Uhr (0)
Hm, werde das morgen gleich mal probieren und das Ergebnis hier dann posten.In der VB-Hilfe von Catia ist das ohne Get gestanden, deswegen hatte ich das nicht reingeschrieben.Vielen Danke nochmal für die Hinweise.
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Produkt nachbauen
elharry am 08.05.2007 um 09:24 Uhr (0)
Hallo miteinander,ich habe folgendes Problem: ein Produkt muss in einer durch eine Kinematik angefahrenen Position verschickt werden. Wenn ich das Produkt nun mit der DF1 Lizenz bearbeite landen die Bauteile wieder in der Konstruktionslage.Das ganze lässt sich umgehen wenn man die Parts aus der Lage in ein neues Produkt kopiert.Das Produkt hat aber mehrere Ebenen und sollte die Struktur beibehalten.Da diese Aufgabe immer wieder auftritt, wollte ich hier ein Makro zum Einsatz bringen. Habe aber keine Ahnung ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Winkel zwischen 2 Linien messen
dabaeda am 10.05.2007 um 10:19 Uhr (0)
Nun hat es geklappt (fast).Mit dem Code: Zitat:Dim angle(100)Dim TheSPAWorkbench As Workbench Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" ) Dim TheMeasurable(100) As Measurable dim zaehler as doublefor zaehler=1 to 10 Hier liegt ein Problem Set TheMeasurable(zaehler) = TheSPAWorkbench.GetMeasurable(RefPtRichtung(zaehler)) angle(zaehler) = TheMeasurable(zaehler).GetAngleBetween(RefProjektionNormale(zaehler))nextHabe ich nun folgendes Problem:Schreibe ich: for zaehler=1 to 9, d ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Winkel zwischen 2 Linien messen
dabaeda am 10.05.2007 um 12:06 Uhr (0)
Habe den Fehler gefunden:scheinbar kommt Catia nicht mit RefPtRichtung(10) und RefProjektionNormale(10) in dem Ausdruck klar, auch nicht wenn ich in der ersten Schleife nur bis 9 zähle, und ein einer seperaten Schleife dann die 10 erzeuge.Lösung:RefPtRichtung(10) in RefPtRichtung(11) (bei anderer Referenz analog) umbenannt und folgenden Code eingefügt: Zitat:dim bThemeasurable as Measurableset bTheMeasurable = TheSPAWorkbench.GetMeasurable (RefPtRichtung(11))angle(10) = bTheMeasurable.GetAngleBetween(RefPr ...
|
In das Form CATIA V5 Programmierung wechseln |