| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| CIDEON Whitepaper: Konfigurationsprozess - durchgängig und zukunftsweisend, ein Whitepaper
|
Autor
|
Thema: Listen (1279 mal gelesen)
|
m-troeger Mitglied gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS
Beiträge: 295 Registriert: .. ACAD14 und 2005; MAP4; GeoCAD; PARIS; ( Vermessung )
|
erstellt am: 20. Aug. 2001 21:45 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine LISP geschrieben, wo Blöcke mit Attributen eingefügt werden, dabei möchte ich aber die Attributwerte (z.B 2 Attribute) mit einer Liste übergeben. Wie macht mann das ? meine Liste: bei (princ MAINLIST) erscheint folgendes (1245 abcd)("12345" "abcd") nun der Einfügebefehl (command "-EINFÜGE" Einfügepkt XFakt YFakt ZFakt Winkel (MAINLISTE)) ich bekomme die Fehlermeldung Nicht beendigtes komplexes Objekt Danke im vorraus Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marco Müller Mitglied Konstrukteur Versorgungstechnik
Beiträge: 241 Registriert: 12.03.2001 Acad2002 (engl.) LiNear 3D-Heizzentrale WinXP SP1 AMD 2,8 GHz 1GB RAM GF FX5700 128MB
|
erstellt am: 21. Aug. 2001 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für m-troeger
Hallo Mario, kann es sein, dass du dich verschrieben hast: Einmal MAINLIST und dann MAINLISTE? Wenn nicht, dann teil doch mal deine Liste auf. Da AutoCAD nacheinander alle Attribute abfrägt, brauchst du beim Einfügen nur sagen was drinstehen soll. Beispiel: Attribut 1 soll "123" enthalten und Attribut 2 "ABC", dann: (setq attrib1 "123" attrib2 "ABC") (command "-EINFÜGE" Einfügepkt XFakt YFakt ZFakt Winkel attrib1 attrib2) Gruss Marco
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
m-troeger Mitglied gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS
Beiträge: 295 Registriert: .. ACAD14 und 2005; MAP4; GeoCAD; PARIS; ( Vermessung )
|
erstellt am: 21. Aug. 2001 18:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Marco, danke esrtmal, so wie Due mir das beschrieben hast ist mir das klar. Ich möchte aber Blöcke mit wesentlich mehr und unterschiedlich vielen Attributen einfügen. Deshalb versuche ich dies über eine Liste, welche jeweils soviel Werte enthält wie mein Bloch Attribute hat. Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 22. Aug. 2001 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für m-troeger
Hallo Mario, folgende LISP-Zeilen erfüllen deine Anforderungen. Ich denke, das kannst du deinen speziellen Bedürfnissen anpassen. Bei Fragen ... Grüße Holger (setvar "attreq" 1);Sicherstellen, daß Attribute abgefragt werden (setq ATTLI (list "12345697" "PROJEKTNAME" "DWGNAME" "GRUNDRISS"));Listenwerte in Reihenfolge der Attributabfrage (command "_.INSERT" "PLANKOPF" "0,0" "" "" "");Einfügen des Blockes OHNE Attribute auszufüllen (mapcar '(lambda (WE);Attribute ausfüllen (command WE) ) ATTLI ) (while (= 1 (getvar"cmdactive"));Falls mehr attribute abgefragt werden, werden diese leer (oder auf Vorgabe) gelassen (command "") ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1764 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 22. Aug. 2001 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für m-troeger
Hallo Mario anbei ein kleines Programm, welches Dein Problem lösen sollte (defun C:BLINS ( / bname winkel scalef alst p1 cmd n) (setq bname "B1") (setq winkel 0) (setq scalef 1) (setq alst '("Attribut1" "Attribut2")) (if (setq p1 (getpoint "Einfügepunkt: ")) (progn (setq cmd (list winkel scalef scalef 'p1 bname "_-INSERT" 'command)) (foreach n alst (setq cmd (cons n cmd)) ) (eval (reverse cmd)) ) ) ) Der "Trick" dabei ist, die Liste zum Einfügen des Block nicht "starr" zu erstellen, sondern vom Programm aus erstellen zu lassen, (einer der großen Vorteile von LISP). Grüße Heinz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
m-troeger Mitglied gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS
Beiträge: 295 Registriert: .. ACAD14 und 2005; MAP4; GeoCAD; PARIS; ( Vermessung )
|
erstellt am: 22. Aug. 2001 20:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Heinz, dein Code funktioniert absolut, coole Sache. Ich lisp'le zwar schon eine ganze Weile, aber darauf wäre ich nicht gekommen. Da hab ich richtig was dazu gelernt, hah also noch mal schönen Dank. Tschüß Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |