Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  grvecs + TransMatrix im UCS

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  grvecs + TransMatrix im UCS (568 mal gelesen)
reltro
Mitglied
student


Sehen Sie sich das Profil von reltro an!   Senden Sie eine Private Message an reltro  Schreiben Sie einen Gästebucheintrag für reltro

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 21. Mrz. 2013 20:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Lispler...

Habe das Problem dass ich gerne mittels (grvecs ...) einige linien Zeichnen möchte, was auch nicht das Problem darstellt.

das Problem ist die Transformationmatrix für grvecs in einem UCS.

Code:
(  (lambda (ang V / )
      (list
        (list (cos ang)(* (sin ang) -1) 0 (car V))
        (list (sin ang)(cos ang) 0 (cadr V))
        (list 0 0 1 (caddr V))
        (list 0 0 0 1)
      )
  )
  RotationsWinkel_rad
  TranslationsVektor
)

Habe jetzt so einiges ausprobiert nur leider hab ich keine Möglichkeit gefunden:
- trans in alle möglichen Richtungen
- ucsXdir/ucsYdir
- ucsorg

Wäre sehr froh wenn mir jemand helfen könnte und einen Anstoß geben könnte...

Grüße
Reltro

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

reltro
Mitglied
student


Sehen Sie sich das Profil von reltro an!   Senden Sie eine Private Message an reltro  Schreiben Sie einen Gästebucheintrag für reltro

Beiträge: 125
Registriert: 08.11.2009

Acad 2012 - VBA,Lisp
Revit 2012
3dsMax 2012
Rhino 5 - GH,Pyhton 3,rhino.Common<P>Win 7 - i7 4x3.2GHz - 8Gb DDR3

erstellt am: 22. Mrz. 2013 11:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hab einen Teil des Problems inzwischen selbst gelöst...

Folgendes funktioniert wenn das UCS gesetzt wurde, wobei UCSFOLLOW = 0 war. das Fadenkreuz ist somit "gedreht".
Wenn ich UCSFOLLOW aber auf 1 hatte, und somit der Display gedreht wurde, passiert aus meiner logik her etwas sehr seltsames.

Kann das vielleicht jemand testen und mir einen Anstoß geben?
wäre sehr dankbar.

Code:

(defun _grvecs (vecs rotation_z translation_xy scale_xyz / )
   (grvecs
      vecs
      (  (lambda (ang V scale / xDir)
            (setq xDir (angle '(0 0 0) (getvar 'ucsxdir))
                  V    (mapcar
                          '+
                           ((lambda (a / )
                               (list
                                 (- (* (cos a) (car V)) (* (sin a) (cadr V)))
                                 (+ (* (sin a) (car V)) (* (cos a) (cadr V)))
                                 0
                               )
                            )
                            xDir
                           )
                           (trans '(0 0 0) 1 0)
                       )
                  ang  (+ xDir ang)
            )
            (list
               (list (* (cos ang) (car scale))(* (sin ang) -1) 0. (float (car V)))
               (list (sin ang)(* (cos ang) (cadr scale)) 0. (float (cadr V)))
               (list 0. 0. (* 1. (caddr scale)) 0.)
               (list 0. 0. 0. 1.)
            )
         )
         (if rotation_z
             rotation_z
             0
         )
         (if translation_xy
             translation_xy
             '(0 0 0)
         )
         (if scale_xyz
             scale_xyz
             '(1 1 1)
         )
      )
   )
)


Grüße reltro

[Diese Nachricht wurde von reltro am 22. Mrz. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz