Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Bemaßungsstile speichern und wiederherstellen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Bemaßungsstile speichern und wiederherstellen (1337 mal gelesen)
Danillo
Mitglied
Bauingenieur


Sehen Sie sich das Profil von Danillo an!   Senden Sie eine Private Message an Danillo  Schreiben Sie einen Gästebucheintrag für Danillo

Beiträge: 229
Registriert: 12.11.2003

Windows 10 - AutoCAD 2023

erstellt am: 02. Jun. 2013 23:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,
um das Verwenden von Template-Dateien zu vermeiden, habe ich mit Hilfe einiger Experten ein Lisp programmiert, das die Bemaßungsstile einer "Vorlagenzeichnung" ausliest, die Einstellungen in einer Datei speichert (DimStyle.cfg) und ein weiteres Programm, das die gespeicherten Einstellungen in einer neuen Datei wieder herstellt.
Leider gibt es Probleme mit Unterbemaßungsstilen (z.B. Radiatenbemaßung, Winkelbemaßung usw). Beim Wiederherstellen, werden diese Bemaßungsstile zum Teil als eigenständige Stile (mit Zusatz $2 oder ähnliches) und zum Teil wie gewünscht als Unterstile wieder hergestellt.

Der Code wäre folgender:

;SPEICHERN VON BEMASSUNGSSTILEN
(defun C:dimSave (/ allstyles item stylelst style)
  (setq allstyles (vla-get-dimstyles (vla-get-activedocument (vlax-get-acad-object))))                      ;alle Bemaßungsstilobjekte auflisten
  (vlax-for item allstyles
    (if (and (/= (vla-get-name item) "ISO-25")
    (/= (vla-get-name item) "Annotative")
    )
      (setq stylelst (cons (vla-get-name item) stylelst))                                                    ;Liste alle Bemaßungsstilenamen ohne die Standard-Vorgaben
      (setq stylelst (reverse stylelst))
      )
    )
  (setq *file* (open "DimStyles.cfg" "w"))
  (foreach item stylelst
    (if (and (setq style (tblobjname "Dimstyle" item))
    (setq style (entget style '("AcadAnnotative"))))
      (progn
(write-line (vl-prin1-to-string (vl-remove-if
  '(lambda (a) (member (car a) '(-1 5 330 340 341 342 343))) style)) *file*)        ;entfernt Gruppencodes
)
      )
    )
  (princ "\nAlle Bemaßungsstile außer die Vorgaben 'ISO-25' und 'Annotative' wurden gesichert...")
  (if (/= *file* nil)(close *file*))

  (princ)
  )


;WIEDERHERSTELLEN VON BEMASSUNGSSTILEN
(defun C:dimStart (/ style name)
  (princ "\nBemaßungsstile werden eingerichtet...") 
  (setq *file* (open "DimStyles.cfg" "r"))
  (setq style (read-line *file*))
  (while (/= style nil)
    (setq name (cdr (assoc 2 (read style))))
    (if (not (tblsearch "Dimstyle" name))
      (entmake (read style))
      )
    (setq style (read-line *file*))
    )
   
  (if (/= *file* nil)(close *file*))
  (princ)
  )


Hat jemand einen Tipp für mich, woran das liegen kann?

Danke und Grüße
Daniel

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andreas Kraus
Mitglied
Elektrotechniker


Sehen Sie sich das Profil von Andreas Kraus an!   Senden Sie eine Private Message an Andreas Kraus  Schreiben Sie einen Gästebucheintrag für Andreas Kraus

Beiträge: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 03. Jun. 2013 08:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Danillo 10 Unities + Antwort hilfreich

Hallo Danillo,
ich hab das auch mal über diesen Weg versucht und hab auch Probleme bekommen.

Jetzt mach ich das indem ich über ODBX auf die DWG mit den Definitionen zugreife und das gewünschte mit vla-copyobjects in meine Zeichnung hole.
Klappt wunderbar.

Alles nötige hab ich hier im Forum über die Suche (und Fragen) gefunden.
Das Beispiel war glaub ich mit Layern, aber das kann man umbauen.

Hab ich inzwischen für Blöcke, Textstile, Bemaßungsstile,...

Wenn du das nicht findest such ichs nochmal raus.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Danillo
Mitglied
Bauingenieur


Sehen Sie sich das Profil von Danillo an!   Senden Sie eine Private Message an Danillo  Schreiben Sie einen Gästebucheintrag für Danillo

Beiträge: 229
Registriert: 12.11.2003

Windows 10 - AutoCAD 2023

erstellt am: 03. Jun. 2013 23:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


DimSave.zip

 
Hallo Andreas,
danke für die Anregung. Die Idee ist nicht schlecht. Trotzdem verstehe ich nicht, warum es bei gewissen Bemaßungsstilen klappt und bei anderen nicht. AutoCAD sollte doch immer gleich reagieren? Ich hänge mal meine "Sicherungsdatei" meiner Bemaßungsstile an diese Beitrag, dann kann man besser ausprobieren, was passiert, wenn diese wieder hergestellt werden. Vielleicht hat ja doch noch jemand einen Lösungsvorschlag...


Grüße
Daniel

[Diese Nachricht wurde von Danillo am 03. Jun. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz