|
Lisp : Eingeschaften, XREF- u. Layerfenster schließen und öffnen
joern bosse am 01.10.2010 um 09:19 Uhr (0)
Hallo,ich möchte für die Laufzeit eines LISP-Programmes folgende Fenster, wenn geöffnet, schließen, und dann natürlich nach dem Durchlauf des Programms wieder öffnen.Mit dem Eingenschaftenfester geht das ganz einfach:Code:(defun test:Init ( / ) (setq vari$$glob (list (cons "OPMSTATE" (getvar "OPMSTATE")))) (if (=(getvar "OPMSTATE") 1) (command "_.propertiesclose")))(defun test:ReInit ( / ) (if (=(cdr(assoc "OPMSTATE" vari$$glob))1) (command "_.properties")))Weiß einer von Euch, ob ich das mit dem ...
|
In das Form Lisp wechseln |
|
Lisp : Aus Lisp ein BAT starten und darauf warten
joern bosse am 13.12.2010 um 14:56 Uhr (0)
Hallo Peter,auch ich habe schon das Thema gehabt und habe es folgendermaßen gelöst: Ich benenne die auszuführende Datei um, führe Sie dann aus und laß eine While-Schleife hinterherlaufen, die solange läuft, bis die Datei wieder in Ihren ursprünglichen Namen umbenannt werden kann. Zudem läuft ein Indexzähler mit (im Beispiel bis 400000) damit darüber ein Notausstieg aus der While-Schleife erfolgen kann, wenn die Datei nicht mehr umbenannt werden kann. Sicherlich nicht sehr elegant, aber bisher habe ich dami ...
|
In das Form Lisp wechseln |
|
Lisp : Wieso 3D-Punkt?
joern bosse am 23.02.2011 um 17:15 Uhr (0)
Hallo Holzfäller,mit folgendem LISP sollte es gehen. Der Unterschied zu CADmiums ist, daß nur der erste Punkt eine 3D-Koordinate enthält, der 2. und 3. enthalten lediglich eine 2D-Koordinate.Code:(defun C:C3P2D ( / PKT1 PKT2 PKT3) (if (and (setq pkt1 (getpoint "
Ersten Punkt eingeben:")) (setq pkt2 (getpoint "
Zweiten Punkt eingeben:")) (setq pkt3 (getpoint "
Dritten Punkt eingeben:")) ) (command "_Circle" "_3p" pkt1 (list (car pkt2) (cadr pkt2)) (list (car pkt3) (ca ...
|
In das Form Lisp wechseln |
|
Lisp : reactor in lisp
joern bosse am 12.05.2011 um 19:25 Uhr (0)
Hallo Zech,wenn der Reactor schon soweit funktioniert, dann brauchst Du doch nur noch ein IF mit reinzubauen:Angenommen der der betroffenen Block ist in der Variablen "OBJ" gespeichert:(if (and (=(cdr(assoc 0(entget OBJ)))"INSERT") (wcmatch (cdr(assoc 2 (entget OBJ)))"P_*")) (progn (DannMachLayerUsw...------------------viele GrüßeJörnhttp://www.bosse-engineering.com
|
In das Form Lisp wechseln |
|
Lisp : Beschriftungsmaßstäbe
joern bosse am 09.07.2011 um 14:28 Uhr (0)
Hallo Armin,probier mal folgendes:Code:(defun ScaleExist? (name / scale-en-list liste) (foreach ITEM (dictsearch (namedobjdict) "ACAD_SCALELIST") (if (= 350 (car ITEM)) (setq ScaleNameList (cons (strcase(cdr(assoc 300(entget (cdr ITEM)))))ScaleNameList))) ) (if(member (strcase name) ScaleNameList)T));;;Beispiel: (ScaleExist? "1:100")Als Beispiel im Umgang mit Beschriftungsmaßstäben gibt es ein gutes LISP von Steve Johnson: http://forums.autodesk.com/autodesk/attachments/autodesk/247/10204/1 ...
|
In das Form Lisp wechseln |
|
Lisp : Daten mit assoc auslesen
joern bosse am 20.07.2011 um 11:31 Uhr (0)
@CADmium,ich glaube Deine Zeile alleine verwirrt ein bißchen, ich habe es so im Gefühl, daß blue noch nicht allzu tief im LISP drinsteckt (vielleicht irre ich mich ja auch)Also, wie die Zeilen von CADmium, nur ein bißchen ausführlicher:Variante 1: mit viele (unnötigen) ZwischenvariablenCode:(defun c:test ( / LISTE OBJ P1 P2 P3 P4 SP)(setq obj(car(entsel "Poly wählen")))(setq liste (entget obj));;;mit vl-remove-if alle ungleich 10 rausschmeißen(setq liste (vl-remove-if (lambda(A)(/= (car A)10))liste));;;wen ...
|
In das Form Lisp wechseln |
|
Lisp : Text aendern
joern bosse am 24.08.2011 um 07:22 Uhr (0)
Hallo Giovanni,ich habe Dir Deinen Code nochmal ein bißchen aufgeräumt, z.B. nutze ich jetzt bei der Funktion ERS den Rückgabewert, die Variablen habe ich lokal definiert, aber vom Prinzip derselbe Code wie bei Dir. Bei mir hatte es ja auch schon mit Deinem ursprünglichen Code funktioniert, deshalb bin ich mir nicht sicher ob Dir das weiter hilft.Die Variablen YSA TSA und SP habe ich rausgeschmissen weil sie scheinbar gar nicht verwendet worden sind.Code:(DEFUN C:AETXT ( / ASA BRA BRN CLA CLR STA STN SWA S ...
|
In das Form Lisp wechseln |
|
Lisp : ExcelTabellenblatt kopieren
joern bosse am 15.09.2011 um 10:53 Uhr (0)
Hallo,ich möchte innerhalb einer Exceltabelle ein Tabellenblatt kopieren, nachdem ich das ExcelWorkbook, die Sheets und letztendlich das betreffende Sheet einer Variablen zugewiesen haben hat folgendes nicht so ganz funktioniert:(vlax-invoke-method sheet Copy)Als Ergebnis habe ich eine neue Exceldatei mit dem kopierten Tabellenblatt.Aus der VBA-Hilfe habe ich folgendes zu der Copy-Methode:WorkSheets(1).Copy After:=Worksheets(Worksheets.Count)Da wird dann das Tabellenblatt(1) nach dem letzten Tabellenblatt ...
|
In das Form Lisp wechseln |
|
Lisp : Attribute verschwinden beim Füllen mit LISP
joern bosse am 02.11.2011 um 11:07 Uhr (0)
Hallo Karsten,konnte ich nachvollziehen, warum das so ist, keine Ahnung.Aber bei mir hat ein Würgaround funktioniert, wenn das entmod ein zweites Mal ausgeführt wird, dann hat es geklappt. Code:(defun SetPos (/ sNewVal ent attr) (Setq sNewVal "zzz") (setq ent (car(entsel))) (if (setq attr (entnext ent)) (progn (setq lOldVal (assoc 1 (entget attr))) (entmod (subst (cons 1 sNewVal ) lOldVal (entget attr))) (entmod (entget attr)) (entupd attr) ) ) );defun(SetPos)Warum das so ist weiß ich aber a ...
|
In das Form Lisp wechseln |
|
Lisp : Attribute verschwinden beim Füllen mit LISP
joern bosse am 02.11.2011 um 11:49 Uhr (0)
Hallo Karsten,ups, da habe ich gar nicht drauf geachtet, habe mich nur gefreut, daß der Text wieder sichtbar war.Aber mit folgender Variante sollte es funktionieren:Code:(defun SetPos (/ sNewVal ent attr) (vl-load-com) (Setq sNewVal "zzz") (setq ent (car(entsel))) (if (setq attr (entnext ent)) (vla-put-TextString (vlax-ename-vla-object attr) sNewVal)) );defun(SetPos)------------------viele GrüßeJörnhttp://www.bosse-engineering.com
|
In das Form Lisp wechseln |
|
Lisp : Lisp-Zugriff auf neue Excel xlss, xlsm ...
joern bosse am 17.11.2011 um 14:57 Uhr (0)
Hallo Peter,wie CADmium bereits erwähnt hat, es ändert sich nichts. Es wird das Excel-Object geöffnet, nur das Du z.B. als Dateinamen Test.xlsm anstelle Test.xls verwendest. Die alten Methoden im Excel-Object haben sich bestimmt nicht geändert, wird sicherlich nur wieder einiges neues hinzugekommen sein.------------------viele GrüßeJörnhttp://www.bosse-engineering.comStammtisch in Wolfsburg http://ww3.cad.de/foren/ubb/Forum491/HTML/000179.shtml
|
In das Form Lisp wechseln |
|
Lisp : Autocad OFANG Hilfssymbol wird bei Lisp-Befehl nicht nagezeigt ?!
joern bosse am 22.01.2012 um 07:58 Uhr (0)
Hallo Thomas,eine Erklärung habe ich nicht, vielleicht aber eine Alternative:Code:(defun c:lie ( / OsmodeAlt Pkt) (setq OsmodeAlt (getvar "OSMODE")) (setvar "OSMODE" 1) (setq Pkt (getpoint "
Ersten Linienpunkt angeben:")) (setvar "OSMODE" OsmodeAlt) (if pkt (command "._line" pkt pause)))------------------viele GrüßeJörnhttp://www.bosse-engineering.com
|
In das Form Lisp wechseln |
|
Lisp : MAP-Befehle aus LISP aufrufen
joern bosse am 05.03.2012 um 18:38 Uhr (0)
Hallo Udo,super, es wird ja immer einfacher, danke!------------------viele GrüßeJörnhttp://www.bosse-engineering.com
|
In das Form Lisp wechseln |