|
AutoLisp : alternative zu (entget (entlast))
tom.berger am 24.05.2004 um 13:27 Uhr (0)
Zitat: Original erstellt von fca_mi2: gibt es denn keine andere möglichkeit an den entity-namen zu kommen ? Nein, denn das Entity gibt es zu dem Zeitpunkt ja noch gar nicht. Viele Programmierer übersehen immer wieder, dass sie mit den Reaktoren mitten im Geschehen sitzen, und dass sie dort eben auch viel Unheil anrichten können. Der korrekte Weg ist der, den Axel erwähnt hat: lasse Deinen Objektreaktor lediglich den Entitynamen in eine globale Variable schreiben, und verwende einen Editorreaktor, ...
|
| In das Form AutoLisp wechseln |
|
Lisp : Punkt in Fläche
tom.berger am 28.05.2004 um 13:00 Uhr (1)
Zitat:Original erstellt von U. Neumann:Hallo Lisp-Forum,ich habe folgendes Problem. Gegeben ist eine Fläche, d.h. die Punkte, die diese Fläche einschließen liegen in einer Liste vor. Wie ermittle ich nun, ob ein weiterer Punkt (Koordinaten sind ebenfalls bekannt) innerhalb oder außerhalb dieser Fläche liegt?Dank für eure Hilfe.Im Thread, auf den Brischke verlinkt hat, sind die echten Lösungswege nicht näher erklärt, und die LISP-Lösung ist eine sehr unsaubere Krücke. Deshalb will ich das mal hier nachhole ...
|
| In das Form Lisp wechseln |
|
Lisp : Punkt in Fläche
tom.berger am 28.05.2004 um 14:07 Uhr (1)
Zitat:Original erstellt von gmk: @tom super tipp!!wenn man jetzt noch zusätzlich prüft ob der punkt immer auf der gleichen seite das jeweiligen elements (links oder rechts von linie oder bogen) liegt, hätte man das mit den bögen auch erschlagen. (ist sowieso nötig für den fall, daß der punkt auf dem polygon liegt)ciao georgLeider nein: Wenn ein Punkt auf der Polygongrenze liegt, dann ist bei der Winkelmethode der eingeschlossene Winkel einmal +-180 Grad, dafür braucht man also keinen gesonderten Aufwand ...
|
| In das Form Lisp wechseln |
|
AutoLisp : Was sind Reaktoren?
tom.berger am 29.05.2004 um 12:58 Uhr (0)
Zitat: Original erstellt von mapcar: Ich habe so einige Reaktor-Programme geschrieben, die nach einer Probezeit dann doch wieder eingestampft wurden. Ein Beispiel: Vollautomatisches Setzen eines Bem-Layers, spart einem ja eine Menge Arbeit im Laufe der Zeit. Niemand, der sich den Code angesehen hat, konnte irgendeinen Fehler oder eine Unsauberkeit entdecken. Nach zwei oder drei Monaten Einsatz konnte der Fehler reproduzierbar festgemacht werden: Wurde nach einer Bemaßung im übernächsten Befehl ein bes ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : DCL Ansteuerung
tom.berger am 29.05.2004 um 14:29 Uhr (0)
Zitat: Original erstellt von fuchsi: z.B.: min = 0 : max = 100, aktiviert jetzt der benutzer ein kontrollkästchen , soll sich der max-wert auf 150 ändern ! Wo ist das Probem? Wenn Du im DCL-Feld die Min/Max Werte angezeigt haben willst, dann mach das am besten in einem Textfeld. Die DCL-Werte für Min/Max lässt Du völlig unabhängig immer auf 0 und 100, und rechnest diese erst durch Deine Applikation auf die benötigten Werte um. Nach Betätigen des Häkchens durch den Anwender wird also lediglich di ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : Punkte transformieren und rotieren
tom.berger am 31.05.2004 um 12:11 Uhr (0)
Zitat: Original erstellt von tmoehlenhoff: Es kommt häufiger vor, dass Punkte (eines Elementes) verschoben und gleichzeitig gedreht werden müssen. Dafür gibts sicherlich diverse Krücken, aber ich hätte gerne mal den mathematischen Weg. Nun, Matrizenrechnung ist eigentlich nicht sonderlich schwer, zumal man sich bzgl der Reihenfolge der Matrizenelemente einfach an s Kochbuch zu halten braucht. Hier ist ein Link: http://sjbaker.org/steve/omniv/matrices_can_be_your_friends.html, oder Google selber ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : alternative zu (entget (entlast))
tom.berger am 01.06.2004 um 10:55 Uhr (0)
Zitat: Original erstellt von fca_mi2: wie läuft es denn, wenn ich eine linie nur verändere ? kann ich die elemente, die ich z.b. verschieben oder strecken möchte irgendwie ermitteln. Siehe oben: zwei Reaktoren verwenden. Tom Berger ------------------ Architekturwerkzeuge für AutoCAD: http://www.archtools.de
|
| In das Form AutoLisp wechseln |
|
AutoLisp : DCL Ansteuerung
tom.berger am 01.06.2004 um 11:51 Uhr (0)
Zitat: Original erstellt von fuchsi: wenn uich vno 0 bis 100 ausgehe, und dann per faktor bis 150 anzeige , frage ich mich wie man da dann genau 101 einstellt ?? Du hast es doch noch nicht verstanden: der Regler geht immer nur von 0 bis 100, oder von mir aus auch von 0 bis 1. Umgestellt wird nur der Faktor, um daraus den wirklichen Wert zu erhalten, bzw um aus dem wirklichen Wert den Anzeigewert des Reglers zu erhalten. Soll also der Regler nun die wirklichen Werte (WW) von 0 bis 150 anzeigen, s ...
|
| In das Form AutoLisp wechseln |
|
Lisp : Punkt in Fläche
tom.berger am 01.06.2004 um 17:05 Uhr (1)
Zitat:Original erstellt von Dabrunz:Ich glaube, ich muss mich korrigieren: Unter der Einschränkung, dass unser betrachtetes Gebiet durch ein Polygon begrenzt wird, bleibt die Anzahl der möglichen Fälle wohl endlich. Eckpunkte (schließt Kolinearität mit ein) könnten wohl als Außnahmen genügen ...Entschuldige - hatte Deinen vorherigen Beitrag beantwortet, bevor ich diesen hier gelesen habe. GrußTom Berger------------------Architekturwerkzeuge für AutoCAD: http://www.archtools.de
|
| In das Form Lisp wechseln |
|
AutoLisp : nur teile eines String
tom.berger am 03.06.2004 um 15:01 Uhr (0)
Zitat: Original erstellt von CADmium: .. die Spaltet den Path in eine Liste auf (defun PATH- List (PATH / POS LST) [...] Das geht kürzer: (defun path- list (path) (while (vl-string-search "" path) (setq path (vl-string-subst "" "" "" path)) ) (read (strcat "("" path "")")) ) ... und hier gibt s einen kleinen Fehler - statt (type VERZEICHNISSE) muss da (type ANZAHL) stehen: Zitat: (defun Zchnstr ( ANZAHL / RETURN) (if (=(type VERZEICHNISSE) INT) (progn (setq RETURN ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : nur teile eines String
tom.berger am 03.06.2004 um 18:16 Uhr (0)
Zitat: Original erstellt von CADmium: na wenn dann so (der Allgemeingültigkeit wegen ) [...] da Verzeichnisse in Lisp durch "" oder "/" getrennt werden können. Wo Du Recht hast, hast Du Recht :-) Und dann wird es natürlich auch Zeit für die allseits beliebte String- LIST Funktion mit beliebigem Trennzeichen: (defun string- list (string separator) (while (vl-string-search separator string) (setq string (vl-string-subst "" "" separator string)) ) (read (strcat "("" string "")")) ) Un ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : Positionsnummern
tom.berger am 04.06.2004 um 11:06 Uhr (0)
Zitat: Original erstellt von CADwiesel: hier dieses etwas sollte reichen (defun c:ted ( / as) (if(setq as (ssget _:S ((0 . *TEXT )))) (progn (while as (command _ddedit (ssname 0 as)) (setq as (ssget _:S ((0 . *TEXT )))) ) ) ) ) Du weisst, ich bin Dozent, und deshalb hab ich immer was zu nörgeln. Nimm s nicht krumm, sondern als Anregung: Das IF kannst Du bei Dir komplett weglassen, und selbst wenn es sinnvoll wäre, dann wäre das PROGN überflüssig. Außerdem w ...
|
| In das Form AutoLisp wechseln |
|
AutoLisp : Attribute hinzufügen
tom.berger am 04.06.2004 um 13:26 Uhr (0)
Zitat: Original erstellt von fuchsi: danke erst mal euch beiden @Thomas GC70 Bit2 ist klar @Holger ATTREDEF.lsp macht leider genau das , was ich vermeiden möchte (command _insert ...) d.h. neue Referenznummer Da wirst Du nicht drum herum kommen. Tatsächlich gibt es nämlich keine andere Verbindung zwischen einem INSERT und seinen Attributen, als das Attribute-folgen-Flag beim Insert und dass die ATTRIBs unmittelbar auf das Insert folgend. Man kann jederzeit auch Attribute an Inserts hängen, der ...
|
| In das Form AutoLisp wechseln |