Aşağıdaki kodu internette buldum, biraz değiştirdim. İşinizi çözer mi?
[code](defun C:DISLI (/ p1 p2 r1 r2 n ang ang1 ang2 cmd blip a1 a2 a3 a4 a5) (setq p1 (getpoint "\nDişlinin merkezi: ") p2 (getpoint p1 "\nDış yarıçapı: ") r1 (getdist P1 "\nİç yarıçapı: ") n (getint "\nDiş sayısı <10>:"))
(if (null n)(setq n 10))
(setq ang (angle p1 p2) r2 (distance p1 p2) ang1 (/ (* 2.0 pi) n) ang2 (/ ang1 6.0) cmd (getvar "CMDECHO") blip (getvar "BLIPMODE") )
(setvar "CMDECHO" 0) (setvar "BLIPMODE" 0)
(command "_.POLYLINE") (repeat n (setq ang (+ ang ang1)) (setq a1 (polar p1 ang r1) a2 (polar p1 (+ ang ang2) r2) a3 (polar p1 (+ ang (* 3 ang2)) r2) a4 (polar p1 (+ ang (* 4 ang2)) r1) a5 (polar p1 (+ ang (* 6 ang2)) r1))
(command a1 a2 a3 a4 a5) ) (command "")
(setvar "BLIPMODE" blip) (setvar "CMDECHO" cmd) (princ) ) [/code]
|