| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: DFX Codes für Farbe (847 / mal gelesen)
|
Code Kian Mitglied Technischer Systemplaner (in Ausbildung)

 Beiträge: 29 Registriert: 18.09.2023
|
erstellt am: 25. Okt. 2023 09:16 <-- editieren / zitieren --> Unities abgeben:         
hallo ich versuche mit entmake kreise zu zeichnen und habe dafür folgene liste in einer variabeln gespeichert Code: (list (cons 0 . "circle") (cons 8 . "dc stringende positiv") (cons 10 mittelpunkt1) (cons 40 . 0.2632))
jetzt wollte ich gerne noch eine farbe hinzufügen aber online fi9ndet sich dafür ein intervall - also der index für farbe ist 420-427 und dann nochmal 430-437 jetzt weiß ich nicht welche indexnummer ich wählen muss und wenn mir ganz nebenbei jemand noch das truecolor system verständlich erklärt wäre super, dann weiss ich nämlich auch welche farbe ich dann einstelle. LG Kian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22497 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Okt. 2023 09:47 <-- editieren / zitieren --> Unities abgeben:          Nur für Code Kian
|
Archäologie Bubi Mitglied Archäologische Funddokumentation

 Beiträge: 68 Registriert: 09.03.2021 AutoCAD Map 3D 2024 / Raster Design AutoCAD Map 3D 2025 Faro AS-Built / TachyCAD Agisoft Metashape Professional 2.0
|
erstellt am: 25. Okt. 2023 10:19 <-- editieren / zitieren --> Unities abgeben:          Nur für Code Kian
cadffm hat ja bereits den Link zu den DXF-Codes geschickt. Im Anhang ansonsten nochmals alle Groupcodes als PDF, falls dir das lieber ist. Eines meiner Nr.1 Nachschalgewerke. ------------------
Bubi spiele, Bubi glücklich! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Code Kian Mitglied Technischer Systemplaner (in Ausbildung)

 Beiträge: 29 Registriert: 18.09.2023
|
erstellt am: 25. Okt. 2023 10:35 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Archäologie Bubi: cadffm hat ja bereits den Link zu den DXF-Codes geschickt. Im Anhang ansonsten nochmals alle Groupcodes als PDF, falls dir das lieber ist. Eines meiner Nr.1 Nachschalgewerke.
danke ihr zwei, weil wir hier schon bei dxf codes sind zur nächsten frage - ich wollte einen code schreiben der anfangs und endpunkt einer linie bestimmt und da kreise dran zeichnet
Code:
(defun c:stringpol (/ liste mittelpunkt1 mittelpunkt2 positiv negativ) (setq ename (nentsel)) (setq liste (entget (car ename))) (setq mittelpunkt1 (cdr (nth 9 liste))) (setq mittelpunkt2 (cdr (nth 10 liste))); bis hier daten sammeln (setq positiv (list (cons 0 "circle") (cons 8 "dc stringende positiv") (cons 10 mittelpunkt1) (cons 40 0.2632) )) (setq negativ (list (cons 0 "circle") (cons 8 "dc stringende negativ") (cons 10 mittelpunkt2) (cons 40 0.2632) ) ) (entmake positiv) (entmake negativ) )
ansich hat der funktioniert. jetzt ist mir aber aufgefallen, dass ich den für ein projekt nutzen wollte wo ich mit polylinien gearbeitet habe (die wohl andere codes als die normale linie nutz) und deshalb funtz er nicht, also meine frage wie finde ich in den dxf daten den anfangs und endpunkt einer LWPOLYLINe (alle meine polylinien sind einfache geraden mit einem end und einem anfangspunkt) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22497 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Okt. 2023 10:48 <-- editieren / zitieren --> Unities abgeben:          Nur für Code Kian
>>" einer LWPOLYLINe (alle meine polylinien sind einfache geraden mit einem end und einem anfangspunkt)" Solange du nicht selbst Polylinien erstellt hast (und sie danach niemand verändern konnte), können es dennoch LWPOLYLINE oder POLYLINE Objekte sein! Aber fangen wir mit LWPOLYLINE an. Du hast die Hilfe, schau dir die DXF Objektdaten an (DXF und Autolisp stimmen ja zu 99.9% überein), schau dir dazu die AutoLisp Objektdaten an, ENTGET.. Sinnvoll: Benutze eine Pline bei der du den Start und Endpunkt kennst, so ERkennst du es besser. https://ww3.cad.de/foren/ubb/Forum145/HTML/004939.shtml#000018 KLurzKurz: Es ist der erste und der letzte Vertex/Stützpunkt(was sonst) und die liegen in genau der Reihenfolge in der Entityliste vor, Gruppencode 10. Den ersten Treffer könntest du mit assoc erhalten, den letzten auf gleichem Weg: Dreh dazu einfach die Liste um: REVERSE
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Archäologie Bubi Mitglied Archäologische Funddokumentation

 Beiträge: 68 Registriert: 09.03.2021 AutoCAD Map 3D 2024 / Raster Design AutoCAD Map 3D 2025 Faro AS-Built / TachyCAD Agisoft Metashape Professional 2.0
