|
Lisp : Hilfe bei lisp! Block Attrtibute rotation und position!
cadplayer am 18.02.2013 um 14:02 Uhr (0)
Ich hab das ganze jetzt mal mit einer GeradenschnittMethode umgesetzt. Es läuft noch nicht so wie es soll. Dennoch will ich es hier mal zum Testen reinstellen. Es ist auf den ersten Blick ein Wirrwar von Variablen - verbessungswürdig, desweiteren müsste eigentlich gesagt werden, wie das Attribut von seiner Ursprungsposition verschoben wurde.Vielleicht kennt einer einen besseren Weg das auszumerzen.Code:(defun _selectAtt (InsObj / ) (if (setq InsObj (entsel "Insert wählen: ")) (setq InsObj (entget (car Ins ...
|
| In das Form Lisp wechseln |
|
Lisp : Attributposition verschieben
cadplayer am 22.08.2013 um 13:31 Uhr (1)
Hallo!Ich möchte gern die Position eines Attributes in mehreren Blöcken gleichzeitig verschieben.In meiner Zeichnung befinden sich Blöcke mit und ohne Attributen, dehalb habe ich zunächst eine Funktion, die mir alle Blöcke MIT Attributen rausfiltert.Als Ergebnis habe ich eine Blockliste als Block im VLA-format und dessen Richtungswinkel.Wenn ich diese Funktion so ausführe verschiebt es mir den Block (bei Auswahl nur mit Attribut)Code:(foreach x werte (setq attr (getattributes (vlax-vla-object-enam ...
|
| In das Form Lisp wechseln |
|
Lisp : Schnittpunkt ermitteln
cadplayer am 23.01.2012 um 13:57 Uhr (0)
Mit cal muss ich mich etwas näher beschäftigen, hab auf die Schnelle nicht den Durchblick erhalten.Für var di hab ich jetzt folgendes eingesetzt und funktioniert soweit(setq di (distance (setq p1 (cdr (assoc 10 (entget l1)))) (inters p1 (polar p1 (+ win1 (/ pi 2)) 1) (cdr (assoc 10 (entget l2))) (cdr (assoc 11 (entget l2))) nil) ) )------------------Gruss Dirk
|
| In das Form Lisp wechseln |
|
Lisp : Schnittpunkt ermitteln
cadplayer am 18.04.2012 um 17:24 Uhr (0)
Wie muss ich vorgehen, wenn ich Anfang und Ende vom gewählten Segment an der Polylinie abfragen möchte.Weil dann könnte ich zur Ermittlung des Abstandes so vorgehenCode:;Rechnet den Abstand zwischen zwei gewählten Linien(if (not c:cal)(arxload "geomcal"))(setq obj (entget (car (entsel "
Wähle Linie1"))))(setq p1 (cdr (assoc 10 obj)))(setq p2 (cdr (assoc 11 obj)))(setq p3 (cadr (entsel "
Wähle Linie2")));Rechnet den Winkel der 1. Linie und addiert 90grad dazu für die Lotrechte(setq lwi (+ (* (cal "ang (p1,p ...
|
| In das Form Lisp wechseln |
|
Lisp : Text trimmen
cadplayer am 31.05.2012 um 13:33 Uhr (0)
Servus Georg!Ich bin gerade darauf gekommen, wenn ich mit command den Text erzeuge, dann muss ich vorher den command _style ausführenCode:(defun c:ttrim (/ obj ; gewähltes Textobjekt s ; Inhalt der Testzeile "1 2 3 4" n ; umgewandelte Textzeile "1" "2" "3" "4" txa ; Textwinkel txp ; Einfügepunkt vom Textobjekt txh ; Texthöhe txs ; Textstyle txw ; Das jeweilige Wort aus der Textzeile txl ; die Länge des jeweiligen Wortes ) (princ "
Trimmt einen Text an den Leerzeichen") (defun co ...
|
| In das Form Lisp wechseln |
|
Lisp : Text versetzt einfügen
cadplayer am 16.08.2013 um 08:20 Uhr (1)
Code:(defun c:foo ( / pkt rot) (princ "Funktion zum versetzten Beschriften von Punkten") (setvar "AUPREC" 0) (setq NR "Punktnummer" Pkt (list 1 1 1)) ; visible POINT MODE (if (= 0 (getvar "PDMODE")) (progn (initget "Yes No") (setq swMod (getkword "
Change points style to good visible? [Yes/No] Yes: ")) (if(null swMod)(setq swMod "Yes")) (if (= swMod "Yes") (progn (princ "
Please wait...
") (setvar "PDMODE" 35) (setvar "PDSIZE" -2) ) ...
|
| In das Form Lisp wechseln |
|
Lisp : Schnittpunkt ermitteln
cadplayer am 24.01.2012 um 12:34 Uhr (0)
Code:(defun c p ( / l1 l2 w1 w2 erg di)(while (not (and (setq l1 (car (entsel "
Select line 1: "))) (wcmatch (cdr (assoc 0 (entget l1))) "LINE"))) (princ "
No line select") )(while (not (and (setq l2 (car (entsel "
Select line 2: "))) (wcmatch (cdr (assoc 0 (entget l2))) "LINE"))) (princ "
No line select") ) (progn (cond ((equal (setq win1 (angle (cdr (assoc 10 (entget l1))) (cdr (assoc 11 (entget l1))))) (setq win2 (angle (cdr (assoc 10 (entget l2))) (cdr (assoc 11 (entget l2))))) 0) ( ...
|
| In das Form Lisp wechseln |
|
Lisp : Schnittpunkt ermitteln
cadplayer am 22.02.2012 um 10:00 Uhr (0)
Mein Versuch mit cal eine Berechnung durchzuführen funktioniert soweitCode:(defun c p ( / l1 l2 l1a l1e l2a l2e l1wi l2wi di)(while (not (and (setq l1 (car (entsel "
Select line 1: "))) (wcmatch (cdr (assoc 0 (entget l1))) "LINE"))) (princ "
No line select") )(while (not (and (setq l2 (car (entsel "
Select line 2: "))) (wcmatch (cdr (assoc 0 (entget l2))) "LINE"))) (princ "
No line select") )(if (not c:cal)(arxload "geomcal"))(setq l1a (cdr (assoc 10 (entget l1))) l1e (cdr (assoc 11 (entget l1) ...
|
| In das Form Lisp wechseln |
|
Lisp : Ansichtsfenster drehen
cadplayer am 15.02.2012 um 16:43 Uhr (0)
Hi Robin!Bei mir lag das hier rum, vllt hilfts weiter...Musst halt 2 Punkte von deinem Objekt anklicken.Code:(defun C:DA ( / p0 p1 p2 a pi_2 _expert _osmode) (setq _expert (getvar "EXPERT")) (setq _osmode (getvar "OSMODE")) (setvar "UCSFOLLOW" 0) (initget 1) (setq p0 (getpoint "
Point at lower left corner: ")) (setq p0 (list (car p0) (cadr p0) 0.0)) (initget 1) (setq p1 (getpoint p0 "
Point out direction of lower line: ")) (setq p1 (list (car p1) (cadr p1) 0.0)) (setq a (angle ...
|
| In das Form Lisp wechseln |
|
Lisp : Auf- & Abtrags fläche ermitteln
cadplayer am 13.06.2012 um 15:01 Uhr (0)
Code:;;; Ermittle befindlige Geländeprofil aus 2 gewählten Geländepunkten;;; obj; Textobjekt;;; bef_h; befindlige höhe zahlwert;;; bef_p; befindlige höhe koordinate;;; bef_list; Liste aus höhe und koordinate(alert "
Entnommene Höhenangaben liegen in einer Flucht! ")(repeat 2(while (not (and (setq obj (car (entsel "
Wähle 2 Geländehöhen !"))) (not (if (/= (cdr(assoc 0 (entget OBJ))) "TEXT") (princ "
kein Text gewählt") ) ) (setq bef_h (atof (cdr (assoc 1 (entget obj)))) ) (setq bef_p (cdr (as ...
|
| In das Form Lisp wechseln |
|
Lisp : Text trimmen
cadplayer am 28.05.2012 um 13:40 Uhr (0)
Danke Wolfgang!Ich konnte mir jetzt soweit helfen. Ich verstehe eigentlich gar nicht warum die Ursprungszeile gelöscht wird. Ich sage ja immer nur das ein Wort aus der Textzeile immer an das Vorgehende angesetzt werden soll.übrig bleibt das letzte Wort, welches auf dem Textursprung liegt und eigentlich gelöscht werden kann.Vielleicht kann das einer lösenCode:(defun c:strtrim (/;;; obj ; gewähltes Textobjekt;;; s ; Inhalt der Testzeile "1 2 3 4";;; n ; umgewandelte Textzeile "1" "2" "3" "4";;; t ...
|
| In das Form Lisp wechseln |
|
Lisp : Mittelpunkt fangen
cadplayer am 10.01.2012 um 08:21 Uhr (0)
Ich möchte gern eine Routine schaffen, die es ermöglicht den Mittelpunkt zwischen zwei gedachten Punkten zu fangen.Mein Ansatz ist dieser code, mit dem es einen point zwischen zwei pickpoints erzeugt. Der Einsatz soll beipielsweise so stattfinden, dass ich eine Linie mittig zwischen zwei nicht parallelen Linien zeichnen kann1) Eingabe line enter2) Eingabe d2 pickpoint von 1. Linie dann pickpoint von 2. Linie3) Automatisch soll der Mittelpunkt zw. Linie 1 und 2 gefangen werden 4) Eingabe d2 nächster pickpoi ...
|
| In das Form Lisp wechseln |
|
Lisp : Hilfe bei lisp! Block Attrtibute rotation und position!
cadplayer am 19.02.2013 um 10:29 Uhr (0)
Danke Jörn, deine zwei Funktionen liefern mir einmal die Koordinatenunterschiede zw BlockPkt und AttribPkt und dann den Winkel.Ein bissel schwierig ist das nächste Problem auf das meine Frage galt, wenn die Blöcke gedreht sind können im (ich betone im Objekt UCS) die Koordinatenunterschiede und Winkel gleich sein. Also sollte die übertragung der AttribPosition auf die Zielblöcke gleich ausfallen. Tut es bei mir aber nicht.Ich weiss nur nicht wie ich das einbauen kann. Frage: Wie bekommt man die Koordinaten ...
|
| In das Form Lisp wechseln |