|
Rund um Autocad : pedit in LISP
mapcar am 04.08.2002 um 16:52 Uhr (0)
Hi Andrea, eine "explodierte" Region zerfällt in LINEs, CIRCLEs, ARCs, ELLIPSEs und SPLINEs. Eine Polylinie darf aber nur Linien und Bögen enthalten - deswegen ist dieser Ansatz eigentlich von vornherein zum Scheitern verurteilt. Eine 3DPOLY darf sogar nur aus Linien bestehen. Da aber eine Region immer planar ist, ist der Ansatz 3DPOLY Unsinn. Natürlich kann man auch von gegebenen Umständen ausgehen, z.B. dass die vorhandene Geometrie nur aus ungekrümmten Oberflächen besteht. Dann kann man folgendermas ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : pedit in LISP
mapcar am 05.08.2002 um 09:29 Uhr (0)
Richtig, Stephan, definiert doch ein BKS, da hab ich mal wieder gepfuscht (wg. GC 210)! Also kann man die Funktion etwas vereinfachen (nur Region als Argument): (defun region- polyline(region / ents tmp) (command"_ucs""_object"region) (entmake(entget region)) (command"_explode"... ... Und im Programm selbst den Aufruf auch ändern: region- polyline(entlast)) Der Ansatz mit GPOLY wirft übrigens genau das selbe Problem auf: Da auch GPOLY keine Polylinie mit Splines und Ellipsen erzeugen kann, endet d ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : Programmierung
mapcar am 27.08.2002 um 11:13 Uhr (0)
Hi Bernd, ich versteh s schon wieder nicht: Wozu diese verschiedenen Wege? Die Variante 1 wird doch aus der Acad.lsp in jeder Zeichnung aufgerufen, oder ist bei dir ACADLSPASDOC = 0? Es gibt ja auch noch die Acaddoc.lsp... Eins ist jedenfalls sicher: Solange *kein* document geladen ist, solange läuft auch *kein* Programm - weder in Lisp, in Basic, noch ARX. Gruss, Axel ------------------ http://www.tutorial.autolisp.info http://www.advanced.autolisp.info http://www.activex.autolisp.info
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : Mathematische Funktionen
mapcar am 29.08.2002 um 13:19 Uhr (0)
Hi Jan, mit AutoCAD geht s nicht direkt - aber mit ein bisschen Lisp ist das Alles kein Problem. In meinem Tutorial findest du unter http://www.autolisp.mapcar.net/lambda.html den kompletten Code für einen 3D-Funktionsplotter (klingt kompliziert, sind aber trotzdem nicht mal 30 Zeilen). Und um 2D-Graphen zu erzeugen, braucht s eigentlich noch weniger... Gruss, Axel ------------------ http://www.tutorial.autolisp.info http://www.advanced.autolisp.info http://www.activex.autolisp.info
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : LISP oder besser VBA oder C++
mapcar am 04.09.2002 um 22:32 Uhr (0)
Hi Leute, ein paar Sachen kann ich einfach nicht unwidersprochen stehen lassen. C++ - der Ferrari unter den Schnittstellen? Ich dachte immer, Ferraris zeichnen sich durch die Höchstgeschwindigkeit aus, aber nicht so sehr durch ihr Potenzial als Möbel- oder Müllauto, Taxi usw. Aber genau das leistet doch die C++-Schnittstelle: Universalität - damit kann man nämlich alles machen, was in AutoCAD machbar ist. Nur eines leistet die C++-Schnittstelle eindeutig nicht: Kurze Entwicklungszeiten, also Ferrari-Geschw ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : LISP oder besser VBA oder C++
mapcar am 05.09.2002 um 12:35 Uhr (0)
Hi Bernd, ich weiss nicht, warum das bei dir alles gleich so unfreundlich klingen muss: Es ist keineswegs lächerlich, sich über Entwicklungszeiten Gedanken zu machen - die bestimmen nun mal weitgehend den Preis von Software. Und bei einem Ferrari tun sie das ebenso. Ich nehme jetzt einfach an, du fährst einen, denn was er kostet, ist dir doch wohl egal - Hauptsache schnell! Mir ist das nicht egal - deswegen fahre ich keinen, er ist mir zu teuer. Und auch bei der Entwicklung muss ich Abstriche machen. Wenn ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : Linie löschen
mapcar am 30.08.2002 um 08:38 Uhr (0)
Morgen, Andrea, dieser Code löscht mit Sicherheit alle Linien in der XY-Ebene! Wenn das bei dir nicht klappt, dann liegen bei dir die Linien eben nicht in dieser Ebene. Ich hab s eben mal hier getestet: Ein Rechteck zeichnen, um die Y-Achse 90° drehen, _explode und dann den Code abschicken. Eine Linie wird gelöscht, wie erwartet. Ich hatte ja schon gesagt, dass es Schwierigkeiten geben kann, wenn Rundungsfehler auftreten - dann wird s mit einem ssget-Ausdruck ungemütlich. Da sollte man dann vielleicht doch ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : Linie löschen
mapcar am 30.08.2002 um 11:13 Uhr (0)
(defun c:Querschnitte( / ) (test(entlast)25) (ss-foreach(ssget"X" ((0 . "LINE"))) (lambda(line) (if(line-in-xy-plane? line)(entdel line)) ) ) ) Wenn du (get-bbox) hinschreibst, dann führst du die Funktion aus - ein Bekanntgeben in der Hauptfunktion gibt es nicht in Lisp. Sowas wie forward-Deklaration gibt s in C, aber nicht hier... Allerdings erzeugt der Ausdruck (get-bbox) sofort einen Fehler, da diese Funktion ein Argument erwartet, du gibst aber keins mit. Die Funktionen müssen abe ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : Profile
mapcar am 19.09.2002 um 15:31 Uhr (0)
Hallo Cadfrauen (gleich mehrere?)! Diese Lisp-Funktion hier macht das. (defun set-profile(profileName / profiles strNames) (vl-load-com) (setq profiles (vla-get-profiles (vla-get-preferences (vlax-get-acad-object) ) ) ) (vlax-invoke-method profiles getAllProfileNames strNames) (setq strNames(vlax-safearray- list strNames)) (if(member(strcase profileName)(mapcar strcase strNames)) (vla-put-activeProfile profiles profileName) ) ) Gruss, Axel ------------------ ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : Fehlermeldung
mapcar am 05.11.2002 um 13:52 Uhr (0)
Hi, normalerweise kommt diese Meldung, wenn man in VLisp einem geschützten Symbol einen Wert zuweisen will. Geschützte Symbole sind z.B. alle Funktionsnamen, aber auch noch ein paar Variablennamen (z.B. pi). Beispiel: (setq gc 8) geht auf der Ko-Zeile durch, aber innerhalb der IDE kommt die Fehlermeldung, da geht s nicht. Also: Die Symbole, die in Lisp eingebaut sind, sind tabu. Was mich aber wundert: » ACAD « ist bei meinem 2000i, an dem ich gerade arbeite, kein geschütztes Symbol. (setq acad bcad) geht ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : blockinhale auf einen layer bringen
mapcar am 14.11.2002 um 10:08 Uhr (0)
Hi, hab das eben erst gesehen. Ich hab da eine kleine Lisp-Routine, die genau das macht: Ein Insert anklicken, und schon liegt alles (einschl. verschachtelter Blöcke und deren Sub-Elemente) auf dem gewünschten Layer (erst nach dem nächsten Regen-Schauer sichtbar). Die Routine macht aber noch mehr, man kann damit jede gewünschte Eigenschaft ändern, z.B. Farbe, Linientyp usw. (defun _deepmod(blname expr / rover data) (setq rover(cdr(assoc -2(tblsearch"block"blname)))) (while rover (setq data(entget r ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : Null bei Zoll unterdrücken
mapcar am 28.11.2002 um 10:49 Uhr (0)
Hi Wolfgang, es gibt eben Sachen, die man gern hätte - aber AutoCAD macht das einfach nicht. Über DIMZIN kannst du nur steuern, ob null Fuss angezeigt oder weggelassen werden, also 2 -0" oder 2 . Sobald ein gebrochener Fuss dahinter kommt, steht die 0 da, und mit Standard-Bordmitteln ist sie auch nicht wegzukriegen. DIMALTZ ist das Gegenstück zu DIMZIN für die Alternativeinheiten - d.h. DIMALTZ hat dann einen Einfluss darauf, wenn du gleichzeitig metrisch und zöllig bemasst. Die Wirkungsweise der beiden Va ...
|
In das Form Rund um Autocad wechseln |
|
Rund um Autocad : lisp, mittelpunkt, winkel
mapcar am 06.02.2003 um 15:43 Uhr (0)
Ein Lichtblick, Stephan! ------------------ http://www.tutorial.autolisp.info http://www.advanced.autolisp.info http://www.activex.autolisp.info
|
In das Form Rund um Autocad wechseln |