|
Lisp : Nachkommastellen fehlen nach READ
CADmium am 13.05.2007 um 22:08 Uhr (0)
mach doch einfach (COMMAND "_POINT" text ) - hier übergibst du einen String, der durch Komma getrennte Koordinatenwerte repräsentiert,du kannst den Punkt natürlich auch als Lisp-Liste übergeben,dann müssen die Listeneinträger Reals sein. und damit kommen wir zu deiner Frage .. so wie du es gemacht hast stören die Kommas (read(strcat "(" "1 12.3 0" ")")) klappt, daher : du mußt aus dem String also erst die Kommas entfernen.------------------ - Thomas -"Bei 99% aller Probleme ist die umfassende Beschreib ...
|
| In das Form Lisp wechseln |
|
Rund um Autocad : befehl ursprung in skript-Datei
CADmium am 30.01.2004 um 16:23 Uhr (0)
.. ursprung geht in scripten nur mit einem Objekt.. ..schau mal hier :http://ww3.cad.de/foren/ubb/Forum54/HTML/005092.shtml oder um Cadchup direkt zu zitieren : _explode verhält sich, wie Du schon gesagt hast, in Lisp etwas anders als in AutoCAD selbst. Es kann nur einzelne Elemente auflösen. Deshalb dürft s so gehen: (setq Index -1) (repeat (sslength (setq aws (ssget _X ((0 . DIM* ))))) (command _.explode (ssname aws (Setq Index (1+ Index))) ) ) Thomas ------------------ [Diese ...
|
| In das Form Rund um Autocad wechseln |
|
AutoCAD ARX Object : Kopierschutz mittels Abfrage der AutoCAD Lizenz
CADmium am 19.11.2010 um 16:58 Uhr (0)
wie wäre es mit (in in Lisp umgesetz) Abfrage von WScript.Network(setq wscript (vlax-create-object "WScript.Network") (setq RETURN (list (vlax-get-property wscript "ComputerName") (vlax-get-property wscript "UserDomain") (vlax-get-property wscript "UserName") ) )(vlax-release-object wscript)das Objekt "wbemScripting.SwbemLocator" liefert auch so einiges ... ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als ...
|
| In das Form AutoCAD ARX Object wechseln |
|
Lisp : Laufenden AutoCAD-Befehl in Lisp beenden.
CADmium am 12.03.2007 um 10:55 Uhr (0)
na dann hätte ich noch(defun DT:SENDKEYS (KEYS / WSCRIPT) (if(setq WSCRIPT (vlax-create-object "WScript.Shell")) (progn (vlax-invoke-method WSCRIPT sendkeys KEYS) (vlax-release-object WSCRIPT) ) ) (princ) )und dann der Aufruf(DT:SENDKEYS "{ESC}")wenn du weißt, wann du ihn aufrufst.. ..wenn nicht, lad mal die Funktion und gib(DT:SENDKEYS "{F1}") in der Befehlszeile ein ------------------ - Thomas -"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr a ...
|
| In das Form Lisp wechseln |
|
Autocad VBA : Welche Möglichkeiten gibt es zum Einlesen u. Weiterverarbeiten v. Blöcken in AutoCAD?
CADmium am 16.11.2004 um 13:28 Uhr (0)
alle Befehle ( oder fast alle) in Autocad kannst du auch per Lisp, ActivX(VBA/VLISP)ansprechen und ausführen! Also z.B. Autocad kennt den Befehl _insert zum Blockeinfügen Programmtechnisch kannste das auf unterster Stufe mit (command "_insert" Blockname (0 0 0) 1 1 0) realisieren. Genauso ist es mit schieben und drehen usw. Um ein Bauteil mit einem Befehl anzusprechen mußt du nur eindeutig auf es zurückgreifen können. Dafür gibts z.B. Handle - Gruppencode 5 in DXF ------------------ - Thomas - "Bei ...
|
| In das Form Autocad VBA wechseln |
|
Lisp : Subroutinen crash
CADmium am 16.08.2013 um 09:07 Uhr (1)
...überladen geht in Lisp nicht.Ich hab mir angewöhnt, die Funktionen lokal zu definieren ... z.B. so(defun C:MACHWAS(/ SUB1 VAR) (defun SUB1( VAR1 ) (princ VAR1) ) (setq VAR "BLA") (SUB1 VAR) (princ)) damit umgehe ich solche Namenskonflikte ... bei Eigennutzung von Programmen und Routinen mag man mit Namen ja noch hinkommen, aber wenn man Sachen rausgibt, weiß man nie, was andere noch alles am Laufen haben ....------------------Also ich finde Unities gut ... und andere sicher auch---------------- ...
|
| In das Form Lisp wechseln |
|
AutoLisp : Computername via LISP (DNS)
CADmium am 13.07.2004 um 10:02 Uhr (0)
unter Windows sollte das helfen.. (vl-load-com) (defun NETWORK-GETVARS ( / wscript RETURN ) (cond ((setq wscript (vlax-create-object WScript.Network )) (setq RETURN (list (vlax-get-property wscript ComputerName ) (vlax-get-property wscript UserDomain ) (vlax-get-property wscript UserName ) ) ) (vlax-release-object wscript) ) ) RETURN ) ------------------ - Thomas -
|
| In das Form AutoLisp wechseln |
|
Rund um AutoCAD : Lisp-Routine - Daten automatisiert speichern
CADmium am 18.06.2019 um 15:09 Uhr (1)
Zitat:Original erstellt von CADuceus:Falls Du weißt, wie man den Code in einer neuen Zeichnung fortsetzt: Meine Ohren sind gespitzt.Stichwort ActivX / DBX-Server : Über die Schnittstelle kann man Zeichnungen im Hintergrund öffnen usw...Für Dein Problem geht auch die Arbeitsweise "Auswählen außer" , Auswahl löschen … speichern als was auch immer , anschließendes Undo und Spiel von vorn ...------------------Also ich finde Unities gut ... und andere sicher auch--------------------------------------- - Thomas ...
|
| In das Form Rund um AutoCAD wechseln |
|
Lisp : eine bestehende lisp auf den Inhalt von Blöcken erweitern?
CADmium am 17.12.2008 um 08:06 Uhr (0)
Ja das geht .. am universellsten finde ich eine Scanroutine, der ich für die Objektwahl die Vorgabe "Auswahl", "gesamte Zeichnung" oder "aktuelles Layout" mitgeben kann, weiterhin einen Flag, ob Blockdefinitionen berücksichtigt werden sollen oder nicht und als Abschluß die "to Do" - Funktion als Parameter, die auf die Objekte angewandt werden soll.... Ohne Lispverständnis ist das aber nicht so einfach zu backen.Aber sag erstmal , wo es hingehen soll ... ------------------ - Thomas -"Bei 99% aller Proble ...
|
| In das Form Lisp wechseln |
|
AutoCAD Mechanical : Mech6 - Stanadartlayer aus- und einblenden mit automat. Regenerierung
CADmium am 02.07.2004 um 11:34 Uhr (0)
na dann hab ich noch was in Lisp: schaltet Layer ein , wenn er aus war und umgekehrt: (defun LAYER-ON-OFF ( LAYERNAME / LDATEN) (if (and(=(type LAYERNAME) STR) (setq LDATEN (tblobjname LAYER LAYERNAME)) (setq LDATEN (entget LDATEN)) ) (progn (setq LDATEN(subst(cons 62 (*(cdr(assoc 62 LDATEN))-1))(assoc 62 LDATEN)LDATEN)) (entmod LDATEN) ) ) (princ) ) Wie mans Lädt findest du Hier am besten in deine Menu.mnl einb ...
|
| In das Form AutoCAD Mechanical wechseln |
|
Lisp : 32 oder 64 bit-version
CADmium am 27.04.2007 um 12:53 Uhr (0)
Zitat:Original erstellt von fred_tomke:Hi, ich muss mal ganz vorsichtig fragen, ob es LISP- bzw. VLISP-technisch Unterschiede zwischen 32-Bit-Plattformen und 64-Bit-Plattformen gibt? Was ich meine ist, ob ich in einem mir noch nicht bekannten Fall etwas anderes von einer AutoLisp- bzw. VisualLisp-Funktion zurückbekomme, als in den bisherigen Plattformen?Es ist eine ganz allgemeine Frage.VG, FredLispcode wird in den Lispinterpreter geladen und dort abgearbeitet. Der Interpreter muß also mit der unterschied ...
|
| In das Form Lisp wechseln |
|
Rund um Autocad : mehrere Layoutregister umbenennen
CADmium am 30.07.2004 um 09:21 Uhr (0)
Meiner Meinung nach : Am einfachsten mit Lisp und den ActivX-Funktionen (defun c:LAYOUTS-RENAME ( / ITEM OLDNAME NEWNAME) (vlax-for ITEM (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object) ) ) (setq OLDNAME (vla-get-name ITEM)) (setq NEWNAME (strcat OLDNAME -NEU )) (vl-catch-all-error-p (vl-catch-all-apply vla-put-name (list ITEM NEWNAME) ) ) ) ) Wie sich der Neue Name ermittelt muß du natürlich noch rei ...
|
| In das Form Rund um Autocad wechseln |
|
Lisp : Block mit (entmake) erstellen
CADmium am 24.09.2008 um 10:12 Uhr (0)
Etwas Offtopic, aber ich wollte es mal erwähnen:wenn man den Block so abschließt(entmake (list (cons 0 "ENDBLK") (cons 8 "ABC") ))bekommt man , solange der Block in der Dwg existiert, den LAYER "ABC" nicht bereinigt (auch wenn keine anderen Objekte den Layer referenzieren), und auch Programmiertechnisch mit Lisp oder ActiveX nicht ran...weil ja beim "endblk" nil zurückgegeben wird ... böse, böse ------------------ - Thomas -"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems be ...
|
| In das Form Lisp wechseln |