| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| | |
 | PNY gibt strategische Partnerschaft mit F5 bekannt, um die Implementierung sicherer High-Performance Infrastrukturen in der EMEA-Region voranzutreiben, eine Pressemitteilung
|
|
Autor
|
Thema: Autocad 2010 - kleines lisp geht nicht mehr (778 mal gelesen)
|
jonnymaier1 Mitglied

 Beiträge: 12 Registriert: 11.05.2010
|
erstellt am: 30. Sep. 2010 15:27 <-- editieren / zitieren --> Unities abgeben:         
Kann mir jemand verraten warum nachstehendes Lisp im Acad2008 ohne Probleme gelaufen ist und im Acad2010 nicht mehr funktionieren will. (defun c:lay_1 () (setq temp (ssget "I")) (if (= temp nil) (command "-layer" "se" "Layer_1" "") (progn (command "eigändr" temp "" "la" " Layer_1" "f" "vonlayer" "") ) ) ) Folgendes sollte das Lisp bewirken: falls kein Objekt ausgewählt ist wir nur der Layer 1 zum aktuelle Layer (dies funktionier noch einwandfrei) - falls Objekte ausgewählt sind, sollen diese auf den Layer1 gelegt werden (dies funktionier eben nicht). Ich bekomme dann die Rückmeldung „Ungültiger Optionstitel | Geben Sie die zu ändernde Eigenschaft ein [Farbe/LAyer/LTYp/LTFaktor/LStärke/Objekthöhe/Material/Beschriftung]:“. Hat vielleicht jemand eine Idee, was dem 2010 da nicht passen kann? Danke Jonny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau

 Beiträge: 8086 Registriert: 09.03.2006 sw: Win7-x64 Office 365 ProPlus C3D (& LT ) ET; DACH; Extensions ------------------- hw: FX3800 i5 CPU 670 8GB RAM
|
erstellt am: 30. Sep. 2010 15:35 <-- editieren / zitieren --> Unities abgeben:          Nur für jonnymaier1
|
jonnymaier1 Mitglied

 Beiträge: 12 Registriert: 11.05.2010
|
erstellt am: 30. Sep. 2010 17:04 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von runkelruebe: und das lief so vorher? Änder mal die Zeile in Code: (command "eigändr" "la" " Layer_1" "f" "vonlayer" "")
Besser?
1.Mit der ausgebesserten Zeile funktioniert es jetzt im Acad 2010 – Danke !!! 2.Im Acad 2008 aber nicht(!) da funktioniert es nur mit alten Zeile ! 3.Wieso sich dies zwischen den Versionen geändert lohnt sich seit Office 2010 eh nicht mehr zu hinterfragen 4.Verstehen tu ich das ganze trotzdem nicht – vor allem warum darf ich beim 2010 nicht eine Variable als Objektauswahl einsetzen – könnte ja auch ein komplizierteres Lisp sein wo ich mal eine Variable brauche – oder ist meine Variable für 2010 ungeeignet?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Ehrenmitglied Elektrotechniker
    
 Beiträge: 1519 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
erstellt am: 30. Sep. 2010 17:07 <-- editieren / zitieren --> Unities abgeben:          Nur für jonnymaier1
Hallo Jonny, da ist ein Leerzeichen zwischen dem Anführungszeichen und Layer_1. Also " Layer_1" statt "Layer_1". Ich glaub das soll da nicht hin. ------------------ Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jonnymaier1 Mitglied

 Beiträge: 12 Registriert: 11.05.2010
|
erstellt am: 30. Sep. 2010 17:20 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Andreas Kraus: Hallo Jonny, da ist ein Leerzeichen zwischen dem Anführungszeichen und Layer_1. Also " Layer_1" statt "Layer_1". Ich glaub das soll da nicht hin.
Danke für den Hinweis – das von mir gepostete Lisp hab ich nur schnell zusammengezimmert (ist eigentlich nur Teil eines Ganzen) und hab da ein Leerzeichen zu viel erwischt. Das Problem war die Variable „temp“ im Autocad 2010.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Ehrenmitglied Elektrotechniker
    
 Beiträge: 1519 Registriert: 11.01.2006 WIN 11 ACAD 2022 BricsCAD V25.1.07
|
erstellt am: 01. Okt. 2010 09:11 <-- editieren / zitieren --> Unities abgeben:          Nur für jonnymaier1
Hallo Jonny, du hast im ersten Beitrag was von „Ungültiger Optionstitel I " geschrieben. Das bezieht sich ja auf das (ssget "I"). Ich weis zwar nicht was es da zu meckern gibt aber schau mal nach Tippfehlern usw. ------------------ Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jonnymaier1 Mitglied

 Beiträge: 12 Registriert: 11.05.2010
|
erstellt am: 01. Okt. 2010 15:45 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Andreas Kraus: Hallo Jonny, du hast im ersten Beitrag was von „Ungültiger Optionstitel I " geschrieben. Das bezieht sich ja auf das (ssget "I"). Ich weis zwar nicht was es da zu meckern gibt aber schau mal nach Tippfehlern usw.
Danke für den Hinweis mit den "Ungültiger Optionstitel" - es war nichts falsch geschrieben sondern mir ist folgendes aufgefallen: Acad2010 merkt sich die Vorauswahl - sprich hier brauche ich die Variable nicht mehr bzw. ist die Variableninformation schon eine Optionseingabe für den Befehl „eigändr“ – deshalb die Fehlermeldung "Ungültiger Optionstitel" – im Acad2008 war das anscheinend noch anders (oder es liegt vielleicht an einer Systemvariable?). Ich hab jetzt einfach ein (command) eingefügt um die Vorauswahl aufzuheben und es funktioniert! (defun c:lay_1 () (setq temp (ssget "I")) (if (= temp nil) (command "-layer" "se" "Layer_1" "") (progn (command) (command "eigändr" temp "" "la" "Layer_1" "f" "vonlayer" "") ) ) ) Danke an alle die mir geholfen haben! Jonny
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd10 Mitglied
  
 Beiträge: 763 Registriert: 20.11.2003 Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz 16 GB RAM Windows 10 Pro 64-bit AutoCAD Mechnical 2020 Deu
|
erstellt am: 04. Okt. 2010 08:40 <-- editieren / zitieren --> Unities abgeben:          Nur für jonnymaier1
Hallo Jonny, Zitat: Original erstellt von jonnymaier1: Ich hab jetzt einfach ein (command) eingefügt um die Vorauswahl aufzuheben und es funktioniert!(defun c:lay_1 () (setq temp (ssget "I")) (if (= temp nil) (command "-layer" "se" "Layer_1" "") (progn [b] (command) (command "eigändr" temp "" "la" "Layer_1" "f" "vonlayer" "") ) ) ) [/B]
ein Auswahl von Objekten setzen ich so zurück: ( defun auswahl_zuruecksetzen ( / cpauswahl ) ; Die Auswahl der Objekte zurücksetzen (setq cpauswahl (ssget "_p")) (if (/= cpauswahl nil) (command "_.select" cpauswahl "") ; Auswahl aufheben ) ; if ; Rückgabewert (princ) ) ; Modulende Ich habe bisher keine Probleme damit gehabt. Vielleicht hilft es auch Dir. Viele Grüße Bernd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13533 Registriert: 30.11.2003 .
|
erstellt am: 04. Okt. 2010 08:50 <-- editieren / zitieren --> Unities abgeben:          Nur für jonnymaier1
|