Aşağıdaki kod seçilen 3DPOLY veya POLYFACE nesnesinin vertexlerini numaralandırarak ekran basar ve text ekranına da koordinatlarını yazar:
<hr noshade size="1">
[code] (defun c:vno (/ msh vnxt vtxData vtxTip i) (setvar "CMDECHO" 0) (setvar "OSMODE" 0) (setvar "BLIPMODE" 0) (if (zerop (cdr (assoc 40 (tblsearch "STYLE" "STANDARD")))) (command "_-STYLE" "STANDARD" "" 0.5 "" "" "" "" "") <font color="green">;Yazı yüksekliği öndeğeri 0.5'dir (değiştirebilirsiniz)</font id="green"> )
(setq msh (car (entsel "\nPolyface veya 3dpoly nesnesini gösterin: ")))
(setq i 1) (setq vnxt (entnext msh)) <font color="green">;İlk vertexi al</font id="green"> (setq vtxData (entget vnxt)) <font color="green">;Vertex datasını çek</font id="green"> (setq vtxTip (cdr (assoc 70 vtxData))) <font color="green">;Vertex tipini öğren</font id="green">
(while (or (equal 192 vtxTip) (equal 32 vtxTip)) <font color="green">;Bu aradığmız vertex ise işlemlere devam et</font id="green"> (command "_.text" "_j" "_m" <font color="green">;Vertex nosunu vertexi ortalayarak ekrana bas</font id="green"> (trans (setq pt (cdr (assoc 10 vtxData))) 0 1) 0 (rtos i 2 0) ) <font color="green">;Koordinatları yazı ekranına bas</font id="green"> (princ (strcat "\n#" (rtos i 2 0) "= " (rtos (car pt) 2 1) "," (rtos (cadr pt) 2 1) "," (rtos (caddr pt) 2 1))) (setq i (1+ i)) (setq vnxt (entnext vnxt)) <font color="green">;Bir sonraki vertexi al</font id="green"> (setq vtxData (entget vnxt)) <font color="green">;Vertex datasını çek</font id="green"> (setq vtxTip (cdr (assoc 70 vtxData))) <font color="green">;Vertex tipini öğren</font id="green"> ) (princ) ) [/code]
<hr noshade size="1">
Not: Sadelik adına hata kontrolleri ve verimlilik dikkate alınmamıştır.
|