| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Bemaßung in Blöcken (880 mal gelesen)
|
hfranke Mitglied
Beiträge: 18 Registriert: 11.05.2005
|
erstellt am: 01. Aug. 2006 16:45 <-- editieren / zitieren --> Unities abgeben:
Hallo, hier mein Problem: Ich füge mittels Lisp aus einer Vielzahl von dynamischen Blöcken Zeichnungen zusammen. Diese Blöcke enthalten auch Bemaßungen, die alle einem Bemaßungsstil zugeordnet sind. Da ich nun die erstellten Zeichnungen in verschiedenen Größen plotten möchte, wäre es schön, auch die Größe der Bemaßung (Text und Pfeile) anzupassen. Da die Bemaßungen innehalb der Blöcke sind, kann ich diese Anpassung entweder über den Skalierfaktor des Bemaßungsstiles oder über die Änderung der Größe des Bemaßungstextes und der Bemaßungspfeile innerhalb des Bemaßungsstiles vornehmen. Nachdem ich die Änderungen vorgenommen habe und die Zeichnung regeneriere, sind alle Bemaßungen geändert. Nun sollen aber auch diese Änderungen automatisch ablaufen. Ich habe schon so einiges probiert, so auch die Änderung des Bemaßungsstiles über GC 40, GC 41 und GC 140. Allerdings erstellt er mir dabei immer eine Stilüberschreibung und ändert nicht den eigentlichen Bemaßungsstil. Nun die Frage: wie komme ich an den eigentlichen Bemaßungsstil heran? Vielen Dank schon mal im Voraus.
Holger. Infos: ACAD 2006
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 02. Aug. 2006 07:51 <-- editieren / zitieren --> Unities abgeben: Nur für hfranke
(tblobjname "DIMSTYLE" DIMSTYLENAME) liefert das Objekt auf das du dann mittels entget zugreifen kannst. Ob dir das hier aber was hilft... ? Oder meintest du gar was anderes? ?? ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hfranke Mitglied
Beiträge: 18 Registriert: 11.05.2005
|
erstellt am: 02. Aug. 2006 08:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, vielen Dank für den Hinweis, aber genau das habe ich ja schon probiert und statt der Änderung des Bemaßungsstils wird nur eine Stilüberschreibung generiert. Ich habe auch schon probiert, über (tblnext "dimstyle") genau den Eintrag für den gesuchten Bemaßungsstil zu finden. Diesen kann ich aber leider nicht mit (entmod) bearbeiten - jedenfalls bekomme ich immer nil als Antwort. Holger. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 02. Aug. 2006 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für hfranke
..du kannst auch die Bemaßungen im Block durchlaufen und da jeweils den Skalierfaktor ändern ... P.S:ich persönlich bemaße immer im Layout und habe deshalb solche Probleme nicht.
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hfranke Mitglied
Beiträge: 18 Registriert: 11.05.2005
|
erstellt am: 02. Aug. 2006 09:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, getreu dem Motto: warum einfach, wenn's auch umständlich geht! Ich möchte doch programmtechnisch nur das nachstellen, was ich sonst manuell tue: Den allgemeinen Skalierfaktor des Bemaßungsstiles ändern, ohne eine Stilüberschreibung zu produzieren. Holger. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 02. Aug. 2006 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für hfranke
na dann alten Dimstale auslesen (setq Olddimstyle (getvar "DIMSTYLE")) zu ändernden setzen (setvar "DIMSTYLE" BEMSTYLENAME) Faktor setzen (setvar "DIMSCALE" FAKTOR) auf Bemaßungen anwenden (command "_-dimstyle" "_a" "_all" "") ---> bloß wie wählt man die Bemaßung im Block ???? alten Dimstyle wieder zurücksetzen (setvar "DIMSTYLE" Olddimstyle) wie gesagt, so kompliziert ist das andere gar nicht und an die Bemaßungen mußt du sowieso ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hfranke Mitglied
Beiträge: 18 Registriert: 11.05.2005
|
erstellt am: 02. Aug. 2006 12:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, irgendwie reden wir aneinander vorbei. Die gerade beschriebene Variante führt doch wieder nur zu einer Stilüberschreibung. Und für die Zuweisung (command "_-dimstyle" "_a" "_all" "") muss ich ja wieder alle Bemaßungen einzeln anpacken. Das kann doch nicht die Lösung sein! Ich dachte, Bemaßungstile sind dazu da, das ich zum ändern des Aussehens der Bemaßung eben gerade NICHT jede Bemaßung noch mal anfassen muss. Es funktioniert doch wie bei Layern: Wenn ich Elemente mit Farbe VONLAYER habe, brauche ich eben nicht jedes Element einzeln farblich zu ändern, sondern kann das über die Layerfarbe mit einem Schlag tun. Und ebenso kann ich den Bemaßungsstil ändern und alle Bemaßungen, die diesem Stil zugeordnet sind, reagieren auf diese Änderungen, ohne dass ich noch einmel jede Bemaßung anpacken muss. Nur wie funktioniert das auf gleichem Weg mit LISP? Holger. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 02. Aug. 2006 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für hfranke
Ändern kannst du Z.b. den Faktor so (defun SETDIMSCALE (STYLE SCALE) (if(and(=(type STYLE)'STR) (setq STYLE(tblobjname "DIMSTYLE" STYLE)) (setq STYLE(entget STYLE)) (numberp SCALE) (setq SCALE (float SCALE)) ) (progn (if (assoc 40 STYLE) (entmod (subst (cons 40 SCALE)(assoc 40 STYLE)STYLE)) (entmod (append STYLE (list(cons 40 SCALE)))) ) ) ) ) das beeindruckt die Bemaßungen aber nicht im geringsten, da die ja ihre Eigenschaften haben. Es steht an den Eigenschaften der Bemaßung ja nicht "VonBemaßungsstil" sondern ein konkreter Wert. Es ist halt eine andere Philosophie als bei den Layern Das Eigenschaften vom geänderten Bemaßungsstil holen muß seperat angestoßen werden, z.B. über dimedit .. Bei der Dimstyle-Dialogvariante wird das intern auch extra aufgerufen. Deshalb sag ich ja, du kannst die Bemaßungen ruhig direkt manipulieren.
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hfranke Mitglied
Beiträge: 18 Registriert: 11.05.2005
|
erstellt am: 02. Aug. 2006 13:34 <-- editieren / zitieren --> Unities abgeben:
|