| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Block einfügen klappt nicht (2667 mal gelesen)
|
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 16. Okt. 2011 21:52 <-- editieren / zitieren --> Unities abgeben:
Hallo, hat's geschrieben und kanns nicht lesen... Ich habe vor Jahren schon mal ne Anfrage gemacht, wie man Blöcke einfügt und da auch Antworten bekommen: http://ww3.cad.de/foren/ubb/Forum145/HTML/000925.shtml#000000 jetzt stehe ich wieder vor diesem Problem, habe die Dateien und Daten von damals nicht zur Verfügung und werde aus diesem Thread (und auch den anderen, die die Forensuche für "Block einfügen" liefert) nicht schlau. Code: (setq X1 (- X 0.8)) (setq SubRW (Text_z Y X1 "Code" Code)) (setq SubRW (Symbol Code)) (setq BlockN (car SubRW)) (command "_-insert" BlockN (list Y X))
Diese Zeilen sollen mir an eine Punktposition die Codierung (liegt numerisch vor) schreiben und einen, in der Zeichnung definierten Block (dem Code entsprechendes Symbol) einfügen. Das passiert aber nicht. Der Codeteil wird durchlaufen, was man daran sieht, daß die Zahl an die entsprechende Stelle gesetzt wird, aber das Symbol wird nicht eingefügt. Was mache ich falsch? "Text_z steht" für eine Funktion, die mir den Code an den punkt schreibt und "Symbol" holt mir aus einer ASCII-Datei Layer und Blockname in ein dotted pair. Auch das funktioniert, wie ich schon durch "princ" vor dem command-Aufruf getestet habe. Grüße, Frank P.S.: Kann mich erst wieder in 18-20 Stunden damit befassen - hat also Zeit. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 16. Okt. 2011 22:47 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Hast du dir denn den AutoCAD-Befehl EINFÜGE (_insert) in der Befehlszeilenversion (-EINFÜGE/_-insert) denn schonmal wirklich angesehen ? Wenn du also damit kein Verständnisproblem hast dann mußt du deine Lisp-Werte überprüfen. (andernfalls: spiele den Spass händisch in der Befehlszeile durch: -EINFÜGE / AutoCAD-Hilfe Befehl -EINFÜGE) Welchen Wert hat denn X ? Welchen Wert hat denn Y ? Welchen Wert hat denn BlockN ? Teste mal statts dieser Zeile (command "_-insert" BlockN (list Y X)) folgende: (command "_-insert" BlockN (list Y X) "1" "1" "0") oder oder auch mal: (alert(strcat "X=" (rtos x 2 8) "\n" "Y=" (rtos y 2 8) "\n" "BlockN=" BlockN "\n" (if (tblobjname"BLOCK" BlockN) "" (strcat BlockN " ist nicht definiert") )))
------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 17. Okt. 2011 18:20 <-- editieren / zitieren --> Unities abgeben:
Hallo und vielen Dank für deine Antwort! Zitat: (command "_-insert" BlockN (list Y X) "1" "1" "0")
liefert mir Zitat: Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "0". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "0". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "0". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "0". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "1". Drück
Wahlweise mit und ohne Gänsefüßchen um die Zahlen, jenachdem, wie ich's im Code schreibe. X und Y haben gültigeund richtige Werte, da der Code (und die Punktnummer und die Höhe des Punktes) an die richtige Stelle neben dem Punkt geschrieben werden. Die Koordinaten dafür werden hier Code: (setq X1 (- X 0.8))
für die x-Koordinate des Textes für den Code aus X (das dann im Original so weiter verwendet wird) berechnet. In BlockN steht als String der Name des einzufügenden Blockes - so, wie er unter "Einfügen - Block... - [Name]" ausgewählt werden würde, wenn ich ihn von Hand einfüge. Wenn ich den Codeschnipsel aus deinem Posting einfüge, liefert mir Acad den Fehler Zitat: Fehler: Fehlerhafter Argumenttyp: stringp nil
Hier noch die Rückgabe von Acad bei Eingabe des Befehls von Hand Zitat: Befehl: (command "_-insert" "ZS" (list 10 10) "1" "1" "0") nil
... und voilà - der Block ist eingefügt. Drum verstehe ich ja auch nicht, warum es mit Lisp nicht geht. Grüße, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 17. Okt. 2011 18:46 <-- editieren / zitieren --> Unities abgeben:
Hallo cadffm! manchmal braucht's eben den Rempler von außerhalb. Oder vielleicht war's gestern nur zu spät. Ich Depp hole mir ja die Zuordnung, welches Symbol für welchen Code genutzt werden soll, aus einer ASCII-Datei. Die Datei gibt's auch tatsächlich und es steht drin, was drinstehen soll. damit ich aber zuhause vorm Rechner weiter dran arbeiten kann, habe ich mir alles auf nen USB-Stick kopiert. Tja, der hatte dann am anderen Rechner einen anderen Laufwerksbuchstaben, als im Büro. Code: ;Codezuordnungsdatei im Lesemodus öffnen (setq CodeDat (findfile "L:/Test/Code.csv")) (cond ;Code.csv existiert nicht--->CodeDat=nil, wird nicht ausgewertet ((not (null CodeDat)) (setq CodeDat (open CodeDat "r")) (setq CZeile T)
Hier habe ich mir extra noch hingeschrieben, daß ich da aufpassen muß, bzw. wenn Datei nicht da, nix Auswerten! Dein Posting hat mich dann nochmal ein paar princ einfügen lassen und da erschien dann ziemlich häufig "nil". Problem erkannt - Problem gelöst. Grüße, Frank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 18. Okt. 2011 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|