|
erstellt am: 25. Okt. 2023 11:04 <-- editieren / zitieren --> Unities abgeben:          Nur für Code Kian
Ich störe damit wahrscheinlich etwas deinen Lehrprozess mit den DXF-Codes (mit denen du dich unbedingt beschäftigen solltest), aber für Start- und Endpunkt bei allen möglichen Linien sind die vlax-curve-Befehle imo sehr viel geeigneter. Vielleicht so: (ungetestet)
Code: (defun c:stringpol ( / Obj ) (vl-load-com) (setq Obj (vlax-ename->vla-object (ssname (ssget "_+.:E:S" (list '(0 . "*LINE"))) 0))) (entmake (list '(0 . "CIRCLE") '(8 . "dc stringende positiv") (cons 10 (vlax-curve-GetStartPoint Obj)) '(40 . 0.2632) );end list );end entmake (entmake (list '(0 . "CIRCLE") '(8 . "dc stringende positiv") (cons 10 (vlax-curve-GetEndPoint Obj)) '(40 . 0.2632) );end list );end entmake );end defun
------------------
Bubi spiele, Bubi glücklich! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Code Kian Mitglied Technischer Systemplaner (in Ausbildung)

 Beiträge: 29 Registriert: 18.09.2023
|
erstellt am: 25. Okt. 2023 11:30 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Archäologie Bubi: Ich störe damit wahrscheinlich etwas deinen Lehrprozess mit den DXF-Codes (mit denen du dich unbedingt beschäftigen solltest), aber für Start- und Endpunkt bei allen möglichen Linien sind die vlax-curve-Befehle imo sehr viel geeigneter.Vielleicht so: (ungetestet)
Code: (defun c:stringpol ( / Obj ) (vl-load-com) (setq Obj (vlax-ename->vla-object (ssname (ssget "_+.:E:S" (list '(0 . "*LINE"))) 0))) (entmake (list '(0 . "CIRCLE") '(8 . "dc stringende positiv") (cons 10 (vlax-curve-GetStartPoint Obj)) '(40 . 0.2632) );end list );end entmake (entmake (list '(0 . "CIRCLE") '(8 . "dc stringende positiv") (cons 10 (vlax-curve-GetEndPoint Obj)) '(40 . 0.2632) );end list );end entmake );end defun
auweia: muss sagen diese zeile: (vl-load-com) (setq Obj (vlax-ename->vla-object (ssname (ssget "_+.:E:S" (list '(0 . "*LINE"))) 0))) verstehe ich überhaupt nicht, müsste mir dafür wahrscheinlich ssget mal anschauen und seit wann kann man -> benutzen haha, aber der code funktioniert super also danke erstmal  zum zeit sparen werd ich den so erstmal benutzen (mit der kleinen abwandlung dass der zweite kreis im layer stringende negativ liegt). Aber natürlich werde ich mir auch die zeit nehmen mir das genau anzugucken (vorallem nochmal die dxf codes und wo sie bei welchen objekten auftauchen) und deinen code nachzuvollziehen ! Danke euch zweien für die schnelle hilfe mal wieder !!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22497 Registriert: 03.06.2002 Alles
|
erstellt am: 25. Okt. 2023 11:51 <-- editieren / zitieren --> Unities abgeben:          Nur für Code Kian
>>" seit wann kann man -> benutzen" "Schon immer", denn es ist ja nur Teil des Namens einer Funktion. (defun Kian+Code (defun Kian!Code (defun Kian->Code Die VL-Funktionen welche ACAD mitbringt, gibt es seit 24 Jahren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Archäologie Bubi Mitglied Archäologische Funddokumentation

 Beiträge: 68 Registriert: 09.03.2021 AutoCAD Map 3D 2024 / Raster Design AutoCAD Map 3D 2025 Faro AS-Built / TachyCAD Agisoft Metashape Professional 2.0
|
erstellt am: 25. Okt. 2023 12:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Code Kian
Zum besseren Verständnis (natürlich auch alles in der Hilfe dokumentiert): >> (vl-load-com) : ladet die VisualLISP Befehle >> (ssget "_+.:E:S" (list '(0 . "*LINE"))) : ssget -> Auswahl für ein SelectionSet "_+.:E:S" -> Auswahlmodus; _+ = Pickpoint; :E = Alle Entitys erlaubt; :S = Single Selection (list '(0 . "*LINE")) -> Auswahlfilter; (0 . "*LINE") alle Entitys mit dem Gropcode 0 die mit dem Text *Line übereinstimmen (* = alle möglichen/ belibig viele Charakter) >> ssname gibt den EName der angegebenen Position aus dem Selection Set (wie bei Listen startet es bei 0) >> vlax-ename->vla-object wandelt den EName in ein vla-object um, welches später für die vlax-Curves Befehle gebraucht wird
Zitat: (mit der kleinen Abwandlung dass der zweite kreis im Layer stringende negativ liegt)
Klassischer Copy&Paste Fehler ------------------
Bubi spiele, Bubi glücklich! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |