|
AutoLisp : Umschalten zwischen geöffneten Zeichnungen
Wilfried Nelkel am 01.08.2004 um 19:23 Uhr (0)
Hy Nancy, danke für die schnelle Antwort. Aber wie starte ich das Programm aus einem Lisp heraus? Wahrscheinlich bekomme ich jetzt Prügel, weil ich so doof frage, aber ich hab mich leider noch nie mit VBA oder VB befasst. :-( Ich möchte ja ausserdem den Zeichnungsnamen der geöffneten AutoCAD-Datei als Parameter mit übergeben. ------------------ Schöne Grüsse Wilfried Nelkel
|
In das Form AutoLisp wechseln |
|
AutoLisp : Umschalten zwischen geöffneten Zeichnungen
CADmium am 02.08.2004 um 09:45 Uhr (0)
(vl-load-com) (defun DOCUMENT-ACTIVATE (DOCUMENT / FOUND) (vlax-for ITEM (vla-get-documents (vlax-get-acad-object) ) (if (and(not FOUND) (=(strcase(vla-get-name ITEM))(strcase DOCUMENT)) ) (setq DOCUMENT ITEM FOUND T ) ) ) (if FOUND (vla-activate DOCUMENT)) ) Aufruf dann mit (document-activate Zeichnung1.dwg ) Zu bedenken ist allerdings, das das Lisp normalerweise in eine Zeichnung geladen wird, und ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : (vla-putPaperMargins LAYOUT LowerLeft UpperRight) ?
CADmium am 02.08.2004 um 16:18 Uhr (0)
Ein ACAD-Layout stellt unter ActivX die Methode (vla-GetPaperMargins) bereit, welche die Druckränder ausliest. (Siehe auch Datei- Plot- Reiter Plotter - Knopf Eigenschaften - Benutzerspezifische Eigenschaften - Weitere Optionen - kleinere Ränder ) Gibt es eine Möglichkeit via Lisp (vla-putPaperMargins LAYOUT LowerLeft UpperRight) zu implementieren, um diese Ränder zu setzen? .. oder einen anderen Trick, diese beim Layouteigenschaftenübertragen zu setzten? Ein (vla-RefreshPlotDeviceInfo an geeigneter ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Probleme mit Auswahlsatz
mapcar am 02.08.2004 um 22:36 Uhr (0)
(lselsetp ...) ist Lisp-intern eine Prädikatfunktion, die ein Argument daraufhin testet, ob es einen Auswahlsatzsatz enthält. In deinem Fall ist es wohl so, dass ein (ssget ...) o.ä. nil zurückgegeben hat (das ist ja das Problem: Es wäre viel sauberer, wenn man dann wenigstens einen leeren Satz kriegen würde - aber man kriegt nil. Wenn man dann hinzufügen will, kommt genau dieser Fehler. Tom hat 100% Recht: All diesen Quark sollte man einmal im Leben behandeln und sich ein paar Funktionen schreiben. Und da ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : entmake mit Mechanical Elementen
mapcar am 02.08.2004 um 22:45 Uhr (0)
Tja, nachdem hier keiner antwortet, der es 100%ig weiss - ich bin mir nur ziemlich sicher: Auch die Entity-Typen der Vertikalen Applikationen laufen unter CUSTOM ENTITIES - und Lisp kann nun mal keine C.E. erzeugen. Das geht derzeit nur mit ObjectARX und mit .NET (mit der Einschränkung allerdings, dass man mit .NET welche erzeugen kann, aber AutoCAD die nicht erkennt). (entmod) ist viel allgemeiner gelagert - vielleicht hast du Glück und kriegst es hin, dass du eine Kopie machst und so lange mit entmod f ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Layerstand speichern Button
cadffm am 05.08.2004 um 09:48 Uhr (0)
du brauchst doch keinen Namen angeben, bzw den gibst du im Makro autom. an.. aber egal, bleib bei dem Lisp-Weg. ------------------ - Sebastian -
|
In das Form AutoLisp wechseln |
|
AutoLisp : Layerstand speichern Button
Proxy am 05.08.2004 um 09:55 Uhr (0)
Also ich habe mit ein VBA-teil programmiert. Kannst auch für Namen z.B. automatisch Datum + Uhrzeit mit Mili-Sek eingeben als Default Code: ... Dim StateObj As AcadLayerStateManager Dim eMask As AcLayerStateMask On Local Error Resume Next SaveLayerStateFrm.Show If SaveLayerStateFrm.OK = True Then Set StateObj = New AcadLayerStateManager StateObj.SetDatabase ThisDrawing.Database eMask = acLsNone With SaveLayerStateFrm If .CheckBox1.Value = True Then eMask = acLsOn If .Chec ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Set_by_layer.lsp
CeZet am 06.08.2004 um 09:05 Uhr (0)
Hi all Ich habe auf dieser Page einen Verweis auf ein Lisp gefunden, dass alle Objekte auf VONLAYER zurückstellt. Das ist seit kurzem bei mir im Einsatz und funktioniert gut :-) Nun möchte ich aber den Linientyp nicht mehr umstellen, kriege es aber nicht gebacken wie ich das aus dem LISP entferne. Kann mir jemand helfen? Grüsse Cezet
|
In das Form AutoLisp wechseln |
|
AutoLisp : Num.LSP (Einfügepunkt)
CADmium am 06.08.2004 um 11:44 Uhr (0)
Ein Tipp : Die Ausrichtung ist in den Gruppencodes (72 . 0) und (73 . 0) gespeichert. Mit hilfe des Tools aus diesen Threads solltest du eigentlich in der Lage sein, dir deinen Wunsch selbst zu erfüllen! ( soll ja ein Forum mit Hilfe zur Selbsthilfe sein! - auch wenn ich mich jetzt frage, was länger gedauert hat/hätte: das Lisp zu ändern oder diese antwort zu schreiben ) ------------------ - Thomas - [Diese Nachricht wurde von CADmium am 06. Aug. 2004 editiert.]
|
In das Form AutoLisp wechseln |
|
AutoLisp : Num.LSP (Einfügepunkt)
fuchsi am 06.08.2004 um 11:51 Uhr (0)
aus der Lisp-Hilfe (DXF-Referenz) 72 Typ für Horizontale Textausrichtung (optional; Vorgabewert = 0); Ganzzahlcodes, nicht bitcodiert 0 = Links, 1 = Oben, 2 = Rechts 3 = Ausgerichtet (falls vertikale Ausrichtung = 0) 4 = Zentriert (falls vertikale Ausrichtung = 0) 5 = Angepaßt (falls vertikale Ausrichtung = 0) 73 Typ für vertikale Textausrichtung (optional; Vorgabewert = 0): Ganzzahlcodes (nicht bitcodiert): 0 = Basislinie; 1 = Unten; 2 = Mitte; 3 = Oben Weitere Informationen finden Sie in den Tabellen d ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Befehlsablauf in Lisp
CeZet am 06.08.2004 um 15:53 Uhr (0)
Hi zusammen Ich habe am morgen bereit im AutoCAD-Forum einen Beitrag verfasst zum Thema Lisp oder Script für meine Wünsche. Anfangs versuchte ich es in Lisp, stieg dann aber mittags um wieder auf Script und muss nun damit auch wieder aufgeben, da es zuwenig kann für meine Bedürfnisse. Besser gesagt, ich müsste die Schnellauswahl im Script benützen können, geht aber nicht so wie ich gelesen habe. Das heisst, umsteigen auf Lisp. ich hoffe ihr helft mir bei meinen Startschwierigkeiten: Im grossen und ganzen g ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Befehlsablauf in Lisp
mapcar am 09.08.2004 um 00:41 Uhr (0)
Schönes Beispiel für das, was ich immer wieder (und ob s jemand hören will oder nicht) hier erzähle. So sollte ein Interface aussehen: (defun c:machwas() (machwas(objekte-wählen)) (princ) ) (defun machwas(objekte / ) (...) ) Hätte sich Adesk an diese einfachen Grundregeln gehalten, wäre das jetzt kein Problem. Lokale Funktionen wie in burst.lsp sind ein nettes Feature - aber da hat man etwas übertrieben: Alles lokal zu (defun c:burst()...) ist zuviel des Guten, so bleibt nur noch ein Befehl ohne Para ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Befehlsablauf in Lisp
CADmium am 09.08.2004 um 08:19 Uhr (0)
@Axel : Volle Zustimmung, bloß bei mir sieht s immer so aus (defun machwas(objekte / ) (...) ) (defun c:machwas() (machwas(objekte-wählen)) (princ) ) Du siehst, dein Predigen hat zumindest bei mir Anklang gefunden! Tja, und zu burst ... wo fängt das Plagiat an ? - aber dein Tipp zum alleine Rausfinden ist wohl das sicherste ------------------ - Thomas -
|
In das Form AutoLisp wechseln |