| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Turbocad |
Autor
|
Thema: Objekte mit Macro in 3D auf Arbeitsebene positionieren (1014 mal gelesen)
|
H. Scheurich Mitglied
Beiträge: 161 Registriert: 21.06.2002
|
erstellt am: 22. Okt. 2002 13:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, das SDK-Paket macht mir wieder zu schaffen. Kann mir mal jemand erklären wie ein Objekt, z.B. ein Kreis, auf der Arbeitsebene, in Bezug zu dem Ursprung der Arbeitseben, positioniert wird. Das positionieren im absoluten Koordinatensystem funktioniert. Problematisch wird es wenn die Arbeitsebene, z.B. an einem Quader, an der linken Fläche liegt. Der Kreis, als Beispielobjekt, wird trotz veränderter Arbeitsebene im Weltkoordinatensystem, mit Bezug auf WKS X0 Y0 Z0, eingefügt. Bisher habe ich noch kein Beispiel gefunden, in dem ein solcher Prozess erkennbar ist. Gibt es für die Arbeitseben ein Objekt im SDK? Ab einem gewissen Punkt verliert man den Überblick! Ich vermute schon irrgentwelche Matrix-Operationen!?! Grüße von der SDK-Front H. Scheurich Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joiner Mitglied
Beiträge: 287 Registriert: 30.07.2001
|
erstellt am: 23. Okt. 2002 07:52 <-- editieren / zitieren --> Unities abgeben: Nur für H. Scheurich
|
H. Scheurich Mitglied
Beiträge: 161 Registriert: 21.06.2002
|
erstellt am: 23. Okt. 2002 08:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Stefan, danke für dein Tip. Ich habe noch eine andere Möglichkeit gefunden, ein Objekt auf die aktuelle Arbeitsebene zu schieben. Es erfolgt mit Hilfe einer Transformationsmatrixe und ist relative einfach zu handhaben. Hier ein Stück vereinfachter Quelltext in VBA, zur Beschreibung der Vorgehensweise. Dim App As Application Dim ActDr As Drawing Dim GrCol As Graphics Dim Gr As Graphic Dim UcsMa As New Matrix Set App = IMSIGX.Application Set ActDr = App.ActiveDrawing Set GrCol = ActDr.Graphics Set UcsMa = ActDr.UCS ' Aktuelles BKS holen Set Gr = GrCol.AddCircleCenterAndPoint(0, 0, 0, 5 , 0, 0) Gr.Transform UcsMa ' Objekt auf aktuelles BKS schieben Gr.Draw Gr.Unselect Die Lösung zu finden war nicht einfach. Zumal ich mit den Matrixen so meine Probleme hab. Eine Beschreibung zum Aufbau der verwendeten Matrixen wäre hilfreich. (vom Allgemeinen mal abgesehen) Gruß H. Scheurich.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joiner Mitglied
Beiträge: 287 Registriert: 30.07.2001
|
erstellt am: 23. Okt. 2002 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für H. Scheurich
|
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002 Creo Elements/Direct Modeling Express V8 und V4 Windows 7 Professional Linux Lubuntu 20.1
|
erstellt am: 23. Okt. 2002 15:59 <-- editieren / zitieren --> Unities abgeben: Nur für H. Scheurich
Hallo H. Scheurich, mit welcher TurboCAD Version arbeitest Du? Denn mit "Dim UcsMa As New Matrix" hatte ich bei dem Macro für die Projektionen der Schnittkurve meine Probleme. Wenn Du mit 7.1 arbeitest, wie lauten denn dann Deine Einstellungen? mit Gruß Werner
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
H. Scheurich Mitglied
Beiträge: 161 Registriert: 21.06.2002
|
erstellt am: 23. Okt. 2002 16:15 <-- editieren / zitieren --> Unities abgeben:
|
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002 Creo Elements/Direct Modeling Express V8 und V4 Windows 7 Professional Linux Lubuntu 20.1
|
erstellt am: 23. Okt. 2002 16:48 <-- editieren / zitieren --> Unities abgeben: Nur für H. Scheurich
Hallo H. Scheurich, schaue bitte einmal die Kommentare unter "Projektion einer 3D Kurve". Da steht der ganze Beitrag und die Wortmeldungen zu dem Matrixproblem. Denn das angezogene Macro bekommen SteffL und ich nicht unter V7.1 zum Laufen. Würde mich freuen, wenn Du eine Lösung wüßtest. Ansonsten muß ich auf 8.xx warten müssen. Gruß Werner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
H. Scheurich Mitglied
Beiträge: 161 Registriert: 21.06.2002
|
erstellt am: 24. Okt. 2002 12:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Werner, nach einiger Zeit der Überlegung habe ich dann eine Lösung für das Problem gefunden. Probiere es bitte mal aus. Zeitgleich habe ich zu dem anderen Quelltext eine Anfrage an IMSI geschickt. (Das Problem liegt warscheinlich beim einrichten der Matrix.) Mal sehen was da raus kommt. Gruß, H. Scheurich.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002 Creo Elements/Direct Modeling Express V8 und V4 Windows 7 Professional Linux Lubuntu 20.1
|
erstellt am: 24. Okt. 2002 16:14 <-- editieren / zitieren --> Unities abgeben: Nur für H. Scheurich
Hallo H. Scheurich, Spitzt! Das ist besondere Klasse! Es funktioniert! Das dauert aber noch lange, bis ich die Klasse habe, hier konstruktiv mitzureden. Das einzige was ich ändern mußte war, in der nachfolgenden For-Next Schleife die Wertzuweisung der GrKop.Layer von "1" auf "0" zu setzen. For Each Gr In SelCol Set GrKop = Gr.Duplicate GrKop.Transform MaXY GrKop.Layer = "0" Set GrKop = Gr.Duplicate GrKop.Transform MaXZ GrKop.Layer = "0" Set GrKop = Gr.Duplicate GrKop.Transform MaYZ GrKop.Layer = "0" Set GrKop = Nothing Next Gr vielen Dank für Deine Spitzenleistung Gruß Werner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wega Mitglied Dipl.-Ing.
Beiträge: 426 Registriert: 08.10.2002
|
erstellt am: 25. Okt. 2002 16:01 <-- editieren / zitieren --> Unities abgeben: Nur für H. Scheurich
|
H. Scheurich Mitglied
Beiträge: 161 Registriert: 21.06.2002
|
erstellt am: 28. Okt. 2002 08:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Werner, danke für den Hinweis mit den Websites. Die von der FH-München ist prima zum auffrischen bzw. neu erlernen von geometrischen Verfahren in der Informatik. Wirklich sehr interessant. Gruß H. Scheurich. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |