Die Dateibezeichnung sieht in etwa so aus
zu bearbeitende Datei: Lageplan_1.dwg
die einzufügende X-Ref: XREF_1.dwg
die letzten Zeichen sind also immer identisch (weniger als 100 Pläne, es
reicht also 2 Stellen zu prüfen)
So, jetzt bin ich mal gespannt, was die CAD-LISP-Experten sagen.
Vielen Dank
Steffen
--
visit me: http://people.freenet.de/steffeniminternet
Das gefährlichste aller Bücher in weltgeschichtlicher Hinsicht ist doch
wohl unstreitig die Bibel, weil wohl leicht kein anderes Buch so viel
Gutes und Böses im Menschengeschlecht zur Entwicklung gebracht hat. (Goethe)
> So, jetzt bin ich mal gespannt, was die CAD-LISP-Experten sagen.
Ja, geht problemlos.
Tom Berger
--
ArchTools: Architektur-Werkzeuge für AutoCAD (TM)
ArchDIM - Architekturbemaßung und Höhenkoten
ArchAREA - Flächenermittlung und Raumbuch nach DIN 277
Info und Demo unter http://www.archtools.de
> So, jetzt bin ich mal gespannt, was die CAD-LISP-Experten sagen.
Das geht allemal und AFAIK sogar ohne die graphische Oberfläche von ACAD zu
starten (ging zumindest früher). Ich bin selber kein LISP-Experte, aber
LISP ist eine obercoole Sprache. Es lohnt sich also zumindest die Basics zu
lernen. Das ist noch einfacher als BASIC. Und mit dem richtigen LISP-System
kann man nicht nur ACAD programmieren sondern auch Windows Programme
schreiben. Unter Unix/Linux ist LISP schon fast Pflicht EMACS so als
Beispiel.
--
Mit freundlichen Grüßen
Peter Nießen
>Am Tue, 10 Jan 2006 20:32:10 +0100 schrieb Steffen Bertz:
>
>> So, jetzt bin ich mal gespannt, was die CAD-LISP-Experten sagen.
>
>Ja, geht problemlos.
Finde ich nicht. Designentscheidung: entweder Script und Zugriff
auf den Befehlszeileninterpreter mit command/vl-cmdf oder
Dokumentenmanagement und Flusskontrolle in VisualLisp.
Beides zusammen spielt nicht.
Gruß,
--Thorsten
>>Ja, geht problemlos.
>
> Finde ich nicht. Designentscheidung: entweder Script und Zugriff
> auf den Befehlszeileninterpreter mit command/vl-cmdf oder
> Dokumentenmanagement und Flusskontrolle in VisualLisp.
>
> Beides zusammen spielt nicht.
Doch gerade beides zusammen geht erst richtig.
Mittels Lisp ermitteln, welche Dateien bearbeitet werden sollen, dann aus
Lisp heraus ein Skript generieren und auch von hier aus gleich aufrufen.
Schrupp. Fertig.
Aber Mit VisualLISP könnte man die gestellte Aufgabe sogar auch ohne Skript
erledigen, und ohne die DWG-Dateien richtig in AutoCAD öffnen zu müssen -
Du kannst beispielsweise das komplette DesignCenter in Lisp
nachprogrammieren ...
> LISP ist eine obercoole Sprache. Es lohnt sich also zumindest die
> Basics zu lernen. Das ist noch einfacher als BASIC.
Na ich weiß nicht...
a = b + 5
oder
(setq a (+ b 5))
Ich finde, ersteres ist einfacher.
Paul Lenz
--
Dies ist eine gültige Email-Adresse.
Vor SPAM und Viren schützt mich www.spavi.de
> "Peter Niessen" <peter-...@arcor.de> schrieb:
>
>> LISP ist eine obercoole Sprache. Es lohnt sich also zumindest die
>> Basics zu lernen. Das ist noch einfacher als BASIC.
>
> Na ich weiß nicht...
> a = b + 5
> oder
> (setq a (+ b 5))
>
> Ich finde, ersteres ist einfacher.
Wie der Name nahelegt operiert LISP mit Listen. Da ist der Ausdruck wende
den Operator + auf die Elemente der Liste an mehr als logisch. Zugegeben
mit einer Fixierung auf Aldi-Taschenrechner etwas ungewohnt für eine
einfache Addition. Aber es gibt auch TR's (HP) die so arbeiten. Wende mal
LISP auf Probleme an die ernsthaft mit Listen arbeiten zb.
Matrix-Multiplikation, Skalarprodukte usw. also das Brot und
Butter-Geschäft jedes CAD Systems, dann erschliesst sich schnell wie
einfach und elegant im Gegensatz zu BASIC et al sich sowas lösen lässt.
Oder schreibe mal ein Programm das seinen Programmcode selber erzeugt (sehr
elegant bei Auswahloperationen wie "ssget" etc) In LISP ist das ein Klacks.
Aber in BASIC? Viel Spass beim ärgern ;-)
>> LISP ist eine obercoole Sprache. Es lohnt sich also zumindest die
>> Basics zu lernen. Das ist noch einfacher als BASIC.
>
> Na ich weiß nicht...
> a = b + 5
> oder
> (setq a (+ b 5))
>
> Ich finde, ersteres ist einfacher.
Na, das kommt nur daher, dass Du Probleme mit der Syntax hast. Es gibt
keine Sprache, die effizienter mit Code umgeht und verständlich ist (APL
geht effizienter mit Code um, aber ... ->
http://de.wikipedia.org/wiki/APL_%28Programmiersprache%29) als LISP. LISP
Programme sind idR auch ohne jeden Kommentar unmitelbar lesbar.
> Am 10 Jan 2006 21:29:06 GMT schrieb Thorsten Meinecke:
>>>Ja, geht problemlos.
>> Finde ich nicht. Designentscheidung: entweder Script und Zugriff
>> auf den Befehlszeileninterpreter mit command/vl-cmdf oder
>> Dokumentenmanagement und Flusskontrolle in VisualLisp.
>> Beides zusammen spielt nicht.
> Doch gerade beides zusammen geht erst richtig.
> Mittels Lisp ermitteln, welche Dateien bearbeitet werden sollen, dann
> aus Lisp heraus ein Skript generieren und auch von hier aus gleich
> aufrufen. Schrupp. Fertig.
> Aber Mit VisualLISP könnte man die gestellte Aufgabe sogar auch ohne Skript
> erledigen, und ohne die DWG-Dateien richtig in AutoCAD öffnen zu müssen -
> Du kannst beispielsweise das komplette DesignCenter in Lisp
> nachprogrammieren ...
Eure positiven Antworten freuen und mich und geben mir noch mehr
Antrieb, mich endlich damit intensiver damit zu beschäftigen.
Immer wieder gibt es Fragestellungen, die man mit LISP effizient lösen
kann.
Und wie schon geschríeben hat es noch den Nebeneffekt, z.B. den Emacs
noch besser zu verstehen (im Moment "nutze" ich ihn nur als Editor
:-))
THX
Steffen
--
visit me: http://people.freenet.de/steffeniminternet
Ich habe keine Zeit, mich zu beeilen. (Igor Strawinsky)
Und wie geht das?
Gruß
Alex
mit ein wenig Mühe :-)
Vielen Dank für die großzügigen Informationen. Hättest Di vielleicht
auch noch einen Tipp, wie man sich diesem Thema nähern kann? Gibt es
dafür eventuell bevorzugte VisualLISP-Funktionen?
Gruß
Alex
> Vielen Dank für die großzügigen Informationen. Hättest Di vielleicht
> auch noch einen Tipp, wie man sich diesem Thema nähern kann? Gibt es
> dafür eventuell bevorzugte VisualLISP-Funktionen?
Selbst der kleinste Einstieg würde diesen Rahmen bei weitem sprengen und
die Grenzen meiner Hilfsbereitschaft überfordern. Deshalb nur einige
Hinweise, die Dich auf die Fährte setzen können:
Das aktive Dokument erhältst Du mit:
(vla-get-ActiveDocument (vlax-get-acad-object))
Um eine nicht-geöffnete Datei als manipulierbares Objekt öffnen zu können,
benötigst Du den ObjectDBX-Server als Interface. Der ObjectDBX-Server ist
Bestandteil der AutoCAD Installation - allerdings haben die verschiedenen
Versionen verschiedene Namen. In AutoCAD 2004 heisst er
"ObjectDBX.AxDbDocument.16.1". Die Funktion, um ein Interface zum aktuellen
AutoCAD herzustellen, heisst z.B.:
(vla-GetInterfaceObject (vlax-get-acad-object)
"ObjectDBX.AxDbDocument.16.1")
Mit vla-open "öffnest" Du dann eine DWG-Datei für das Interface, mit
Funktionen wie z.B. vla-get-layers holst Du Dir dann die Layerobjekte
uswusf. Du kannst mit vla-get-dictionaries sogar Dictionaries auslesen ...
Vielen Dank für die kurze Einführung. Die Möglichkeiten, die einem auf
diese Weise zur Verfügung stehen, scheinen sehr vielfältig zu sein, auch
wenn ich mit dem ObjectDBX-Server bisher noch nichts zu tun hatte.
Vielleicht werde ich mir die Sache später einmal genauer ansehen.
Danke und Gruß
Alex
>> Tom Berger
>
>Vielen Dank für die kurze Einführung. Die Möglichkeiten, die einem auf
>diese Weise zur Verfügung stehen, scheinen sehr vielfältig zu sein, auch
>wenn ich mit dem ObjectDBX-Server bisher noch nichts zu tun hatte.
>Vielleicht werde ich mir die Sache später einmal genauer ansehen.
Ich hab's mir mal genauer angesehen und bin zu dem Ergebnis
gekommen, feine Sache, das. Danke, Tom!
Wermutstropfen ist, man braucht exklusiven Zugriff auf den
Zeichnungsbestand, da eine im Zeichnungseditor geöffnete DWG
für das ObjektDBX-System (auch read-only) gesperrt ist.
Ob die DLLs installiert sind, müsste man über eine Registry-Abfrage
rauskriegen können (dann besteht immer noch die Möglichkeit, dass
sie zwar installiert, aber nicht registriert sind).
Das ergibt etwa folgendes, lauffähig ab 2004 aufwärts:
(SETQ dbxname "ObjectDBX.AxDbDocument.16")
(IF (VL-REGISTRY-READ (STRCAT "HKEY_CLASSES_ROOT\\" dbxname "\\CLSID"))
(PROGN
(SETQ dbxobj (vla-GetInterfaceObject (vlax-get-acad-object) dbxname))
(vla-Open dbxobj filename :vlax-true) ; r/o
;;; Nutzlast geht hier, z.B. (vla-get-Dictionaries dbxobj)
(vlax-release-object dbxobj)
)
)
Da ObjektDBX offenbar nur einen SDI-Modus hat, kann auf das Schließen
der Zeichnungen bei schreibgeschütztem Zugriff verzichtet werden.
Keine Ahnung, ob das hinsichtlich späterer Erweiterung eine gute
Idee ist.
Gruß,
--Thorsten
Es passt hier nicht, aber ich sehe gerade keine andere Chance.....
Wenn Du nicht der bist, von dem ich hoffe, dass Du
Derjenige-welcher-sein-magst, dann bitte diese Mail direkt entsorgen
und:
SORRY! Für mich war es ein Versuch, jemanden zu finden, nach dem ich
seit
über 20 Jahren sporadisch suche ;-)
Aber, wenn Dir Folgendes etwas sagt, dann würde ich mich sehr über
eine
Antwort freuen. Stichworte:
Hamburg - Blankenese/Iserbrook - Willhöden - kurz vor dem Abi -
"schwarzer"
Käfer - Briefe mit wunderschönen, skurrilen Zeichnungen -
Briefumschläge mit
5-Pfennig-Marken frankiert - kleine Samen in selbst gemachter winziger
Holzschachtel - Chris & Käfer - Käfer dann nach Berlin..... - einige
Briefe
- verlorener Kontakt - .....viele Gedanken....
Wie auch immer: Liebe Grüße von hier nach dort!
Chris/Christiane