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

Extrahieren der Koordinaten der Oberseiten eines Bildes

  • Ersteller Ersteller Angelo2449
  • Erstellt am Erstellt am

Angelo2449

Guest
Hallo alle,
Wenn ich mich erinnere, habe ich diese Frage bereits vorgeschlagen, aber...
mit dem Befehl > Liste < ein Bild auswählen und erhalten :
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Anzahl der Konturpunkte:
bis Punkt, x=1498734.6144, y=5044908.2097, z= 0,0000
bis Punkt, x=1498750.7401, y=5044889.0296, z= 0,0000
Weiterführen:
bis Punkt, x=1498721.9701, y=5044864.8411, z= 0,0000
bis Punkt, x=1498705.8444, y=5044884.0211, z= 0,0000
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Wie komme ich zu Wertkoordinaten in so vielen Lisp-Variablen?
Danke.
 
für ungeschnittenes Bild ist der Autor gilles chanteau
Code:
(defun rastercoords (img / elst v1 v2 org)
(setq elst (entget img)
v1 (Karte '(lambda(x) (* x (cadr (assoc 13 elst)))))))
v2 (Karte '(lambda(x) (* x (caddr (assoc 13 elst)))))))
)
(Mapcar)
Lambda (p) (trans p img 0)
(Liste)
(setq org (cdr (assoc 10 elst)))
(Karte '+ org v1)
(Karte '+ org v1 v2)
(Karte '+ org v2)
)
)
)
 
danke dp aber der code ist sofort auch img.

Befehl: rastercoords
; Fehler: fehlende Themen
Befehl:
 
Ich bin nicht daaufGewinner(setq listav (rastercoords))zurück:((3.0 4.0 0.0) (17.2699 12.2771 0.0) (11.062 22.9796 0.0) (-3.20785 14.7024 0.0))
 
Danke.
Nach der Reflexion entschied ich mich, auf andere Weise fortzufahren.
Ich wollte die Koordinaten eines Bildes extrahieren, aber dies könnte geschnitten oder gedreht werden, nur die Extraktion der Eigenschaften als Befehl > Liste < wäre geeignet.
Aber es scheint so schwierig!
Dann, mit einem Klick mehr, Ich lösen das Problem, das darin besteht, die Koordinaten des Zentrums eines Bildes in der Zeichnung eingefügt:
Code:
 (seq modaosnapx (getvar "osmode")
(Setvar "osmode" 32)
(setq image center nil)
(Befehl "_regen")

(Sekte)
(Sekt zwei und zwei)

(sing)
=
(setq vertex (getpoint "\nclick an image Summit :"))
;

(sing)
(= oben zwei nil)
(setq vertex two (getpoint "\nclick the top image entgegengesetzt zum ersten :"))
;

(Sectq diffx (- (Auto verted) (Auto vertex)))
(setq diffy (- (cadr vertedue) (cadr verteuno))

(setq center image (list (+ (car vertex) (/ diffx 2.0))))))
(Befehl "_circle" Bildzentrum 0.50 "")
(setq ring1 (entlast)
(Befehl "_change" "_last" "_p" "_layer" "gelb"")
das Ergebnis ist perfekt, daher ist es okay, auch wenn die Suche, die Variablen zu übersetzen, das Ergebnis einer > Liste < mich nicht verlassen!
Danke.
 
die Lispe, die ich oben veröffentlichte, funktioniert auch auf gedrehten Bildern, dies unten sowie auf diejenigen, die herausgeschnitten.
(getimageclipboudaryvertex (car))

Code:
;;imageobj - ename oder vla-obgect
;;return:
;; Punkteliste (x,y) von Clipping Grenze in wcs
(defun getimageclipboudaryvertex (imageobj / imagedat pixelpoint koef
Bildhöhenpunktliste pt10)
(vl-load-com)
(wenn (= Typ imageobj) 'ename)
(setq imageobj (vlax-ename->vla-object imageobj)
)
(setq imageheight (vla-get-imageheight imageobj)
imagedat (entget (vlax-vla-object->ename imageobj)
Pixelpunkt (mapcar 'cdr
(vl-remove-if-not)
(Funktion (lambda (x) (= 14 (Auto x)))
Bild:
)
)
Koef (Liste)
(/ (vla-get-imagewidth imageobj)
(vla-get-width imageobj)
(/ Imageheight (vla-get-height imageobj))
)
pt10 (cdr (assoc 10 imagedat))
)
(setq)
Punktliste
(mapcar '(lambda)
(mapcar '*)
(mapcar '+ x '(0.5 0.5 0))
Koef)
)
Pixelpunkt
)
)
(setq)
Punktliste
(mapcar)
'(lambda (x)
(list (car x) (- imageheight (cadr x)))
Punktliste
)
)
(wenn (= Längen-Punktliste) 2)
(mapcar '(lambda)
(setq pointlist)
(Liste)
(Liste (Auto x) (cadr y))
x
(Liste (car y) (cadr x)
y
)
)
)
Punktliste
(cdr pointlist)
)
)
(setq pointlist)
(mapcar)
'(lambda (x) (rotate_0_a x (vla-get-rotation imageobj))
Punktliste
)
)
(setq pointlist)
(mapcar '(lambda (x) (mapcar '+ x pt10)))
Punktliste
)

(defun turn_0_a (p a))
(Liste)
(+ (* (cos a) (car p)) (- (-)) (cadr p)))
(+ (* (in a) (Auto p)) (* (cos a) (cadr p))))
)
)
 

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