Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Bogen in Umgrenzung Schraffur

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:  Bogen in Umgrenzung Schraffur (1349 mal gelesen)
joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 29. Jun. 2012 09: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


BoegenAlsUmgrenzungsObjekteSchraffur.dwg.txt

 
Hallo,
ich habe eine Frage zu einer nicht assoziativen Schraffur, deren Umgrenzungspfaddaten ich auswerten möchte:
In den Umgrenzungsdaten sind 2 Bögen enthalten, deren Gruppencode 73 auf 0 steht, alle anderen Bögen stehen auf 1 im GC 73. Ich weiß, daß damit die Ausrichtung gesteuert wird, im oder gegen den Uhrzeigersinn.

Was ich aber nicht verstehe sind die Winkelangaben im GC 50/51, wenn der GC 73 auf 1 steht, dann entsprechen die Winkel dem WKS, wenn der GC 73 auf 0 steht, dann weiß ich nicht, worauf sich daß bezieht?

Anbei eine Funktion, die mir die Umgrenzungspfaddaten in eine Liste schreibt und diese dann mit Entmake als Linien und Bögen in der Zeichnung erzeugt. Die beiden Bögen mit dem GC73 = 0 sind dann nicht korrekt erzeugt, weil der Winkel nicht zum WKS passt.

Code:

(defun c:TEST ( / A FLAG OBJLIST TEMPLIST obj)
  (setq obj (car(entsel "\nNicht assoziative Schraffur wählen:"))
        vla-obj (vlax-ename->vla-object obj))
  (mapcar '(lambda(A)
            (if (not Flag)
              (if (=(car A)72)
                (setq Flag 'T
                      TempList (cons A TempList)))
              (progn
                (if (member (car A) '(72 97))
                  (setq objList (cons (reverse TempList)objList)
                        TempList nil))
                (if (/= (car A) 97)
                  (setq TempList (cons A TempList))
                  (setq Flag nil)))))
    (entget obj))

 
  (mapcar '(lambda(A)
            (if (=(cdr(assoc 72 A))1)
              (entmake (list (cons 0 "LINE")
                              (assoc 10 A)
                              (assoc 11 A)
                              (cons 62 3)))
              (entmake (list (cons 0 "ARC")
                              (assoc 10 A)
                              (assoc 40 A)
                              (assoc 50 A)
                              (assoc 51 A)
                              (cons 62 3)))))
    (reverse objList))
    )



Hier auch nochmal die Liste, die rausgeschrieben wird:

Code:

'(((72 . 1) (10 61.8334 83.153 0.0) (11 46.0723 62.7192 0.0))
  ;;;Start Bogen 1
  ((72 . 2)
  (10 -31297.2 24292.0 0.0)
  (40 . 39616.4)
  (50 . 0.658078)
  (51 . 0.658642)
  (73 . 0))
  ;;;Ende Bogen 1
  ((72 . 2)
  (10 5436.35 -4137.29 0.0)
  (40 . 6833.35)
  (50 . 2.48295)
  (51 . 2.48431)
  (73 . 1))
  ((72 . 2)
  (10 110.082 -26.6906 0.0)
  (40 . 105.33)
  (50 . 2.48431)
  (51 . 2.61055)
  (73 . 1))
  ((72 . 2)
  (10 72.1606 -4.41891 0.0)
  (40 . 61.3527)
  (50 . 2.61055)
  (51 . 2.77661)
  (73 . 1))
  ((72 . 2)
  (10 126.374 -25.134 0.0)
  (40 . 119.389)
  (50 . 2.77661)
  (51 . 2.83326)
  (73 . 1))
  ((72 . 2)
  (10 237.794 -60.6206 0.0)
  (40 . 236.323)
  (50 . 2.83326)
  (51 . 2.84017)
  (73 . 1))
  ((72 . 1) (10 12.125 9.53878 0.0) (11 29.7589 34.8928 0.0))
  ((72 . 1) (10 29.7589 34.8928 0.0) (11 29.9579 35.1648 0.0))
  ((72 . 1) (10 29.9579 35.1648 0.0) (11 58.2609 73.7658 0.0))
  ((72 . 2)
  (10 -425.503 428.481 0.0)
  (40 . 599.875)
  (50 . 5.6505)
  (51 . 5.707)
  (73 . 1))
  ((72 . 2)
  (10 -425.552 428.518 0.0)
  (40 . 599.936)
  (50 . 5.70699)
  (51 . 5.76934)
  (73 . 1))
  ;;;Start Bogen 2
  ((72 . 2)
  (10 445.106 -62.8849 0.0)
  (40 . 399.825)
  (50 . 3.65541)
  (51 . 3.745)
  (73 . 0))
  ;;;Ende Bogen 2
  ((72 . 1) (10 115.888 163.997 0.0) (11 111.724 158.235 0.0))
  ((72 . 1) (10 111.724 158.235 0.0) (11 106.61 150.747 0.0))
  ((72 . 1) (10 106.61 150.747 0.0) (11 97.2129 136.167 0.0))
  ((72 . 1) (10 97.2129 136.167 0.0) (11 90.0309 124.633 0.0))
  ((72 . 1) (10 90.0309 124.633 0.0) (11 82.7481 113.136 0.0))
  ((72 . 1) (10 82.7481 113.136 0.0) (11 73.4232 99.2041 0.0))
  ((72 . 1) (10 73.4232 99.2041 0.0) (11 67.5224 90.8274 0.0))
  ((72 . 1) (10 67.5224 90.8274 0.0) (11 61.8213 83.137 0.0))
  ((72 . 1) (10 61.8213 83.137 0.0) (11 61.8334 83.153 0.0)))

Mein Ziel ist es, die Schraffur zu transformieren, dafür muss ich mir bei den Bögen die Start- und Endpunkte berechnen, die Erstellung der Bögen über ENTMAKE war also nur zum testen.

Gibt es Möglichkeiten, an die Start- und Endpunkte über das VLA-Objekt ranzukommen? Ich habe da nichts gefunden, oder verstehe es nicht.

War zwar ziemlich viel, bin aber wie immer dankbar für jeden Tip.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 29. Jun. 2012 09:34    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

Da war ich ein bißchen voreilig, Udo hatte mir vor kurzem folgenden Link gesendet:
http://www.jtbworld.com/lisp/hatchb.htm

Dort sind alle Informationen enthalten die ich brauche, der Bogen wird wie folgt erstellt:

Code:

(entmake (list (cons 0 "ARC")
              (assoc 10 A)
              (assoc 40 A)
              (cons 50 (if (=(cdr(assoc 73 A))0)
                            (- 0.0 (cdr(assoc 51 A)))
                            (cdr(assoc 50 A))))
              cons 51 (if (=(cdr(assoc 73 A))0)
                            (- 0.0 (cdr(assoc 50 A)))
                            (cdr(assoc 51 A))))
                              (cons 62 3))
)

Das Thema ist damit für mich abgehakt

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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