Bemassung / Lisp
niltons 18. Jun. 2004, 13:22

Hallo!

Ich suche eine Loesung fuer folgendes:

Um eine Zeichnung als Unterlage fuer Messprotokolle zu erstellen sollen alle Masse durch Nummern ersetzt werden. Diese Nummern und die entsprechenden Masse sollen dann in Tabellenform "irgendwo" auf der Zeichnung aufgefuehrt werden. Damit die Nummerierung auch einen Sinn hat, sollten die Masse einzeln, also in Reihe, angeclickt werden.
Nur der Ausdruck wird dann weiter verwendet.
Also:
#1 12
#2 17,5
#3 4,7
usw.

Kann mir jemand einen Loesungsanstz zeigen?

Danke!

NS

mapcar 18. Jun. 2004, 13:54

Klingt nicht aufregend. Bei jeder angeklickten Bemaßung den Gruppencode 1 mit dem Schleifenzähler überschreiben. Willst du die Originalmaße wiederhaben, GC mit "" überschreiben.

Ich würde aber auf Folgendes achten: Die Zählervariable irgendwo ablegen (EED, Uservariable, Dictionary...), damit nicht jedesmal, wenn abgesetzt wurde, das Ganze wieder bei 1 anfängt. Noch besser ist eine Funktion, die beim Aufruf die Zeichnung durchsucht und die höchste bisher verwendete Nummer ermittelt (und gleichzeitig checkt, ob doppelte vorhanden sind).

Ein Vorschlag: Ich würde die so behandelten Bems markieren, damit immer feststellbar ist, ob eine Bemassung vom Programm oder (aus ganz anderen Gründen) vom User überschrieben wurde. Per Xdata ist das ohne Aufwand, hat aber den Nachteil, dass EEDs mitkopiert werden (dann ist die Integrität futsch). Sauberer, aber aufwändiger wäre ein Dictionary mit den Handles aller modifizierten Bems. Das schönste Messprotokoll bringt wenig, wenn man vier Wochen später herausfindet, dass Nummern doppelt vergeben wurden.

Gruß, Axel

niltons 18. Jun. 2004, 14:52

Zitat:
Original erstellt von mapcar:
Klingt nicht aufregend.

Tut mir leid, aber wenn man "es" kann mag es wohl Banal sein, aber sicher nicht wenn man "es" nicht kann! So wie ich! 

Es gibt da sicher noch einige Haken, aber ich bin sicher es ist auf jeden Fall einfacher als die Masse einzeln in eine Excel Datei zu kopieren. So wie es jetzt, mit einigen Zeichnungen, gemacht wird.

Ich habe mir aus verschiedenen Posts, von hier, was zusammengebastelt. Ich bin also schon so weit, dass ich die Masse nummeriert in eine Datei ausschreiben kann. Diese Datei werde ich dann wieder in die Zeichnung importieren ... meine ich mal.

Leider ist mir nicht klar wie ich den GC 1 aendern kann. Dazu sind meine Kenntnisse noch viel zu gering  Kann ich dazu noch 'ne Hilfe bekommen?

Danke!

Nilton

tom.berger 18. Jun. 2004, 15:35

Zitat:
Original erstellt von niltons:
Leider ist mir nicht klar wie ich den GC 1 aendern kann. Dazu sind meine Kenntnisse noch viel zu gering   Kann ich dazu noch 'ne Hilfe bekommen?

Das ist an sich relativ einfach, aber Du kannst Dir mein SSMOD.LSP aus http://www.archdim.de/ssmod.lsp downloaden. Du kannst damit für ausgewählte Elemente einen beliebigen GC-Wert auf einen neuen Wert setzen. Das Programm zum setzen der Werte würde beispielsweise so gehen:

(defun c:#dim (/ counter en)
  (setq counter 1)
  (while (setq en (car (entsel)))
    (ssmodent en 1 (itoa counter))
    (setq counter (1+ counter))
  )
  (prin1)
)

Gruß
Tom Berger

niltons 18. Jun. 2004, 17:23

Danke!

Ich glaub' jetzt komme ich ein Stueckchen weiter ...

Nilton