21.05.2015 21:24    

acheron
Fonksiyon; line çizimini iztenilen sayıda bölmeyi sağlıyor.
Aynı işlemi polyline ile yapmak istiyorum.


(defun dc_hata (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
)
(setvar "osmode" dc_os)

(if (not (equal ent nil))
(redraw ent 4)
)
(if (not (equal ent1 nil))
(redraw ent1 4)
)
(setq *error* olderr)
(princ)
)
(defun c:cd ()
(setvar "modemacro" "Archme Design")
(setq dc_os (getvar "osmode"))
(setq olderr *error*
*error* dc_hata
)
(setq ent nil
ent1 nil
)
(while (null ent)
(setq ent (car (entsel "\nBölünecek çizgiyi seçiniz: ")))
)
(redraw ent 3)
(while (null ent1)
(setq ent1 (car (entsel "\nKopyalanacak çizgiyi seçiniz: ")))
)
(redraw ent1 3)
(setq pt1 (cdr (assoc 10 (entget ent)))
pt2 (cdr (assoc 11 (entget ent)))
)
(setq pt3 (cdr (assoc 10 (entget ent1)))
pt4 (cdr (assoc 11 (entget ent1)))
)
(setq dist (distance pt1 pt2)
ang (angle pt1 pt2)
)
(if (< (distance pt2 pt3) (distance pt3 pt1))
(setq ang (+ ang pi))
)
(initget 1)
(setq spac (getint "\nKaça bölünecek?...: "))
(setq dist (/ dist spac)
pdist (strcat "@" (rtos dist 2 6) "<" (angtos ang 0 4))
)
(setvar "osmode" 0)
(command "copy" ent1 "" pt1 pdist)
(repeat (- spac 1) (command "copy" (entlast) "" pt1 pdist))
(setvar "osmode" dc_os)
(redraw ent 4)
(setq ent nil
ent1 nil
dist nil
spac nil
pdist nil
pt1 nil
pt2 nil
ang nil
)
(princ)
)
(princ)

> 1 <
Copyright © 2004-2022 SQL: 1.046 saniye - Sorgu: 42 - Ortalama: 0.02491 saniye