• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Boden und Höhe eines Rechtecks extrahieren

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.
 
das hast du nicht. posten die dwg sowie die lisp, sonst wie sie tun, um zu verstehen, was sie meinen "auch punkte jeder kreuzung oder hügel"?

Bye
 
ich hoffe, mit dem dwg etwas klarer zu sein.
wie sie sehen können, ich habe verschiedene formen und das verfahren, das ich dachte zu implementieren war:
1)gib mir den inneren punkt
2) wenn das betrachtete objekt 4 seiten untersucht.
3) wenn 2 seiten auf 4 gleich sind, dann ist es ein rechteck.
4) bezogen auf die untersuchten rechtecke und, falls sie gleich sind, zähler.

vielen dank für ihre sorge.
 

Anhänge

dieser befehl eliminiert unnötige vertiken entlang der polylinie und lässt nur die "ecken".
der befehl am ende der ausführung eine liste mit den koordinaten der polylinie zurückgibt.
an diesem punkt, wenn die liste aus 4 koordinaten besteht, überprüfen sie, ob die längen der diagonalen, die durch die 0-2 und 1-3 gegeben sind, identisch sind.

befehl: delv

um es von einer anderen funktion zurückzurufen: (setq listkoordinated (c:delv))

bye

p.s.: für plannerroad: wenn sie sich für zweckmäßig halten, erstellen sie eine neue diskussion über diesen befehl.
 

Anhänge

toll!
überprüfen sie den winkel zwischen punkt und punkt!
eine sache wieder: es gibt eine undefinierte funktion "r2g" (rega 24) ihres codes
können sie mir das erklären?
ich danke ihnen nicht!
 
r2g funktion, strahlung bei sechzig-fünf grad.
(defun r2g (rot) (/ 180.0 pi) rot
befehl: (r2g 3.1415)
rückkehr 180.0

dies ist das gegenteil
(defun g2r (rot) (/ rot (/ 180.0 pi))
befehl: (g2r 180.0)
3.1415

bye
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben