Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Übersetzungstabelle

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:  Übersetzungstabelle (558 mal gelesen)
Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 15. Aug. 2006 15:55    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

Servus

Ich 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 Bedingung der leichten Erweiterbarkeit entsprechen (am Anfang schreibt man die wichtigsten "Vokabeln" rein und erweitert, immer wenn was neues auftaucht). Auch könnte man eine Layer-/Blockliste ausgeben lassen und die Namen gleich dort reinkopieren. Nachteil: man müßte bei jedem Start die entsprechende Datei auswählen.

Weitere Überlegungen:
Alles in eine ASCII-Datei:
  Pfad in der Lisp.
  Länge? wie Projekte unterscheiden?
Dictionary:
  Die Daten dort mit (vlax-ldata-put) / (vlax-ldata-get) reinschreiben / lesen.
  (bei "jungfräulicher" Zeichnung - ASCII-Datei !?).
  Was ist bei Lieferung? - bereinigen? wblock? ...

Hat jemand von Euch
- schon mal was ähnliches gebraucht?
- schon mal was ähnliches überlegt?
- Ideen dazu?

------------------
Gruß, Ernst

Meine Homepage

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 15. Aug. 2006 17:36    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 Geos 10 Unities + Antwort hilfreich

suche mal hier nach INI - könnte das passende Stichwort sein.

Zum unterscheiden der Projekte würde ich zu der Dateiabhängigen
Variable PROJECTNAME tendieren, auch wenn sie für was anderes
gedacht ist - man müßte in jeder beteiligten Datei nur einmal den
Jeweiligen Projectname eingeben..
[geht nat. nur wenn die Sysvar nicht schon im eigentlich Sinne genutzt wird.]

------------------
< Fr. & Sa. beim CAD.de-Treffen in Stuttgart dabei >

[Diese Nachricht wurde von cadffm am 16. Aug. 2006 editiert.]

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 15. Aug. 2006 20:13    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

Danke Sebastian

PROJECTMODE ist tatsächlich etwas problematisch, da wir DWGs von ausserhalb kriegen und sie auch wieder zurückliefern. Könnte ohne weiters sein, dass die schon benutzt wird.

Zu INI gibts ja schon einiges zu lesen - (auf dieses Stichwort wär ich nicht so schnell gekommen).
Wenn man dann den Namen/Pfad im Dictionary ablegt, schaut das schon recht gut aus.

------------------
Gruß, Ernst

Meine Homepage

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: 15. Aug. 2006 20:32    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 Geos 10 Unities + Antwort hilfreich

Hallo Ernst,
das Ganze hört sich nach einer Symbolbibliothek an die, am besten vollautomatisch, auf Kundenwünsche reagieren soll.

Layer bzw. Blöcke automatisch je nach Projekt wählen usw.

Genau sowas hab ich mir auch programmiert. Wenn du Infos brauchst, sag Bescheid (ist nicht grade wenig, deshalb frag ich vorher)

Gruß
Andreas

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 16. Aug. 2006 14:39    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 Andreas

Na ja, eine Symobolbibliothek muß nicht unbedingt reagieren.

Ich möchte meine Programme etwas erweitern.
Jetzt gibts beispielsweise den Befehl "Zeichne Straßenrand". Da wird der entsprechende Layer (der von mir dafür festgelegte, zB. "STRR") aktuell geschaltet und der Linienbefehl aufgerufen. Das verwende ich, wenn ich freie Hand habe.

Aber es gibt Projekte/Auftraggeber, die eigene Block/Layersysteme vorgeben (zB. Bahn, Flughafen, manche Gemeinden, ...)
Wenn ich jetzt so eine Zeichnung bearbeiten soll, wo der Layer für den Straßenrand ein anderer ist, kann ich mein Programm nicht verwenden oder müßte es umschreiben.

Die Idee wäre nun, für diese Projekte eine entsprechende "Übersetzungstabelle" mit der Zeichnung zu verknüpfen. Dort könnte stehen "STRR" = "ABC". Das Programm sucht dann dort nach dem Layer "STRR", ließt die Übersetzung ("ABC") und schaltet diesen aktuell.

So könnte man auch mit den Blöcken verfahren. Der Block für die Straßenlaterne heißt halt einmal LICHT, dann wieder LMAST, und die Layer/Skalierung/Einsetzrichtung/.. ist ev. anders.

Wenn Du in dieser Richtung schon Erfahrungen gesammelt hast, wäre ich Dir für Infos dankbar.

------------------
Gruß, Ernst

Meine Homepage

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 16. Aug. 2006 16:36    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 Geos 10 Unities + Antwort hilfreich

Hallo Ernst,

vielleicht als Idee ...
bedeutet aber auch (einmalige?) Änderung Deiner Programme:

Alle verwendeten Layernamen, Blocknamen u.ä werden in fester Reihenfolge in Textdatei eingetragen.
Die gibt es dann einmal für Deine Bezeichnungen und jeweils einmal entsprechend angepasst für die entsprechenden AG's.
Datei wird am Anfang abgefragt und geladen, Namen für Layer u. ä. werden entsprechenden Variablen zugewiesen. Das Schalten der Layer und Einfügen der Blockreferenzen erfolgt dann nicht mehr direkt mit dem Layernamen sondern über die entsprechende Variable.

Code:

aus z. B.:
(command "layer" "ma" "strr" "")

wird dann z. B.
in Leseroutine am Anfang
(setq lay_strr aus_datei_zu_lesender_layername)

an enspr. Stelle im Prog
(command "layer" "ma" lay_strr "")


Noch ne Idee,
alternativ könnte man die "Übersetzungsdatei" mit festem Namen versehen, im Projektverzeichnis hinterlegen, beim Programmstart prüfen ob sie da ist, wenn ja laden und ansonsten die Layervariablen mit Vorgabewerten belegen. Spart die Abfrage der Datei beim Anwender.

HTHHope this helps (Hoffe, es hilft weiter)

lg
Thomas

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 16. Aug. 2006 19:16    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

Servus Thomas

Bis jetzt favorisiere ich folgendes:
Eigene Übersetzungsdateien für die jeweiligen Projekte, die an einem fixen Ort abgelegt werden. Der Name bzw. der ganze Pfad wird im Dictionary gespeichert, dann reicht eine einmalige Zuweisung.

Das entspricht so ziemlich Deinem zweiten Vorschlag - danke für die Tips.

In den Lisp's würde ich den eigenen Layer abfangen, ihn der Übersetzungsfunktion übergeben und das Ergebnis weiterverarbeiten.
Man müßte in den meisten Fällen nur eine Zeile einfügen - etwa so:
(setq #layer (f#übersetzung #layer))

------------------
Gruß, Ernst

Meine Homepage

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: 17. Aug. 2006 08: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 Geos 10 Unities + Antwort hilfreich

Hallo Ernst,
die Idee von Thomas, den Layernamen in eine Variable zu schreiben, ist schon nicht schlecht. Allerdings gehe ich in meinen Programmen noch etwas weiter.
Ich benutze den Verwendungszweck des Layers um ihn in der Layertabelle zu finden und steuere alle Layerdaten (also auch Farbe, Linietyp, ...). Genau so verfahre ich auch mit den Blöcken.
Das hat den Vorteil daß ich sogar die eigene Layerstruktur verändern kann ohne die Projektspezifischen Tabellen ändern zu müssen, da ja nicht der (veränderliche) Layername zur Suche verwendet wird.
Hört sich erst mal nach etwas Aufwand an, aber so habe ich die Möglichkeit in einem Projekt "vollautomatisch" die richtigen Blöcke auf die richtigen Layer zu bringen.
Ich speichere jedes Projekt in einem eigenen Verzeichnis mit weiteren Unterverzeichnissen (macht das jemand anders ?). Beim Einzeichnen wird vom Speicherort des Plans die Verzeichnisstruktur rückwärts nach den Zuweisungstabellen für dieses Projekt durchsucht. Werden keine gefunden, werden die Standardtabellen verwendet. Wenn du dem Layer z.B. über EEDs Informationen wie den Verwendungszweck anhängst, kannst du sogar später (wenns dem Kunden einfällt)dem Projekt andere Layernamen zuweisen und diese auch automatisch umbenennen lassen. Mit den Blöcken kannst du sowas natürlich auch machen, aber da reicht umbenennen nicht - da musst du austauschen. Aber die Idee die dahintersteckt ist die gleiche.
Für die Zuweisungstabellen verwende ich asoziative Listen, weil ich dafür keine Sortierfunktionen programmieren muß, ich komm ja mit assoc an die gewünschten Daten. Die Zuweisungstabellen sehen zwar im Editor etwas unübersichtlich aus, aber schließlich muß ja das Programm damit klarkommen und nicht der Anwender. Zum Editieren dieser Tabellen hab ich mir auch ein Programm geschrieben und da ists dann leserlich.

Ich hoffe die Vorschläge bringen dich weiter.
Wenn du Beispiele, Programteile, Ideen oder sonst was brauchst, gib Bescheid.

Gruß
Andreas

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 17. Aug. 2006 09:06    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 Geos 10 Unities + Antwort hilfreich

Hallo Ernst

Zitat:
Original erstellt von Geos:
In den Lisp's würde ich den eigenen Layer abfangen, ihn der Übersetzungsfunktion übergeben und das Ergebnis weiterverarbeiten.
Man müßte in den meisten Fällen nur eine Zeile einfügen - etwa so:
(setq #layer (f#übersetzung #layer))

... und dass einmalig am Anfang.
In Verbindung mit den von Andreas genannten Assoc-Listen kann man dann auch die Übersetzungsdateien klein halten, nur die Änderungen werden hier eingetragen (Deine "Vokabellisten") und diese als Assoc-Listen geladen. Die Zuweisung der benötigten Layer usw. zu den Variablen erfolgt dann ungefähr so:
(setq lay_strr (if (assoc 'strr assocliste) (cdr (assoc 'strr assocliste)) "strr"))
Hat den Vorteil der Fortschreibbarkeit der Ü-Liste.

Na mal sehen "wohin die Reise geht".

lg
Thomas

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

Geos
Mitglied
Vermessungstechniker i.R.


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

Beiträge: 1017
Registriert: 21.09.2001

ACAD Map 2010, Win 7 Pro
eigene Lisp's<P>HW: Core i7 860, 2.8 GHz
3.3 GB, NVIDIA GeForce GTS 250

erstellt am: 17. Aug. 2006 20:20    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 Andreas
Servus Thomas

Wie ich sehe, haben wir in etwa die gleichen Vorstellungen.
Danke Andreas, für Dein Angebot - komme bei Bedarf darauf zurück.

Zitat:
...Na mal sehen "wohin die Reise geht"..

Ich glaub, allzuweit wirds nicht von der beschrieben Lösung abweichen.

Jetzt sollte ich nur genug Zeit zur Umsetzung haben. Aber wennst Liefertermine im Nacken hast, wird das nix.

------------------
Gruß, Ernst

Meine Homepage

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