|
Lisp : lisp aus lisp
fuchsi am 03.04.2008 um 11:36 Uhr (0)
Zitat:Original erstellt von AutoCADuser:[i@fuchsi: den wilden Teil mit den defuns hab ich doch von ober. Und wie die Routine reagiert, gab ich doch auch schon ober erwähnt.Aber dann geht ja doch nicht was ich vor hatte. Den code von zwei Routinen in eine LSP-Datei zu kopieren schaffe ichja auch, aber mehrere LSP-Dateien hintereinander ablaufen zu lassen, ohne dass ich diecodes jeder einzelnen LSP-Datei in eine LSP-Datei zusammenkopiere geht wahrscheinlich doch nicht...aber trotz dem, DANKE!![/i]Zum Verstä ...
|
| In das Form Lisp wechseln |
|
AutoLisp : Layerliste
fuchsi am 22.06.2004 um 08:23 Uhr (0)
ich weiss zwar nicht was ne liste mit den layernamen mit reaktoren zu tun hat , aber dieses kleine lisp erzeugt die eine solche liste (defun LayerListe (/ liste layer) (setq layer (tblnext LAYER t)) (while layer (setq liste (cons (cdr (assoc 2 layer)) liste)) (setq layer (tblnext LAYER )) ) (acad_strlsort liste) ) ergibt z.B: bei einer testzeichnung von mir Befehl: Befehl: (layerliste) ( 0 1 2 3 A-AREA A-BENE A-COLUMNS A-DOORS A-DOORS_GLASS A-EQUIPMENT A-HIDDEN A- ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : Textdatei importieren
fuchsi am 17.11.2003 um 12:40 Uhr (0)
das könnte mit folgendem kleinem lisp passieren allerdings musst du die zeile (command TEXT ep 2.5 0 text ) anpassen , der wert 2.5 ist die texthöhe des zu erstellenden textes sollte dein aktuelelr textstil bereits fix eine höhe zugeweisen haben, muss die zeile so ausschauen (command TEXT ep 0 text ), damit das fehlerlos funktioniert !! (defun c:txtimp (/) (cond ((setq file (getfiled Textfile einlesen Textfile txt 0)) (setq x (open file r )) (while (setq dat (read-line x)) (setq a1 ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : Konstruktionslinien versetzen von einer Linie in einem Block
fuchsi am 21.10.2003 um 08:25 Uhr (0)
habe das ganze so ergänzt , dass die layer automatisch erstellt werden, falls sie nicht vorhanden sind mit dieser zeile kannst du nun für alle möglichen autocad-befehle layer festlegen z.B.: beim start vom befehl circle (kreis) sold der layer KREISLAYER mit der farbe 7 als aktuell eingestellt werden ((= value CIRCLE ) (setlayer KREISLAYER 7)) nuin das vollständige neue lisp (vlr-remove-all :vlr-editor-reactor) (vlr-editor-reactor nil ((:vlr-commandWillStart . MyCommandWillStart) (:vlr-commandE ...
|
| In das Form AutoLisp wechseln |
|
Lisp : Layer umschalten bei der Bemassung
fuchsi am 27.10.2004 um 13:23 Uhr (0)
also seh ich das richtig, du hast jetzt den gesamten code (also insgesamt die 3 defun´s) in einer datei reactor.lsp abgespeichert, und lädst diese in der acad.lsp ??kann nicht ganz sein, dann dürftest du in einer neuen zeichnung überhaupt keinen fehler erhaten (aber auch der reaktor dürfte nicht funktionieren) , da die acad.lsp NUR einmal (beim starten von acad) geladen wird. um lisp programme in allen Ziechnungen zu haben. verwendet man die AcadDoc.lsp, die wird auch bei neuen Ziechnungen geladen.da du in ...
|
| In das Form Lisp wechseln |
|
Rund um Autocad : osmode
fuchsi am 20.10.2004 um 08:56 Uhr (0)
Zitat: Original erstellt von mapcar: Das halte ich für ein ganz derbes Gerücht . In der Praxis sieht es allerdings so aus, dass die meisten Lisp-Programme leider nicht sauber programmiert sind. Ein User-Cancel ist ein Error wie jeder andere auch. ja da hast du schon recht. ein esc bei einer user-eingabe kann man mit einer sauberen error-routine abfangen, um z.B.: den systemvariablen-zustand wieder herzustellen. ich habe mich aber trotzdem für die reaktor-lösung entschieden, da ich erstens sowieso ...
|
| In das Form Rund um Autocad wechseln |
|
AutoLisp : INI-Datei schreiben / lesen
fuchsi am 19.11.2003 um 09:35 Uhr (0)
ich hab mir da eine activeX Dll geschrieben, die ich dir zur verfügung stellen kann die dll einfach ins winntsystem32 kopieren und registrieren dann hast du folgende neuen befehle (setq actools (vlax-get-or-create-object acadtools.tools )) (vlax-invoke actools StartApplication notepad ) (vlax-invoke actools ReadIni Section Entry Default IniFile) (vlax-invoke actools WriteIni Section Entry Value IniFile) (vlax-release-object actools) mit vlax-get-or-create-object wird das objekt instanziert (vlax ...
|
| In das Form AutoLisp wechseln |
|
Lisp : command-Befehl mit variabler Länge
fuchsi am 29.02.2008 um 11:57 Uhr (0)
Zitat:Original erstellt von romi1:Hi tunnelbauer!Danke für den Tipp, aber ich schnipsle jetzt mittlerweile ca. 3 Tage an dem lisp zum Blöcke einlesen, und möchte nicht so kurz vor dem Ziel aufgeben. Ist ja auch egal für was ichs brauche, die Frage lautet: wie kann ich die command-Zeile so gestalten bzw. gestalten lassen (z. B. mit strcat ... aber der schluckt keine Strings, die Anführungszeichen enthalten), das sie mit einer variablen Anzahl von Attributen fertig wird?Gruß,RomanIn dem Fall wohl gar nicht. ...
|
| In das Form Lisp wechseln |
|
AutoLisp : Befehle bei jeder Zeichnung und nur beim Start
fuchsi am 02.08.2004 um 11:58 Uhr (0)
an und für sich alles nicht so leicht lösbar. die punkt.exe soll solange laufen, wie die acad.exe läuft, und zwar nur genau 1 mal. beim beenden der acad.exe soll auch die punkt.exe beendet werden. das wirst du so mit lisp nicht ermöglichen können. (zwar das einmalige starten mittels blackboard, aber nicht das beenden, (naja mit einem VBA Reaktor application.AppDeactivate und wilden API -Funktionen die aus dem Taskmanager applis abschiessen)) Besser wäre es eigentlich, wenn Programme , die nur 1mal laufen d ...
|
| In das Form AutoLisp wechseln |
|
Autocad VBA : Rechteck schraffieren
fuchsi am 19.10.2004 um 09:59 Uhr (0)
@mapcar geniale Kurzgeschichte, darf ich mir die rauskopieren ? sogar die neuen VL-Befehle in Lisp halten sich an das Option Base 0 (vl-position c (list a b c d e )) - 2 genauso wie die alten, sollte man Autodesk gar nicht zutrauen :-) (nth 0 (list a b c d e )) - a ------------------ WWW.FFZELL.AT.TC
|
| In das Form Autocad VBA wechseln |
|
Tsetfurom : Josys Schultüte
fuchsi am 05.09.2007 um 15:18 Uhr (0)
Na dann gehen wir mal, eineige inge Schritt für Schritt durch (setq OldOsmode (getvar "OSMODE")) (setvar "OSMODE" 0)Merken des alten Objektfangesund Löschen des Objektfanges (setq LastObj (entlast)) Merken des letzten Objektes. Alle nachfolgenden Objekte sind dann von deinem LISP erzeugt wordenHier gibt es 3 Möglichkeiten, die zu beachten sind1. Zeichnung ist leer die Variable LastObj = nil2. Das letzte Objekt war ein INSERT mit Attributen - Es gibt noch NachfolgeObjekte3. Das letzte Objekt ist irgenein so ...
|
| In das Form Tsetfurom wechseln |
|
Lisp : Welche Dias sind in SLB ?
fuchsi am 11.12.2007 um 12:39 Uhr (0)
wir sind ja im Lisp Forumschnell mal nach Lisp konvertiert.Code:(setq fs (vlax-get-or-create-object "SCRIPTING.FILESYSTEMOBJECT"))(setq f (vlax-invoke fs "OpenTextFile" "d:/hicad/10b/10A0ART2.SLB"))(vlax-invoke f "Read" 32)(setq eof nil)(while (not eof) (setq a1 (vlax-invoke f "Read" 36)) (if (= (vl-string-position 0 a1) 0) (setq eof t) (progn (setq dia (substr a1 1 (vl-string-position 0 a1))) (print dia) ) ))(vlax-invoke f "Close")(vlax-release-object f)(vlax-release-object fs)-------------- ...
|
| In das Form Lisp wechseln |
 |
AutoLisp : Verwendete CTB über Lisp auslesen
fuchsi am 31.10.2003 um 08:58 Uhr (15)
(vla-get-stylesheet (vla-get-ActiveLayout (vla-get-activedocument (vlax-get-acad-object)))) gibt dir vom aktuellen layout den stylesheetname (ctb-date) siehe auch (VLA-get-CONFIGNAME pc3 date (VLA-get-CanonicalMediaName format (vla-get-centerplot plot zentrireen (vla-get-paperunits mm ioder inch (vla-get-stylesheet ctb datei
|
| In das Form AutoLisp wechseln |