| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Kugel mit entmake (2562 mal gelesen)
|
AB Mitglied
Beiträge: 255 Registriert: 24.05.2002 Mechanical Desktop 6 AutoCAD 2002
|
erstellt am: 12. Aug. 2005 07:47 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich würde gerne eine Kugel mit dem Befehl entmake erstellen, da ich dieser layerunabhängig eine Farbe direkt zuordnen möchte. Irgendwie funktioniert bei mir nur der command-Befehl (dann allerdings ohne Farbzuweisung). Funktioniert in dem Fall entmake nicht? Viele Grüße Andrea
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 12. Aug. 2005 07:56 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Erzeug mal eine Kugel und wähl sie mit (entget(car(entsel))) an.. diese Liste bräuchtest du dann (mit ein paar GC's weniger) fürs entmake... wird wohl nix ..lies doch einfach vor deinem "Kugel"-Command die aktuelle FARBE mit (setq OLDCOLOR (getvar"CECOLOR") aus, dann setz die neue Farbe mit (setvar "CECOLOR" "7") .. hier = 7 = weiß auf deinen WERT und nach dem "Kugel"-Command wieder mit (setvar "CECOLOR" OLDCOLOR) zurück ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AB Mitglied
Beiträge: 255 Registriert: 24.05.2002 Mechanical Desktop 6 AutoCAD 2002
|
erstellt am: 12. Aug. 2005 08:09 <-- editieren / zitieren --> Unities abgeben:
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 12. Aug. 2005 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für AB
|
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 12. Aug. 2005 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Zitat: Original erstellt von mapcar: (entmake) erzeugt keine ACIS-Objekte. Da ist nix dran zu rütteln
Hi Axel! dann probier doch mal das:
Code: (defun c:make-sphere () (entmake '((0 . "3DSOLID") (5 . "2C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbModelerGeometry") (70 . 1) (1 . "koo j n o ") (1 . "h J1410(1 nl ^\\VL kqoqm QK mk Y-6 ^*8 nm nnenmeki mooj ") (1 . "rn fqfffffffffffffffj:rooh n:rono ") (1 . "=0;& {rn {n {rn {rn |") (1 . "3*2/ {rn {rn {m {o |") (1 . ",7:33 {rn {rn {rn {l {rn {n |") (1 . "9><: {rn {rn {rn {m {rn {k 90-(>-; ,6183: |") (1 . ",/7:-:r,*-9><: {rn o o o n n o o o o n 90-(>-;@) V V V V |")) ) )
Grüsse Henning
------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 12. Aug. 2005 12:17 <-- editieren / zitieren --> Unities abgeben: Nur für AB
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 12. Aug. 2005 12:28 <-- editieren / zitieren --> Unities abgeben: Nur für AB
@wronzky + cadchup Ja, weiss ich doch;-) Aber es bringt keinen weiter! Über vla-dingenskirchen kommt man nur an die Standard-Eigenschaften wie Einfügepunkt und Radius (bei der Kugel). Also gut, ich revidiere meine Aussage: Eine Kugel kriegt man so grad noch hin, aber sonst kaum etwas. @wronzky: Den Code zur Ent-/Verschlüsselung der Daten (ist ja eine ziemlich dämliche XOR-95-Encryption) habe ich vor ein paar Jahren mal gepostet. Das war wohl nicht hier, sondern noch im induma-Forum, wenn ich mich recht erinnere. Wenn man also den Kram entschlüsselt und anschließend nach erfolgter Änderung wieder verschlüsselt, geht sogar ein entmod. Trotzdem bleibe ich bei meiner Kernaussage: Die Praxis ist so begrenzt, dass es im Prinzip *nicht* geht. Gruß, Axel Strube-Zettler ------------------ Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 12. Aug. 2005 19:59 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Zitat: Original erstellt von mapcar: Trotzdem bleibe ich bei meiner Kernaussage: Die Praxis ist so begrenzt, dass es im Prinzip *nicht* geht.
Na, ich würde das zwar umgekehrt sagen (Im Prinzip gehts, aber die Praxis ist zu begrenzt), aber im Prinzip hast Du Recht. Es stellt sich allerdings die Frage warum? Immerhin kriegt man ja mit diesen drei Funktionen: Code: (defun get-decoded-ele-data (objekt / liste data) (decode-code-ele-data (entget objekt)) )(defun decode-code-ele-data (data / liste) (foreach n data (progn (if (= (car n) 1) (setq liste (cons (cons 1 (decode-code-acis (cdr n))) liste)) (setq liste (cons n liste)) ) ) ) (reverse liste) ) (defun decode-code-acis (s / n l) (setq n "") (while (> (strlen s) 0) (setq l (substr s 1 1) s (substr s 2) n (strcat n (if (= " " l) " " (chr (- 159 (ascii l))) ) ) ) ) )
ja schon mal die entschlüsselten Daten. Aber Was tun damit. Ich habe mich vor einem Jahr mal damit etwas intensiver auseinander gesetzt (Da stammen auch die funktionen her). Letztlich braucht man ja nur das SAT-Format verstehen und die dekodierten Daten entsprechend bearbeiten / erstellen. Und genau da bin ich erst bei Autodesk und danach bei Spatial gescheitert. Es ist einfach nicht an eine Dokumentation zu kommen. Von Autodesk hiess es das gäbe ihre Lizenz nicht her, ich solle mich an Spatial wenden. Und dort hies es lapidar: kaufen (das Programm, nicht die Doku, die bekäme man dann dazu), oder lassen (oder, so der freundliche Hinweis, selber knobeln, wie das alles wohl alles zusammenhinge). Nach einer Weile knobeln, habe ich dann doch den 2. Vorschlag befolgt, und es gelassen. Schade eigentlich, denn ich denke, da könnte man mit Lisp doch einiges bewerkstelligen, ohne gleich den MechDesk zu kaufen... Na denn, hier noch die Lösung zu obigem Problem gemäß dem von mapcar vorgeschlagenem Weg: Code: (defun c:make-sphere ( / sphere_center sphere_radius sphere_color sphere_data) (setq sphere_center (getpoint "Kugelzentrum:")) (setq sphere_radius (getdist sphere_center "Radius:")) (setq sphere_color 256) (setq sphere_data (list '(0 . "3DSOLID") '(100 . "AcDbEntity") (cons 8 (getvar "clayer")) (cons 62 sphere_color) '(100 . "AcDbModelerGeometry") '(70 . 1) '(1 . "400 5 1 0 ") '(1 . "7 Unknown 13 ACIS 4.0.2 NT 24 Sat Jan 01 00:00:00 2005 ") '(1 . "-1 9.9999999999999995e-007 1e-010 ") '(1 . "body $-1 $1 $-1 $-1 #") '(1 . "lump $-1 $-1 $2 $0 #") '(1 . "shell $-1 $-1 $-1 $3 $-1 $1 #") '(1 . "face $-1 $-1 $-1 $2 $-1 $4 forward single #") (cons 1 (strcat "sphere-surface $-1 " (rtos (car sphere_center) 2 8) " " (rtos (cadr sphere_center) 2 8) " " (rtos (last sphere_center) 2 8) " " (rtos sphere_radius 2 8) " 1 0 0 0 0 1 forward_v I I I I #" ) ) ) ) (entmake (decode-code-ele-data sphere_data)) (prin1) )
Geht doch (!)... Grüsse, Henning ------------------ VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 12. Aug. 2005 23:17 <-- editieren / zitieren --> Unities abgeben: Nur für AB
Zitat: Original erstellt von wronzky: Na, ich würde das zwar umgekehrt sagen (Im Prinzip gehts, aber die Praxis ist zu begrenzt)
Na ja, irgendwie meinen wir das selbe - meine Formulierung war nicht so wirklich präzise;-) Einigen wir uns auf "technisch-abstrakt besehen geht's schon, praktisch nicht brauchbar". Die Doku gab es übrigens bei Spatial als PDF zum runterladen, weiss aber nicht, ob das immer noch so ist. Nur: Der ACIS-Kernel von A. ist ja einerseits grottenalt(4 vs. 7, das letzte mal, als ich das runtergeladen habe, wahrscheinlich ist inzwischen 9 oder 12 aktuell;-)))), und andererseits modifiziert. Die Doku war insofern hilfreich, dass ich zwar *im Prinzip* verstanden habe, wie diese ganzen Referenzen ("$n" oder "$-n" usw.) funktionieren, aber letztendlich wird das Ganze dann doch sehr sportlich-schweißtreibend;-) Ohne jedwede Tools ist das wie tiefergelegter Assembler - natürlich kann man Programme schreiben, indem man sich das Handbuch der Prozessor-Instruktionen bei Intel runterlädt und sie direkt eintippt wie bei einer Zusekiste aus den dreißiger Jahren. Aber jeder Assembler-Programmierer heutzutage benutzt doch schon Befehle wie MOVE oder PUSH (Assembler ist *nicht* die Maschinensprache, sondern eine Ebene höher angesiedelt), und selbst Makros sind da recht verbreitet. Aber wenn man diese Tools haben will, wenigstens auf Assembler-Niveau, dann muss man schon bei Spatial kaufen. Und dann arbeitet das eben nicht mit A. zusammen wegen der Modifikationen. Ach ja, und im nächsten oder übernächsten Release von AutoCAD wird das wohl wieder alles Schnee von gestern sein, vermute ich. Die Ankündigungen sind ja schon lange da. Dann gibt's zu AMECONVERT noch das passende ACISCONVERT. Also: abhaken und die Zeit sinnvoll nutzen. Ich bin ja immer noch ein Fan der Command-Programmierung in AutoCAD, auch wenn das inzwischen 'verpönt' ist. Es kann zwar keiner wirklich sagen, warum - ja, stimmt schon, entmake ist schneller als command, kein Zweifel. Und dass der ganze vla-sonstwas-Kram *noch* schneller ist, stimmt überhaupt nicht. Jedenfalls: ich produziere aber eine Kugel mit command wesentlich schneller als mit entmake, darauf kommt es an! Wenn ich mehr als 10000 Kugeln auf einmal brauche, dann mache ich mir Gedanken über das Tempo und suche evtl. nach Alternativen zu command. Bei kleineren Werten mache ich mir nur Gedanken, wie schnell ich das programmiert habe, basta. Gruß, Axel Strube-Zettler ------------------ Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|