narx
Guest
guten morgen.
ich muss die größe eines rechtecks extrahieren, indem ich auf das gleiche klicken. ich habe probleme, da ein rechteck nicht gesagt wird, 4 seiten und 4 schnittpunkte zu haben, erkläre ich besser: mit "-contours" schaffen wir eine kontur des rechtecks, aber die liste des objekts hat auch die punkte von irgendwelchen schnittpunkten oder hügeln.
(defun c:click point ()
(setq pt (getpoint "\n point im rechteck: oder (z.b.))))
(befehl "-contours" pt ")
(befehl "_change" "u" "proprieta" "color" "105"")
(setq list (entget (entlast));list der neu erstellten einheit
punkte (cdr (assoc 90 list)); finden sie die anzahl der punkte des objekts
listxysporca (member (assoc 10 list) list
listxy nil
0)
)
(vorherige n liste)
(wenn (= (nth 0 n) 10)
(falls (<= (setq count(1+ count)) punkte)
(setq listxy (cons (cadr n) (caddr n)) listxy))
;(setq listxy (cons (car n) (cadr n)) listxy))
)
)
)
(setq scrivi (strcat "points found>> :" (rtos points) ) (prin1 schreibt)
)
--------------------------------------------------------------------------------------
wie sie sehen können! listaxy hat viele werte!
wie kannst du ihn "verstehen lassen" was die spitze des rechtecks sind und ihn dann passieren
(setq base (distanz (cdr xy1) (cdr xy2))
(setq höhe (abstand (cdr xy2) (cdr xy3))
ich hoffe, ich war klar. vielen dank.
ich muss die größe eines rechtecks extrahieren, indem ich auf das gleiche klicken. ich habe probleme, da ein rechteck nicht gesagt wird, 4 seiten und 4 schnittpunkte zu haben, erkläre ich besser: mit "-contours" schaffen wir eine kontur des rechtecks, aber die liste des objekts hat auch die punkte von irgendwelchen schnittpunkten oder hügeln.
(defun c:click point ()
(setq pt (getpoint "\n point im rechteck: oder (z.b.))))
(befehl "-contours" pt ")
(befehl "_change" "u" "proprieta" "color" "105"")
(setq list (entget (entlast));list der neu erstellten einheit
punkte (cdr (assoc 90 list)); finden sie die anzahl der punkte des objekts
listxysporca (member (assoc 10 list) list
listxy nil
0)
)
(vorherige n liste)
(wenn (= (nth 0 n) 10)
(falls (<= (setq count(1+ count)) punkte)
(setq listxy (cons (cadr n) (caddr n)) listxy))
;(setq listxy (cons (car n) (cadr n)) listxy))
)
)
)
(setq scrivi (strcat "points found>> :" (rtos points) ) (prin1 schreibt)
)
--------------------------------------------------------------------------------------
wie sie sehen können! listaxy hat viele werte!
wie kannst du ihn "verstehen lassen" was die spitze des rechtecks sind und ihn dann passieren
(setq base (distanz (cdr xy1) (cdr xy2))
(setq höhe (abstand (cdr xy2) (cdr xy3))
ich hoffe, ich war klar. vielen dank.