| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: DFX Codes für Farbe (347 / mal gelesen)
|
Code Kian Mitglied Technischer Systemplaner (in Ausbildung)
Beiträge: 25 Registriert: 18.09.2023 Windows 64 bit Visual Studio Code Autocad 3d 2024
|
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: 21864 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: 55 Registriert: 09.03.2021 AutoCAD Map 3D 2013 AutoCAD Map 3D 2023 AutoCAD Map 3D 2024 Faro AS-Built / TachyCAD BricsCAD V18 Elcovision ElTheo Agisoft Metashape Professional
|
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: 25 Registriert: 18.09.2023 Windows 64 bit Visual Studio Code Autocad 3d 2024
|
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: 21864 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: 55 Registriert: 09.03.2021 AutoCAD Map 3D 2013 AutoCAD Map 3D 2023 AutoCAD Map 3D 2024 Faro AS-Built / TachyCAD BricsCAD V18 Elcovision ElTheo Agisoft Metashape Professional
|
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: 25 Registriert: 18.09.2023 Windows 64 bit Visual Studio Code Autocad 3d 2024
|
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: 21864 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 |
| Technischer Systemplaner (m/w/d) der Fachrichtung Versorgungs- & Ausrüstungstechnik | Als zentraler Dienstleister des Landes Schleswig-Holstein setzen wir als GMSH mit unseren 1.700 Beschäftigten nachhaltige Standards in den Bereichen öffentliches Bauen, Bewirtschaften und Beschaffen. Bei der Suche nach den besten Lösungen für unsere Kunden sind wir fachkundig und zuverlässig, innovativ und zukunftsorientiert. Sie suchen einen neuen Arbeitsplatz mit spannenden Aufgaben ... | Anzeige ansehen | Systemadministration, Netzwerkadministration |
|
Archäologie Bubi Mitglied Archäologische Funddokumentation
Beiträge: 55 Registriert: 09.03.2021 AutoCAD Map 3D 2013 AutoCAD Map 3D 2023 AutoCAD Map 3D 2024 Faro AS-Built / TachyCAD BricsCAD V18 Elcovision ElTheo Agisoft Metashape Professional
|
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 |