Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Umgebungseigenschaften übertragen

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:  Umgebungseigenschaften übertragen (1926 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: 07. Apr. 2013 11:21    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,
damit das gewünschte Layout erzielt wird bzw. die Lisp-Programme korrekt arbeiten, habe ich bisher immer eine Prototypenzeichnung (Template) gemacht, wo ich z.B. den Bemaßungsstil, den Textstil, Maßstäbe usw. voreingestellt habe. Diese Methode hat den Nachteil, dass man darauf angewiesen ist, dass der Benutzer auch die entsprechende Template verwendet bzw. man hat Probleme, wenn man auf einer fremden Zeichnung weiterarbeiten will.
Meine Frage ist, wie kann ich einen Bemaßungsstil in LISP abspeichern und bei Bedarf wieder einfügen. Ich möchte vermeiden, dass ich die einzelnen Parameter händisch in ein Lisp-Programm eingebe, sondern möchte einen vorhandenen Stil als ganzen erfassen, damit er dann immer zur Verfügung steht.
Vielleicht wäre eine Methode einen Block (= Template) einzufügen, damit dann die Elemente zur Verfügung stehen; ich finde diesen Ansatz aber nicht besonders elegant.
Danke und Grüße
Daniel

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2020
Plateia, Canalis
Visual Basic

erstellt am: 07. Apr. 2013 13:15    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,

ich habe es mir inzwischen bei meinen Programmen zur Angewohnheit gemacht die Einstellungen abzufragen und fehlende Elemente neu zu erzeugen, da die Mitarbeiter es einfach nicht schaffen die Templates zu verwenden.

Das Neuerzeugen erspart lästige Rückrufe und der Aufwand für die entsprechenden Unterroutinen ist relativ gering.

Grüße
Klaus 

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: 07. Apr. 2013 13:45    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,
Wie erzeugst du dann z.B. einen Bemassungsstil? Ich hätte daran gedacht, einmal alle Eigenschaften eines Bemaßungsstil auszulesen (irgendwie mit getobject über vlx) und dann würde ich diese Werte verwenden, bei Bedarf einen neuen Bemaßungsstil genau mit diesen Eigenschaften zu erzeugen. Wie gesagt, ist das mal meine Idee, wie diese umzusetzen ist, muss ich erst im Detail probieren.
Glaubst du, das könnte so klappen?
Grüße
Daniel

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2020
Plateia, Canalis
Visual Basic

erstellt am: 07. Apr. 2013 14:22    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 Daniel,
zu den genauen Funktionen können Dir die Profis hier sicher die richtigen Tips geben. Ich habe es leider immer noch nicht geschafft mich vernünftig in Lisp einzuarbeiten.

Unter VBA kann man einfach die Datenbank durchsuchen und, wenn der Stil nicht vorhanden ist, einen neuen erzeugen. Nachdem auch lisp auf die Active-X Objekte zugreift sollte das kein Problem sein.
Vielleicht hift Dir ja dieser Beitrag weiter ..

Grüße
Klaus 

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

Theodor Schoenwald
Ehrenmitglied



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

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 07. Apr. 2013 19:19    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 Daniel,

wie wäre es wenn Du - wenn die Bemaßung wunschgemäß eingestellt ist - die Bemaßungsvariablen in eine Script-Datei speicherst.
Die Script-Datei kannst du bei Bedarf aufrufen und alles ist eingestellt.
Das geht auch, wenn Script-Datei auf einem Stick gespeichert ist.

Die erste Arbeit ist herauszufinden, welche Vaiablen für die Bemaßung zutsändig sind. Als Orientierung die mit Dim... anfangen.

Gruß
Theodor

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 08. Apr. 2013 07:52    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 Daniel,
hier ein kleines Beispiel für Textstile.

Speichern eines Textstiles in externer LSP-Datei => (Style:Save)
Es wird die ENTGET-Liste des Stiles "MeinStil" um die Gruppeneinträge -1, 5 330 erleichtert und dann in eine LSP-Datei geschrieben.

Erstellen eines Textstiles => (Styles:Get)
Wenn der Textstil "MeinStil" in der aktuellen Datei noch nicht vorhanden ist wird er mit der Liste aus der externen LSP-Datei über ENTMAKE neu erzeugt.

Code:

(defun Style:Save ( / DATEI STYLE)
  (if (and(setq style(tblobjname "STYLE" "MeinStil"))
        (setq style (entget style)))
    (progn
      (setq datei (open "c:\\temp\\MeinStil.lsp" "w"))
      (write-line "'" datei)
      (write-line (vl-prin1-to-string
                    (vl-remove-if '(lambda(A)
                                    (member(car A)
                                            '(-1 5 330)))style))datei)
     
      (close datei))))

(defun Style:Get ( / )
  (if (not (tblsearch "STYLE" "MeinStil"))
    (entmake(load "c:\\temp\\MeinStil.lsp"))))


Wenn Du sowas in der Art machen möchtest denk aber dran, ich habe nur das Grundprinzip geschildert, z.B. macht es keinen Sinn, für jeden Textstil eine LSP-Datei zu schreiben, das würde ich in einer globalen Sicherungsliste speichern:

'("STYLES"
  ("MeinStil"
  ((0 . "STYLE") (100 . "AcDbSymbolTableRecord") ...
    )
  ("MeinStil_1"
  ((0 . "STYLE") (100 . "AcDbSymbolTableRecord") ...
    )
  )
)

Der Zugriff erfolgt dann so:
(cadr(assoc "MeinStil"(cadr(assoc "STYLES" (load ...

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Koordinatenausgabe Youtube

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

Bernd10
Mitglied



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

Beiträge: 763
Registriert: 20.11.2003

Intel(R) Xeon(R) W-2123 CPU @ 3.60GHz
16 GB RAM
Windows 10 Pro 64-bit
AutoCAD Mechnical 2020 Deu

erstellt am: 08. Apr. 2013 08:46    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 Daniel,

Zitat:
Original erstellt von Danillo:

Meine Frage ist, wie kann ich einen Bemaßungsstil in LISP abspeichern und bei Bedarf wieder einfügen.

Ich stelle den gewünschten Bemaßungsstil per Lisp so ein:

; Den Bemaßungsstil als aktuellen Bemaßungsstil setzen
  (setq cbemstil (strcase "BemSoll"))
  (setq iexpertsav (getvar "expert"))
  (setvar "expert" 5)
  (command "_.dimstyle" "sichern" cbemstil)
  (setvar "expert" iexpertsav)

; Die Einstellungen des aktuellen Bemaßungsstiles aktualisieren
  (setvar "dimblk" ".") ; hier alle gewünschten Systemvariablen (die mit dim beginnen) aktualisieren


 
; Die Einstellungen sichern
  (setq iexpertsav (getvar "expert"))
  (setvar "expert" 5)
  (command "_.dimstyle" "sichern" cbemstil)
  (setvar "expert" iexpertsav)

Vielleicht hilft es Dir weiter.

Viele Grüße
Bernd

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: 01. Jun. 2013 09:54    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 Experten,
basierend auf den Vorschlag von Jörn habe ich ein Programm erstellt, das die Bemassungsstile in einer Datei sichert, sodass sie anschließend wieder hergestellt werden können. Beim Wiederherstellen von Unterbemaßungsstilen (also spezielle Einstellungen z.B. für Radiatenbemaßung, Winkelbemaßung) kommt es zu Schwierigkeiten, d.h. zum Teil werden diese Unterstile korrekt hergestellt, zum Teil werden neue Stile mit Stilnamen+$2 oder Ähnliches erzeugt. Ich hänge mal den Quellcode und meine Stilsicherung an diese Nachricht. Befehl: DimSave und DimStart.
Hat jemand einen Tipp, was das falsch läuft?
Danke und Grüße
Daniel

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: 18. Jun. 2013 00:29    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 Jörn,
dein Vorschlag funktioniert wunderbar mit Textstilen. Bei Bemaßungsstilen schaffe ich es nicht alle Eigenschaften auf diese Art und Weise abzuspeichern und dann wieder herzustellen (z.B. die Art der Pfeile). Hast du einen Tipp, wo diese Infos gespeichert sind?
Danke und Grüße
Daniel

------------------
Windows 8 - AutoCAD 2013

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 18. Jun. 2013 06: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 Nur für Danillo 10 Unities + Antwort hilfreich

Hallo Daniel,
100 prozentig weiterhelfen kann ich Dir da auch nicht, aber vielleicht kann der eine oder andere Experte ja noch was dazu sagen.

Normalerweise wurden die Blöcke für die Pfeile usw. in DIMBLK, DIMBLK1, DIMBLK2 gespeichert und in der Tabelle "DimStyles" in GC 5, 6, 7. Das ist aber veraltet, jetzt wird es über die Objekt-ID gespeichert, wie und wo genau weiß ich nicht und zur Zeit habe ich keine Zeit das genauer zu ergründen.

Vielleicht ist folgender Link noch hilfreich:
http://exchange.autodesk.com/autocadarchitecture/deu/online-help/ARCHDESK/2012/DEU/pages/WS1a9193826455f5ff18cb41610ec0a2e719-7a53.htm

viel Glück


------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Kordinaten einlesen Youtube

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