|
Lisp : ACADIN umprogrammieren HILFE
Geos am 10.08.2006 um 19:35 Uhr (0)
Zitat:Zitat aus der Readme:...Die Anzahl der vom Programm für jeden Punkt gelesenen Zeilen aus dieser Datei, entspricht dem Wert der Symbol-Nummer des Punktes. Für einen Punkt mit Symb.Nr. 3 kommt also die 3. Zeile zur Anwendung...und weiters:**** Bitte bedenken Sie, dass für jeden einzufügenden Punkt die dem Messcode entsprechende Anzahl Zeilen aus der Datei Mc.def gelesen werden. Hohe Messcodes bremsen daher das Programm...Du hast aber Deinen Meßcode 454 in Zeile 4 stehen! Zitat:Paulchen hat geschrieben ...
|
| In das Form Lisp wechseln |
|
Lisp : ACADIN umprogrammieren HILFE
REWOLF am 11.08.2006 um 09:04 Uhr (0)
Zitat:Original erstellt von CADmium:Auch wenn es jetzt nicht sofort weiterhilft :IMHO: .. schreibt das ganze Teil mal neu und ordentlichsorry, ich denk net, das ich das behersche aber wenn du das machen willst, gerne, würde mcih freuen hab gerade das mit dem null Code probiert und bin leider kläglich gescheitert. jemand für nen noob umsetzbare idee? Zitat:Dieser Teil liest x Zeilen aus der def-Datei, wobei x dem Meßcode entspricht. (MC 454 = 454 Zeilen - was dort steht wird genommen)Statt (/= acadin-mc 0 ...
|
| In das Form Lisp wechseln |
|
Lisp : ACADIN umprogrammieren HILFE
spider_dd am 11.08.2006 um 09:05 Uhr (0)
dies könnte so gehenCode: in Function "readmc" (repeat (1+ acadin-mc) (setq acadin-zl (read-line datmc)) )und dann die Zeile für MC=0 als erste Zeile der def Datei.Da liest das Prog für 0 die 1. Zeile, für 1 die 2. usw.Ich würde aber wahrscheinlich (wenn dus umschreibst) die gesamte def Datei nur einmal zu Anfang einlesen, die Datenzeile als Liste speichern und dann bei jedem Punkt immer nur die entsprechende Zeile aus der Liste holen, spart das ständige Einlesen der Datei.lgThomas
|
| In das Form Lisp wechseln |
|
Lisp : ACADIN umprogrammieren HILFE
REWOLF am 11.08.2006 um 09:22 Uhr (0)
Zitat:und dann die Zeile für MC=0 als erste Zeile der def Datei.wo genau soll ich das MC=0 einfügen, bitte immer bisl mehr dazuschreiben, sonst komm ich durcheinander, ist das erste mal das ich sowas mache...muss ich dann in der *.mc datei in der zeiel eins als code 0 reinschreiben oder 1???
|
| In das Form Lisp wechseln |
|
Lisp : Gruppen auflösen
Dorfy am 11.08.2006 um 13:40 Uhr (0)
Hab es mal mit einer weiteren Schleife probiert;;;;;;;;neu .... , es will aber noch nichtwirklich , der "Zähler" beim Vergleich mit denanderen Objekten scheint nicht OK zu sein!? ;;; Funktion löst "oberste" vorhandene Gruppe auf(defun C:xxyy (/ GNAME GROUPSEL c gnamen d) (princ "
Objekt(e) anwählen, dessen Gruppe(n) aufgelöst werden soll(en): ") (setq GROUPSEL (ssget)) ALT-PICKSTYLE (getvar "pickstyle") (if GROUPSEL (progn (setq d 0) (repeat (sslength GROUPSEL) (progn (setq GNAME (GET-GROUPNAM ...
|
| In das Form Lisp wechseln |
|
Lisp : Gruppen auflösen
joern bosse am 11.08.2006 um 15:11 Uhr (0)
Hallo Dorfy,ich mache Dir mal einen anderen Vorschlag:Code:(defun C:xxyy (/ GNAME GROUPSEL c gnamen d g_liste)(princ "
Objekt(e) anwählen, dessen Gruppe(n) aufgelöst werden soll(en): ") (setq GROUPSEL (ssget)) ALT-PICKSTYLE (getvar "pickstyle") (if GROUPSEL (progn ;;;;;; noch neuer (repeat (sslength groupsel) (if (setq gname(GET-GROUPNAME (entget(ssname groupsel (setq d (if d (1+ d)0)))))) (mapcar (lambda(A) (if (not (member A g_liste)) (setq g_liste (cons A g_liste))))gname))) (if g_liste (ma ...
|
| In das Form Lisp wechseln |
|
Lisp : Gruppen auflösen
Dorfy am 15.08.2006 um 07:07 Uhr (0)
Hallo,Re: JörnDein Versuch ;;;noch neuer funktioniert gut, wie bereits oben beschrieben liegt meine Absicht darin, die nuuuuuuuur die oberste, höchste, letzte Gruppe von mehren Gruppen (in Anlehnung an LT) aufzulösen. Ich bin der Meinung, dass über GET-GROUPNAME eine Liste mit Gruppennamen ausgegeben ="gname", in der genau diese oberste Gruppe an Stelle eins, ganz vorne steht (evtl. über car ansprechbar). Wenn man die Grundgedanken von CADmium und Marc einbezieht, ist die Gruppe mit den meisten Objekten di ...
|
| In das Form Lisp wechseln |
|
Lisp : Gruppen auflösen
joern bosse am 15.08.2006 um 07:52 Uhr (0)
Hallo Dorfy,in Deinem Beispiel müsstest Du folgende Zeile korrigieren:Alt: (setq gname (cons (car gname))gnamen) Neu: (setq gname (cons (car gnamen)gname)Aber Da kannst Du dann eigentlich auch gleich wieder drauf verzichten, weil Du sagst, daß Du immer nur den ersten Eintrag aus der Rückgabe von GET-GROUPNAME haben möchtest:Code:(defun C:asd (/ GNAME GROUPSEL c gnamen d g_liste)(princ "
Objekt(e) anwählen, dessen Gruppe(n) aufgelöst werden soll(en): ") (setq GROUPSEL (ssget)) ALT-PICKSTYLE (getvar "pickst ...
|
| In das Form Lisp wechseln |
|
Lisp : Gruppen auflösen
marc.scherer am 15.08.2006 um 11:22 Uhr (0)
Hi Dorfy,:hmm das mit dem ersten Eintrag der Liste ist aber nicht "as designed"... Das ist eigentlich reiner Zufall.Wer garantiert Dir, daß JEDE AutoCAD-Version die Gruppen in einer Reihenfolge speichert? Ne, ne. IMHO ist das so NICHT SAUBER implementiert. Sauber wird es nur sein, wenn man über die Anzahl der Entities der Gruppen geht.So ist das ein Zufallskonstrukt auf das man sich nicht verlassen sollte.------------------Ciao,Marc
|
| In das Form Lisp wechseln |
|
Lisp : Übersetzungstabelle
Geos am 15.08.2006 um 15:55 Uhr (0)
ServusIch habe immer öfter Projekte zu bearbeiten, wo Layer und Blöcke etc. schon vorgegeben sind.Um nicht immer "umlernen" zu müssen, trage ich mich mit dem Gedanken, eine Art Übersetzungstabelle(n) (Vokabelheft) in meine Programme einzubinden. Im Menü würde man immer beispielsweise "Straßenrand zeichnen, Lichtmast einsetzen, ..." auswählen, aber das Programm holt sich Layer-/Blocknamen, Skalierung, Richtung, etc. aus der (entsprechenden) Übersetzungstabelle. Ein ASCII-File dafür zu verwenden würde der Be ...
|
| In das Form Lisp wechseln |
|
Lisp : Übersetzungstabelle
cadffm am 15.08.2006 um 17:36 Uhr (0)
suche mal hier nach INI - könnte das passende Stichwort sein.Zum unterscheiden der Projekte würde ich zu der DateiabhängigenVariable PROJECTMODE tendieren, auch wenn sie für was anderesgedacht ist - man müßte in jeder beteiligten Datei nur einmal denJeweiligen Projectname eingeben..[geht nat. nur wenn die Sysvar nicht schon im eigentlich Sinne genutzt wird.]------------------ Fr. & Sa. beim CAD.de-Treffen in Stuttgart dabei
|
| In das Form Lisp wechseln |
|
Lisp : ACADIN umprogrammieren HILFE
REWOLF am 11.08.2006 um 10:41 Uhr (0)
leider hab ich wieder ein Problem, und zwar:hab die MC-DAtei jetzt weitergeschrieben udn alle Codes in der richtigen zeile mit den richtigen blcöken deff die auch in der Zeichnung sind. so hat der 200 code den block code200.spiel ich jetzt aber punkte ein, nimmt der punkt mit dem code 200 nicht den block mit 200 an sondern einen anderen. bei niedrigeren hauts hin, wie der code 3 hat auch den block code003.stell ich testweise für den MC 3 den block code200 ein, klappt das auch, nur halt nicht bei MC 200. gi ...
|
| In das Form Lisp wechseln |
|
Lisp : ACADIN umprogrammieren HILFE
REWOLF am 11.08.2006 um 11:08 Uhr (0)
konnte das problem gerade selber eingrenzen:und zwar liest der mir nur die ersten 2 stellen meines messcodes ein sprich bei 120=12 bei 200=20 ect. obwohl in der def eig 1 Spaltennummer - Beginn des Messcodes3 Spaltennummer - Ende des Messcodesangegeben ist. sollte doch eig passen gibts da in der lsp datei evtl noch ne beschränkung auf 2 stellige MC? kann ich diese entfernen?REWOLF
|
| In das Form Lisp wechseln |