| |
| 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: _explode + _qkungroup als lsp ? (1441 mal gelesen)
|
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 11. Apr. 2007 14:42 <-- editieren / zitieren --> Unities abgeben:
hallo zusammen, bin neu hier und wollte mal fragen, ob eine/r von euch schon mal ein lisp geschrieben/gelesen hat, welches o.a. befehle in einem icon kombiniert. danke im vorraus.
------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Apr. 2007 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
Die wenigstens Programmieren auf LT mit Extender (das es sich um diese Software(n) handelt solltest du im übrigen auch mal sagen ) Von daher bin ich ziemlich sicher: Nein ! Aber Btw: Ein Icon/Button Programmiert man doch nicht sondern man hat normalerweise ein simples BUTTONMAKRO / MENÜMAKRO dahinter.. Ich denke wir sind hier also falsch im Lispforum, zudem erzähle doch mal genau was du erreichen möchtest ! ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 11. Apr. 2007 14:52 <-- editieren / zitieren --> Unities abgeben:
ich "versuche" einfach diese beiden befehle zu einem zusammenzufügen. das dies noch eine "simple" sache ist, liegt in der natur der dinge eines anfängers in diesem bereich. es muss aber doch irgendwie machbar sein einen/mehrere blöcke und gleichzeitig gruppierungen einer zeichnung aufzulösen, bzw. aufzuheben. oder ?? ich dachte das ganze ging evtl. über eine lisp-datei... ------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Apr. 2007 14:57 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
Du solltest erstmal deine System-Info ausfüllen damit die anderen Leute wissen mit was du arbeitest ! Den ungroup Befehl gibt es zB in AutoCAD garnicht wie gesagt .. Zu dem "Simpel" - dafür müßtest du erstmal sagen was du überhaupt tun möchtest ! Alle Gruppen Auflösen: Gibt es bereits eine Möglichkeit (User marc.scherer und sein Gruppen Menü, dabei enthalten der LispCode) Alle BlockREFERENZEN auflösen geht natürlich auch.. Die Auswahl auf Insert´s beschränken und exploden was das Zeug hält. Wie das im Lisp zu realisieren geht dazu gibt es auch Threads.. Aber wie gesagt: Ohne genaue Erläuterung = keine Hilfe Suchst du ein Fertiges Programm = gibt es nicht (denke ICH) ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 11. Apr. 2007 15:14 <-- editieren / zitieren --> Unities abgeben:
...scheinbar drücke mich mich noch zu umständlich aus, bin halt noch laie. wie gesagt, ich möchte die beiden lt befehle "ursprung" und "gruppierung aufheben" zu einem befehl zusammenführen. ob das ein kombiniertes makro ist, oder ein .lsp...? oder ob das überhaupt funktioniert..keine ahnung. dachte das könnte ich hier erfahren, oder vielleicht auch eine lösung..? würde das ganze dann mit extender ins lt eibasteln... ------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 11. Apr. 2007 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
|
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 12. Apr. 2007 08:58 <-- editieren / zitieren --> Unities abgeben:
@cadffm... auch wenn du mein anliegen nicht verstehst, danke ich dir für die versuche das problem zu verstehen. habe nur keinen schimmer, wie ich das was ich machen möchte anders erklären soll. die befehle die ich zusammenführen möchte haben nunmal diese bezeichnung die oben angegeben sind. den ansatz möchte ich lieber nicht hier anbeifügen...ist sowieso "programmierter" unsinn. ich versuche wie gesagt einfach via lisp, zwei schon im lt bestehenden befehle in einem zu bündeln und kenne die art und weise nicht, wie dabei das lisp dafür aussehen muss... ------------------ gruß 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. Apr. 2007 09:08 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
hier findest du Lispcode für Gruppen, auch zum auflösen aller, und für die Blöcke hilft dir folgender codeschnipsel (setq auswahl (ssget "_X" '((0 . "INSERT")))) (repeat(sslength AUSWAHL) (command "_explode" (setq OBJ(ssname AUSWAHL 0)) "") (ssdel OBJ AUSWAHL) ) ------------------ - 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 |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 12. Apr. 2007 09:14 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
Da du allem Anschein nach wirkliches Interesse zeigst um auch am Ball bleibst können wir diesen Thread gerne weiterführen , aber da du bisher nicht mal ansatzweise preisgegeben hast wie dein Wissen um Lisp oder Makro aussieht, hatte ich vermuten müssen das du garkeine Kenntnisse hast.. Da du jedoch schon irgendetwas probiert hast, wie du nun schreibst, gibt es ja evtl doch noch Hoffnung Zu deinem ersten wichtigsten Problem, die Aufgabenstellung zu beschreiben und ggf. auch die Problembeschreibung. EIN BESTIMMTES Problem hast du bisher nicht genannt, also sieht das bisher so aus: Mach mal das was ich will, was ich GENAU will sage ich aber nicht Also packen wir es nochmal an: Beispiel: "Ich will den Befehl Kreis und Linie kombinieren" <--- SO in der Art ist die einzige Information die du hier geschrieben hast ! Frage zu meinem eigenen Beispiel: Soll nach dem vollständigen abarbeiten des Befehls Linie der Kreisbefehl aufgerufen werden ? Oder soll erst ein Kreis erstellt werden und dann eine Linie erstellt werden ? Evtl soll auch ein Kreis erstellt werden und der Linienbefehl danach nur gestartet werden damit der Nutzer dann beliebig viele Linien erstellen kann ? Soll der Kreis immer eine feste Größe haben oder prozentual zu der Linienlänge sein ? Falls der Kreis feste Vorgaben hat, soll er dann am LinienStart,-End oder Mittelpunkt platziert werden ? Und die Geschichte könnte man auf die Länge eines Buches ausdehnen, auch in deinem Fall. FAZIT: Du mußt das gewünschte Ziel (für ALLE Fälle) konkret beschrieben ! Kurz mal erläutert an deinem Beispiel kommt zB die Frage was überhaupt in Urspürung gesetzt werden soll, ich könnte mir vorstellen das es wenig sinnvoll wäre Polylinien in Linien zu explode´n usw. ------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 12. Apr. 2007 10:11 <-- editieren / zitieren --> Unities abgeben:
also gut... ich habe eine bestimmte kontur, welche ursprünglich aus einzelnen linien und keinen polylinien bestand. aus gründen der weiterverarbeitung innerhalb unserer fa. müssen diese linien gruppiert werden. ebenfalls kommen vorher definierte blöcke ( auch aus einzelnen linien vorher erstellt ) in diese kontur. somit wäre diese zeichnung fertig. mein ziel ist es nun mit dem befehl: 1. gruppierung aufheben anzufangen ( hier die gesamte zeichnung ohne vorherige auswahl ) 2. anschließend alle blöcke der gleichen zeichnung ( ebenfalls ohne vorherige auswahl ) aufzulösen. die kontur besteht also am ende wieder aus einzelnen linien ohne gruppierung und blöcke. am ende dieses gesamten vorgangs ist das ganze dann abgeschlossen. danke für dein/euer beispiel, habe nun versucht die gesamten vorgänge aufzulisten. das beispiel war einleuchtend auch auf die details zu achten...wahrscheinlich wird das ganze dann so detailiert programmiert..richtig ? blos wie ? ------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 12. Apr. 2007 10:40 <-- editieren / zitieren --> Unities abgeben:
könnte das ganze dan so ungefähr aussehen ? (defun C:XGA (/ GLIST GLIST2) (setq GLIST (GET-GNAMESFROMDIC) GLIST2 '() ) ;_ end setq (if GLIST (progn (foreach ELEM GLIST (setq GLIST2 (cons (cdr ELEM) GLIST2)) ) ;_ end foreach (foreach ELEM GLIST2 (command "_.-group" "_ex" ELEM) ) ;_ end foreach (princ (strcat "\nOk, \"" (itoa (length GLIST2)) "\" Gruppe(n) wurden aufgelöst!" ) ;_ end strcat ) ;_ end princ ) ;_ end progn (princ "\nKEINE Gruppen vorhanden!") (setq auswahl (ssget "_X" '((0 . "INSERT")))) (repeat(sslength AUSWAHL) (command "_explode" (setq OBJ(ssname AUSWAHL 0)) "") (ssdel OBJ AUSWAHL) ) ) ;_ end if (princ) ) ;_ end defun ------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 12. Apr. 2007 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 12. Apr. 2007 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
Oh, habe dein letztes Posting übersehen, sorry .. Ja, im Grunde geht das so ! Dir fehlte jetzt nur die Subroutine aus Marc´s Code. ABER: Wenn man das ernsthaft nutzen möchte, mußte man jetzt den Code so weit verändern das auf die Layer geachtet wird, denn eine Blockreferenz auf einem gesperrten Layer zB kann nicht über einen Command-explode aufgelöst werden und das Programm rennt sogar in einen Fehler. FETT = EDIT------------------ die alte SUCHfunktion.. - System-Angaben - User:FAQ(Adesk) [Diese Nachricht wurde von cadffm am 12. Apr. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 13. Apr. 2007 08:55 <-- editieren / zitieren --> Unities abgeben:
..irgendwie funzt das noch nicht so.. (defun C:XGA (/ GLIST GLIST2) (setq GLIST (GET-GNAMESFROMDIC) GLIST2 '() ) ;_ end setq (if GLIST (progn (foreach ELEM GLIST (setq GLIST2 (cons (cdr ELEM) GLIST2)) ) ;_ end foreach (foreach ELEM GLIST2 (command "_.-group" "_ex" ELEM) ) ;_ end foreach (princ (strcat "\nOk, \"" (itoa (length GLIST2)) "\" Gruppe(n) wurden aufgelöst!" ) ;_ end strcat ) ;_ end princ ) ;_ end progn (princ "\nKEINE Gruppen vorhanden!") (setq auswahl (ssget "_X" '((0 . "INSERT")))) (repeat(sslength AUSWAHL) (command "_explode" (setq OBJ(ssname AUSWAHL 0)) "") (ssdel OBJ AUSWAHL) ) ) ;_ end if (princ) ) ;_ end defun ..gibt nen error... ------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 13. Apr. 2007 08:57 <-- editieren / zitieren --> Unities abgeben:
|
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 13. Apr. 2007 09:03 <-- editieren / zitieren --> Unities abgeben:
ok...nun das ergebnis...leider nicht umsetzbar ?? (defun c:UNGRPEXPL () ;(command "_.QKUNGROUP" "_ALL" "") (if(setq AUSWAHL (ssget "X" '((0 . "INSERT")(67 . 0)))) (progn (setq INDEX -1) (repeat(sslength AUSWAHL) (command "_explode" (ssname AUSWAHL(setq INDEX(1+ INDEX)))) ) ) ) ) ;_ end foreach (princ (strcat "\nOk, \"" (itoa (length GLIST2)) "\" Gruppe(n) wurden aufgelöst!" ) ;_ end strcat ) ;_ end princ ) ;_ end progn (princ "\nKEINE Gruppen vorhanden!") (setq auswahl (ssget "_X" '((0 . "INSERT")))) (repeat(sslength AUSWAHL) (command "_explode" (setq OBJ(ssname AUSWAHL 0)) "") (ssdel OBJ AUSWAHL) ) ) ;_ end if (princ) ) ;_ end defun endet ohne ausführung mit nil ------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 13. Apr. 2007 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
|
babilonier Mitglied -
Beiträge: 11 Registriert: 11.04.2007 LT 2006
|
erstellt am: 13. Apr. 2007 10:27 <-- editieren / zitieren --> Unities abgeben:
ja danke dafür...!! das ganze ist auch schon eingebaut. leider ist die ausführung so, das er mir nach befehlausführung weder die gruppen aufhebt noch die blöcke auflöst... ------------------ gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 13. Apr. 2007 13:58 <-- editieren / zitieren --> Unities abgeben: Nur für babilonier
|