|
Lisp : Textfields erzeugen
cadffm am 11.06.2013 um 01:55 Uhr (0)
; Test mit Command-Aufruf und einem Block"RE" mit einem Attribut(command "ATTREQ" 1 "_.INSERT" "RE" (getpoint "
Einfügepunkt wählen: ") 1 1 0 (strcat "%AcObjProp Object(%\_ObjId " (rtos (vla-get-ObjectID(vlax-ename-vla-object (entlast))) 2 0) "%).InsertionPoint f "%lu6%pt4"%"))------------------Link: User:FAQ (einiges Wissenswertes über AutoCAD)
|
| In das Form Lisp wechseln |
|
Lisp : Bemaßungstext editieren
cadffm am 12.06.2013 um 12:37 Uhr (0)
Also wenn die Strings "alterText" "neuerText" korrekt sind, dann funktionieren deine Zeilen auch wunderbar.Einziger Haken: Du änderst die Objekte nicht !also statt(setq data (subst (cons 1 "( )") (assoc 1 data) data))besser dies: (entmod(subst (cons 1 "( )") (assoc 1 data) data)) ------------------Link: User:FAQ (einiges Wissenswertes über AutoCAD)
|
| In das Form Lisp wechseln |
|
Lisp : Bemaßungstext editieren
RobCraven am 12.06.2013 um 15:00 Uhr (0)
Hallo cadffm,Danke für deine schnelle Antwort. Ich hab die Zeile ersetzt, jetzt geht es auch. Vorher ist mir Acad abgeschmiert, deshalb meine Frage. Aber was heißt ich ändere die Objekte nicht mit meinen Zeilen? In Richtung aktualisieren, oder wie meinst du das?und noch was anderes, bestimmt banales, aber wenn ich einen Auswahlsatz mit ssget im autocad erstellt habe, wie markiere ich den denn? Um bzw objekte zu löschen oder auf einen anderen Layer zu schieben?KJ.
|
| In das Form Lisp wechseln |
|
Lisp : Bemaßungstext editieren
cadffm am 12.06.2013 um 15:49 Uhr (0)
Ich meinte zunächst folgendes: Du erstellst eine "dumme" Liste am symbol DATA,damit ändert man jedoch noch kein Objekt, du könntest sogar (setq DATA nil) schreiben,deswegen ist das Objekt aber nicht gelöscht.Dir fehlte einfach das zurückschrieben der modifizierten Daten in das Objekt: ENTMODZum anderen: Das was du suchst ist SSSETFIRSTJedoch reiocht dir zum weiteren verarbeiten der Auswahlsatz aus, lediglichwenn ein User an dieser Stelle ins Spiel kommt macht das SSSETFIRST Sinn.löschen lannst du einfach i ...
|
| In das Form Lisp wechseln |
|
Lisp : OOP-Autolisp
archtools am 05.06.2013 um 17:43 Uhr (0)
Zitat:Original erstellt von reltro:Hallo liebe Menschen...Ich habe mich erst kürzlich gefragt ob ich fähig bin einer funktionalen Sprache wie Lisp es ist, Objekte beizubringen wie man es zb. aus VB oder anderen kennt...Es gibt objektorientiertes Lisp. Am besten siehst Du Dir mal IronScheme an. Über das CLI kannst Du damit dann auch AutoCAD programmieren. CL kennt auch OO. Dem Beitrag von Cadmium widerspreche ich fundamental. Funktionales und objektorientiertes Programmierparadigma widersprechen sich nicht. ...
|
| In das Form Lisp wechseln |
|
Lisp : Abfrage konstruktion
archtools am 16.06.2013 um 14:15 Uhr (0)
Zitat:Original erstellt von reltro:Außer von defun-q das anscheind dazu da ist um abwärtskompatibel zu sein, hab ich irgendwo gelesen; wo keine Ahnung mehr... Was es für eine Sinn macht kein schimmerDefun-q macht immerhin noch ein klein wenig Sinn, beispielsweise für die Funktion S::STARTUP, die sich mehrere Applikationen teilen müssen. Es ist halt leichter zu erklären, dass man dazu defun-q verwenden soll, als (setq s::startup (....));Zitat:Code:(setq a (eval (list lambda (input / sub1) (list ...
|
| In das Form Lisp wechseln |
|
Lisp : Abfrage konstruktion
archtools am 16.06.2013 um 14:43 Uhr (0)
Zitat:Original erstellt von cadplayer:Mal dazwischen gehakt, warum nicht seine Subfunktionen getrennt in der startup (acad.lsp) laden, dann brauch man das Rad eigentlich nicht immer wieder neu erfinden und ruft das auf was man in dem aktuellen code braucht.Weiss nicht ob das sehr elegant ist?!Nein, das geht nicht. Die S::STARTUP Funktion wird nämlich zu einem genau definierten Zeitpunkt ausgeführt, an dem AutoCAD und die geladene Datei vollständig initialisiert sind. Das wäre bei Deinem Beispiel nicht mögl ...
|
| In das Form Lisp wechseln |
|
Lisp : Abfrage konstruktion
reltro am 16.06.2013 um 14:54 Uhr (0)
Zitat:Da hast Du etwas anders programmiert als in Deinem Gegenbeispiel mit den Lambdas. Du hättest hier b ebenfalls als lokale Variable deklarieren müssen: (list lambda (input / sub1 b) ...Das defun verhält sich nämlich ganz exakt genau so wie Dein (setq b (lambda ...)). Wenn b lokal definiert ist, dann ist es lokal, egal ob es mit defun oder mit setq an eine Variable gebunden ist.Nö...Da es folgendermaßend aussieht:Code:(progn (setq a ;(eval (list lambda (input / sub1 b) (li ...
|
| In das Form Lisp wechseln |
|
Lisp : Abfrage konstruktion
reltro am 16.06.2013 um 00:55 Uhr (0)
Hey heyZunächst zum letzten TeilZitat:Meine Vermutung gilt übrigens auch für defun-q und die völlig unsinnigen Funktionen defun-q-list-set und defun-q-list-ref. Beispiel:_$ (defun-q test (a b) (* a b))TEST_$ (defun-q-list-ref test)((A B) (* A B))_$ (setq test1 ((a b) (+ a b)))((A B) (+ A B))_$ (defun-q-list-ref test1)((A B) (+ A B))_$ (defun-q-list-set test2 ((a b) (- a b)))TEST2_$ (defun-q-list-ref test2)((A B) (- A B))_$ test((A B) (* A B))_$ test1((A B) (+ A B))_$ test2((A B) (- A B))=D das ist echt wi ...
|
| In das Form Lisp wechseln |
 knr.dwg.txt |
Lisp : Dynamischen Block via Lisp steuern
cadplayer am 12.06.2013 um 11:31 Uhr (0)
Mein Visualkenntnisse steigen zwar allmählich, aber stehe ich hier vor einer neuen Tür.Code:;; From: "Tony Tanzillo" ;; Newsgroups: autodesk.autocad.customization;; Sent: Friday, May 13, 2005 6:37 AM;; Subject: Re: DynamicBlock method;; Get a single dynamic block property object by name(defun dyGet (DynBlockRef Name) (vl-some (function (lambda (property) (if (eq (vlax-get-property property PropertyName) Name) property ) ) ) (vlax-safearray-list (vlax-variant-value ...
|
| In das Form Lisp wechseln |
|
Lisp : Umgebungseigenschaften übertragen
Danillo am 18.06.2013 um 00:29 Uhr (0)
Hallo Jörn,dein Vorschlag funktioniert wunderbar mit Textstilen. Bei Bemaßungsstilen schaffe ich es nicht alle Eigenschaften auf diese Art und Weise abzuspeichern und dann wieder herzustellen (z.B. die Art der Pfeile). Hast du einen Tipp, wo diese Infos gespeichert sind?Danke und GrüßeDaniel------------------Windows 8 - AutoCAD 2013
|
| In das Form Lisp wechseln |
|
Lisp : Umgebungseigenschaften übertragen
joern bosse am 08.04.2013 um 07:52 Uhr (0)
Hallo Daniel,hier ein kleines Beispiel für Textstile. Speichern eines Textstiles in externer LSP-Datei = (Style:Save)Es wird die ENTGET-Liste des Stiles "MeinStil" um die Gruppeneinträge -1, 5 330 erleichtert und dann in eine LSP-Datei geschrieben.Erstellen eines Textstiles = (Styles:Get)Wenn der Textstil "MeinStil" in der aktuellen Datei noch nicht vorhanden ist wird er mit der Liste aus der externen LSP-Datei über ENTMAKE neu erzeugt.Code:(defun Style:Save ( / DATEI STYLE) (if (and(setq style(tblobjname ...
|
| In das Form Lisp wechseln |
|
Lisp : Reaktor auf Abbruch
Danillo am 17.06.2013 um 22:12 Uhr (0)
Hallo, danke für den Tipp, leider kann ich dir nicht ganz folgen: Was meinst du mit dem Editor-Reaktor? Ein Abbruch müsste doch immer die aktuelle Error-Funktion auslösen. Damit müsste es mir doch gelingen, alles auf den Ursprung zurückzusetzen? Ich muss sagen, dass ich mit transparten Befehlen bisher keine Probleme hatte.GrüßeDaniel------------------Windows 8 - AutoCAD 2013[Diese Nachricht wurde von Danillo am 17. Jun. 2013 editiert.]
|
| In das Form Lisp wechseln |