Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Einsetzrichtung nach oben

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:  Einsetzrichtung nach oben (454 mal gelesen)
Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 22. Jul. 2006 20:05    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 zusammen

Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht:

Es sollen INSERTS eingesetzt werden, wobei die Einsetzrichtung von anderen Objekten (zB. LINIE) berechnet wird, aber die INSERTS dürfen dabei nicht auf dem Kopf stehen.
Damits nicht so einfach ist - die Zeichnung ist in der Regel mit
(command "_.DVIEW" "" "_TWIST" ...) verdreht - diese Drehung kriegt man mit (getvar "VIEWTWIST"). Und das BKS soll NICHT verändert werden!
Mein Ansatz (wenn Einsetzrichtung mehr als pi/2 von VIEWTWIST abweicht - kehrt euch) scheitert an der Tatsache, dass der Wert von (getvar "VIEWTWIST") "irgendwo" von 0 auf 2*pi (~6.28) "springt".

Ziel ist eine Funktion, die eine Richtung prüft und sie entweder unverändert, oder eben gedreht (um pi), zurückgibt.


------------------
Gruß, Ernst

Meine Homepage

[Diese Nachricht wurde von Geos am 22. Jul. 2006 editiert.]

[Diese Nachricht wurde von Geos am 22. Jul. 2006 editiert.]

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 23. Jul. 2006 14:19    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 Nur für Geos 10 Unities + Antwort hilfreich

Hallo Ernst

Wenn ich Dein Problem richtig verstehe, möchtest Du den Einfügewinkel auf den 1. bzw. 4. Quadranten beschränken.
Winkel im 1./4. Quadranten -> Winkel lassen
Winkel im 2./3. Quadranten -> Winkel mit PI verrechnen

Die Sache mit VIEWTWIST würde ich  folgendermaßen lösen:
1. ObjektWinkel(im akt. BKS) + VIEWTWIST -> tatsächlicher Winkel am Bildschirm
2. tatsächlichen Winkel auf 1./4. Quadrant beschränken
3. beschränkter Winkel - VIEWTWIST ----> Einfügewinkel für INSERT

Code:

;;;------------------------------------
;;; gibt Winkel im 1. und 4. Quadranten zurück,
;;; unter Berücksichtigung von "VIEWTWIST"
;;;------------------------------------
(defun correctangle (ang / absang viewang)
  (setq viewang (getvar "VIEWTWIST"))
  (realangle (- (angle-to:1+4 (+ ang viewang) 1e-06) viewang))
)
;;;______________________________________________________________________________
;;;-------------------
;;; Globals definieren
;;;-------------------
(setq *2pi*   (* 2.0 pi)
      *pi/2*  (* 0.5 pi)
      *1.5pi* (* 1.5 pi)
)
;;;-------------------------------------
;;; Gibt Winkel im 1. und 4. Quadranten zurück
;;; Wenn Winkel im 2. Quadranten -> ang + pi
;;; Wenn Winkel im 3. Quadranten -> ang - pi
;;; Argumente: ang    - Winkel positiv oder negativ (wird korrigiert)
;;;            fuzzy  - Fuzzyfaktor für Quadrantengrenzen
;;;                       wenn 'nil oder keine Zahl -> kein fuzzy
;;; Rückgabe: positiver Winkel im 1. oder 4. Quadrant
;;,           0     <= ang <= pi/2
;;;      oder 1.5pi <= ang <  2pi
;;;-------------------------------------
(defun angle-to:1+4 (ang fuzzy /)
  ;; negative Winkel bzw. Winkel > 2PI korrigieren
  (setq ang (realangle ang))
  (cond ;;-------
        ;; Quadrantengrenzen -> Winkel korrigieren auf PI/2 bzw. 1.5pi
        ;;-------
        ;;
        ;; ang ~ pi/2 -> pi/2
        ((and (numberp fuzzy) (equal ang *pi/2* fuzzy)) *pi/2*)
        ;; ang ~ 1.5pi -> 1.5pi
        ((and (numberp fuzzy) (equal ang *1.5pi* fuzzy)) *1.5pi*)
        ;;-------
        ;; 2. Quadrant -> ang + PI
        ;;-------
        ((and (> ang *pi/2*) (< ang pi)) (+ ang pi))
        ;;-------
        ;; 3. Quadrant oder pi -> ang - PI
        ;;-------
        ((and (>= ang pi) (< ang *1.5pi*)) (- ang pi))
        ;;-------
        ;; sonst 1+4. Quadrant -> unverändert
        ;;-------
        ('t ang)
  )
)
;;;-------------------------------
;;; gibt tatsächlichen Winkel zurück
;;; Winkel über 2PI werden reduziert,
;;; negative Winkel werden in postiven Winkel umgerechnet
;;;
;;; Argumente: ang - positiver oder negativer Winkel
;;; Rückgabe: 0 <= ang < 2PI
;;;-------------------------------
(defun realangle (ang /)
  (if (minusp ang)
    (+ (rem ang *2pi*) *2pi*)
    (rem ang *2pi*)
  )
)

Grüße

Andi

[Diese Nachricht wurde von andi2050 am 23. Jul. 2006 editiert.]

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 23. Jul. 2006 15:51    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

Servus Andi

Hast Du am Sonntag nix besseres zu tun 
Aber danke für Deine Hilfe!

Manchmal hat man wirklich Bretter vorm Kopf - warum bin ich nicht auf die Idee gekommen den Objektwinkel und VIEWTWIST zu addieren?

Die Drehung soll übrigens im 3. und 4. Quadranten erfolgen (wenn die ObjektRichtung nach "links" zeigt)

Mein Ergebnis schaut jetzt so aus:

Code:---------------------------

(defun drob (#richt / )
  (if (< (* 2 pi) (setq #angle (+ #richt (getvar "VIEWTWIST"))))
    (setq #angle (- #angle (* 2 pi)))
  )
  (if
    (and
      (> #angle (/ pi 2))
      (< #angle (* 3 (/ pi 2)))
    )
    (+ #richt pi)
    #richt
  )
)

CodeEnde ---------------------------

------------------
Gruß, Ernst

Meine Homepage

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 23. Jul. 2006 16:41    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 Nur für Geos 10 Unities + Antwort hilfreich

Hi !

Freut mich, daß Deine Bretterwand ab ist. 
Nur mit der Quadrantenbezeichnung liegst Du daneben.

:besserwisser EIN:
1.Quadrant 0°-90° (0 - pi/2)
2.Quadrant 90°-180° (pi/2 - pi)
3.Quadrant 180°-270° (pi - 1.5pi)
4.Quadrant 270°-360° (1.5pi - 2pi)
:besserwisser AUS:

Wünsch Dir noch einen schönen Sonntag... hab jetzt was besseres zu tun, weil's nimmer so heiß ist -> Radlfahrn

Andi

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 23. Jul. 2006 17:16    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

Hi Andi

Bei uns hats noch immer 32° (17 Uhr) - zu heiß zum Radfahren.

Was die Quadranten betrifft:
Da hab ich nicht dran gedacht, dass bei uns (Vermesser) alles etwas anders ist.

geodätisches Koordinatensystem:
y = Rechtswert
x = Hochwert
(zur Entwarnung: im Koord.verzeichnis wird das Y zuerst angeschrieben)

Winkel:
Einheit = (Neu)Grad bzw. Gon (1 Gon = 100 Minuten)
          (keine Umrechnungsprobleme Dezimalgrad - min/sek) 
          (rechter Winkel = 100 gon), (Vollkreis = 400 gon)
Nullrichtung = Norden    (= parallel zu (unserer) X-Achse)
Drehrichtung: im Uhrzeigersinn
  (daher auch Quadranten im UZ-Sinn - von rechtsoben beginnend)

Vielleicht löst sich das eine oder andere Problem mit einem Geometerplan ja mit dieser Info

------------------
Gruß, Ernst

Meine Homepage

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

andi2050
Mitglied



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

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 23. Jul. 2006 20:53    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 Nur für Geos 10 Unities + Antwort hilfreich

Hi Ernst

Das habe ich bisher nicht gewusst, man lernt nie aus...
Gut,daß ich damit nix zu tun hab, denn daran könnt ich mich nicht gewöhnen.

Danke für die ausführliche Info !

Grüße

Andi

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 24. Jul. 2006 07:02    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

Servus Andi

Mir gehts umgekehrt, zumindest was die Winkeleinheit betrifft -
zB. 10.99 Gon sind 10 Gon und 99 Minuten - die ganze Umrechnerei fällt weg.

------------------
Gruß, Ernst

Meine Homepage

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