Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Kugel mit entmake

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:  Kugel mit entmake (2489 mal gelesen)
AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 12. Aug. 2005 07:47    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,

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




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 12. Aug. 2005 07:56    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 AB 10 Unities + Antwort hilfreich

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



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 12. Aug. 2005 08:09    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

Danke,
dann werde ich es wohl doch so machen, obwohl ich gehofft habe, durch entmake das ganze beschleunigen zu können.

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

mapcar
Mitglied
CADmin



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

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 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 AB 10 Unities + Antwort hilfreich

(entmake) erzeugt keine ACIS-Objekte. Da ist nix dran zu rütteln, und (entmod) geht genausowenig. Es gibt nicht mal DXF-Gruppencodes für ihre spezifischen Eigenschaften.

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



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

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 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 AB 10 Unities + Antwort hilfreich

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.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 12. Aug. 2005 12:17    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 AB 10 Unities + Antwort hilfreich

Hi,

alternativ geht's auch über AcitveX:

Code:

(vlax-invoke-method
  (vlax-get-property
    (vlax-get-property
      (vlax-get-acad-object)
      'ActiveDocument
      )
    'ModelSpace
    )
  'AddSphere
  (vlax-3d-point '(0 0 0))
  42
  )


Gruß
CADchup

------------------
www.cadditions.de

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

mapcar
Mitglied
CADmin



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

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 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 AB 10 Unities + Antwort hilfreich

@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



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

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 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 AB 10 Unities + Antwort hilfreich

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



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

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 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 AB 10 Unities + Antwort hilfreich

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 >>)

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