|
Lisp : Variablen eines Fremdprogramms und-color: #FFFF99'>suchen
joern bosse am 20.02.2012 um 11:17 Uhr (0)
Hallo Peter,falls Du auf der Suche nach globalen Variablen bist könnte das Apropos-Fenster in der VLIDE-Umgebung (CTRL+SHIFT+A) weiterhelfen, allerdings werden dort nur Symbole aufgeführt (das könnten dann Funktionen oder Variablen sein)------------------viele GrüßeJörnhttp://www.bosse-engineering.com
|
| In das Form Lisp wechseln |
|
Rund um AutoCAD : Blöcke ersetzen, Attribute behalten
joern bosse am 22.08.2008 um 15:37 Uhr (0)
Hallo Matze,ich habe da ein Tool (kostenpflichtig),aber die 30Tage-Testversion hilft Dir vielleicht schon weiter: http://www.bosse-engineering.com/bosse-engineering/programme/att_block.zip Es werden Blöcke A durch Blöcke B ersetzt. Dabei können die Attributseigenschaften aus dem Block A den Attributen aus Block B einzeln zugeordnet werden, z.B. der Layer.------------------viele GrüßeJörnhttp://www.bosse-engineering.com[Diese Nachricht wurde von joern bosse am 22. Aug. 2008 editiert.]
|
| In das Form Rund um AutoCAD wechseln |
|
Lisp : String in Liste ersetzen
joern bosse am 30.10.2006 um 14:23 Uhr (0)
Hallo Wasti,ich bin der Meinung, subst funktioniert auch bei nur Strings in Listen. Ich habe mal 2 Beispiele gemacht, und es klappt mit beiden.Beim ersten habe ich die String erst in eine Liste gepackt, dann gesubst, und dann wieder ausgepackt. Die zweite Funktion zeigt aber, das es eigentlich nicht notwendig ist.Rückgabe in beiden Fällen: ("A0" "A1" "A=" "A3" "A4")Code:(defun c:test (/) (setq obf (list "A0" "A1" "A2" "A3" "A4")) (mapcar (lambda (A) (car A)) (subst ("A=") ("A2") (mapcar (lambda (A) (list ...
|
| In das Form Lisp wechseln |
|
Rund um Autocad : Layernamen automatisch ersetzen ?
joern bosse am 28.01.2005 um 13:18 Uhr (0)
hallo matthias, also da hat Lothar schon recht, die *.lay Datei konnte ich so nicht verwenden, und in der DWG-Datei war lediglich der Layer 0 vorhanden. Aber ich habe mich mal versucht, und beim Test mit Lediglich 2 Layer hat die Funktion getan, Also. Layer_umb.lsp über Anwendung laden , dann über layer_umb aufrufen. Wenn die Funktion durchgelaufen ist, dann ist es an Dir, die Ergebnisse zu prüfen!!!, wenn sie nicht durchgelaufen ist, dann ist es ebenfalls an Dir, die DWG-Datei mit den Layern noch mal h ...
|
| In das Form Rund um Autocad wechseln |
|
Lisp : Kreise durch Punkte ersetzen
joern bosse am 12.03.2009 um 08:21 Uhr (0)
Hallo Steff,ich habe Deinen Code mal ein bißchen schlanker gemacht, auf ein paar Variablen verzichtet und diese lokal deklariert. Zudem habe ich aus der While-Schleife ein Repeat gemacht. Vergleiche einfach mal die Codes, aber denke jetzt bitte nicht, das ist der ultimative Code, es ist nur eine andere Variante (da hat zum Glück jeder seinen eigenen Stil)Code:(DEFUN C:kreiszupunkt ( / VPOSIT VSET VWARGESPERRT VZAEHLER) (if (setq vSet (ssget (list (cons 0 "CIRCLE")))) (progn (setq vZAEHLER 0 vPOSIT ...
|
| In das Form Lisp wechseln |
|
Rund um Autocad : Layernamen automatisch ersetzen ?
joern bosse am 31.01.2005 um 18:23 Uhr (0)
Hallo Matthias, daß Deine Zeichnung größer wird ist klar, die Layerbezeichnungen sind ja auch länger geworden und dementsprechend muß mehr gespeichert werden, das hat nichts mit der LISP-Datei zu tun. Das Du mehr Layer bekommen hast kann ich nicht nachvollziehen, ich habe in der Zeichnung von der Konvertierung 40 Layer + den Layer 0 und nach der Konvertierung ebenfalls. Ich schicke Dir die Layer der beiden Zeichnungen als txt.-Dateien mit. Die TXT-Datei, die Du mir gesendet hast habe ich nicht in eine L ...
|
| In das Form Rund um Autocad wechseln |
|
Rund um Autocad : und-color: #FFFF99'>Mtexteditor, spaltenorientiert markieren???
joern bosse am 31.05.2005 um 15:28 Uhr (0)
Hallo, bevor jetzt noch einer weitergrübelt, aus Zeitgründen habe ich die Holzhammermethode genommen: Ich habe die ASCII-Datei mit Textpad spaltenorientiert markiert, kopiert und in mehrere und-color: #FFFF99'>Mtexte eingefügt. Die zusammengeschoben und ausgerichtet sehen zumindestens auf dem Papier aus wie ein Text. ------------------ viele Grüße Jörn
|
| In das Form Rund um Autocad wechseln |
|
Rund um Autocad : MTEXT
joern bosse am 05.02.2006 um 12:34 Uhr (0)
Hallo Antor,probier es mal mit folgendem LISP. Zu Beachten ist aber, das Formatierungen, die über die zu löschenden Zeile hinaus gehen, zerstört werden. Also, die Ergebnisse prüfen!!Code:;;;Jörn Bosse, 05.02.06(defun c:mt_del_zeile (/ temp text text1 text_liste n n1 aws) (if (not JB_zeile) (setq JB_zeile 2)) (princ "
Bitte wählen Sie und-color: #FFFF99'>MTexte aus:") (if (setq aws (ssget (list (cons 0 "MTEXT")))) (progn (if (setq temp (getint (strcat "
Bitte geben Sie die zu löschende Zeilennummer an:" (it ...
|
| In das Form Rund um Autocad wechseln |
|
Lisp : ssget Problem
joern bosse am 21.10.2011 um 07:07 Uhr (0)
Hallo Martin,wenn Du z.B. auf und-color: #FFFF99'>MTexte zugreifen willst, in denen die Farbe 1 vergeben ist:Befehl: (cdr(assoc 1(entget(car(entsel)))))Objekt wählen: "{C1;test}"Auswahlsatz erstellen mit Filterliste:(setq aws(ssget (list (cons 0 "MTEXT")(cons 1 "*{C1*"))))------------------viele GrüßeJörnhttp://www.bosse-engineering.com
|
| In das Form Lisp wechseln |
|
Rund um Autocad : MTEXT
joern bosse am 05.02.2006 um 13:24 Uhr (0)
Hallo Antor,hier nochmal eine Variante: Es wird nach einem String gesucht. Wenn der String innerhalb einer Zeile eines und-color: #FFFF99'>MTextes vorhanden ist, wird die Zeile gelöscht. Auch hier wieder: Ergebnisse prüfen!!!Code:;;;Jörn Bosse, 05.02.06(defun c:mt_del_zeile_str (/ temp text text1 text_liste n n1 aws) (if (not JB_str) (setq JB_str "TEST")) (princ "
Bitte wählen Sie und-color: #FFFF99'>MTexte aus:") (if (setq aws (ssget (list (cons 0 "MTEXT")))) (progn (if (/=(setq temp (getstring (strcat "
Bitte Löschstring angebe ...
|
| In das Form Rund um Autocad wechseln |
|
Lisp : Objektwahl mit ssget
joern bosse am 09.06.2009 um 17:33 Uhr (0)
Hallo,es geht für oder auch ein Komma:((-4 . "OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR"))oder (0 . "MTEXT,TEXT")Das AND würde ich z.B. verwenden wenn ich Texte auf dem Layer A und und-color: #FFFF99'>Mtexte auf dem Layer B filtern möchte:((-4 . "OR") (-4 . "AND")(0 . "TEXT")(8 . "A")(-4 . "AND") (-4 . "AND")(0 . "MTEXT")(8 . "B")(-4 . "AND") (-4 . "OR"))Wo das jetzt genau in der Hilfe steht weiß ich auch nicht, aber vielleicht hilft Dir das Beispiel ja ein wenig. ------------------viele GrüßeJörnhttp://www.bosse-engineering. ...
|
| In das Form Lisp wechseln |
|
Rund um AutoCAD : Koordinaten aus Autocad auslesen
joern bosse am 11.03.2009 um 07:33 Uhr (0)
Hallo Kerstin,vielleicht habe ich das was für Dich. Ist zwar nicht kostenfrei, aber mit der Testversion solltest Du auch zum Ziel kommen.Das Programm "texttoblock" sucht einem definierten Suchrechteck um Deine Blöcke herum nach Texten (wenn und-color: #FFFF99'>MTexte, dann vorher in den Ursprung zerlegen). An jedem Block mit gefundenem Text wird ein neuer Block eigefügt, der Textinhalt wird in das erste Attribut geschrieben. Dann kannst Du mit Datenextraktion die Blöcke einschließlich der Attributswerte auslesen. http://www.b ...
|
| In das Form Rund um AutoCAD wechseln |
|
Lisp : Blockname aus verschachteltem Block auslesen
joern bosse am 04.06.2010 um 14:12 Uhr (0)
Hallo Peter,hier nochmal CADmiums 2. Möglichkeit. Es wird ein Block ausgewählt, dann werden die enthaltenen Blocknamen aus Liste ausgegeben.Wenn man dann noch auf Block im Block usw. testen will muss man das rekursiv gestalten.Code:(defun c:Blocknamen ( / obj) (if (and(setq obj(car(entsel))) (=(cdr(assoc 0 (entget obj)))"INSERT")) (Blocknamen:und-color: #FFFF99'>suchen obj)))(defun Blocknamen:und-color: #FFFF99'>suchen (obj / LISTE) (setq obj(tblobjname "BLOCK" (cdr(assoc 2 (entget obj))))) (while (and(setq obj (entnext obj)) (/= (cdr ...
|
| In das Form Lisp wechseln |