|
Kdysi jsem začal dělat na lispiku, ktery měl sloužit k něčemu takovému. Ale zůstalo to ve stádiu rozpracovanosti. Nicméně pro jednoduché výkresy to funguje - můžete zkusit.
;příprava výkresu na faxování nebo vložení do Wordu - změní úsečky, oblouky a kružnice na křivky dané tloušťky ;rozpracováno!
(defun c:zesil() (setq tl(getreal "Tloušťka křivky: ")) (setq e (entsel "Vyber representanta ")) (setq hlad (cdr(assoc 8 (setq p(entget(car e))))) barva (cdr(assoc 62 p)) typc (cdr(assoc 6 p)) )
(if (and(/= barva nil)(/= typc nil)) (setq m (ssget "X" (list (cons 8 hlad)(cons 62 barva) (cons 6 typc))))) (if (and(= barva nil)(/= typc nil))(progn (setq m (ssget "X" (list (cons 8 hlad) (cons 6 typc))))(while (< i pocet) (if (/=(assoc 62 (entget(ssname m i)))nil) (setq m (ssdel (ssname m i) m) pocet (sslength m)) (setq i (1+ i)) ) ) ))
(if (and(/= barva nil)(= typc nil))(progn (setq m (ssget "X" (list (cons 8 hlad) (cons 62 barva))))(while (< i pocet) (if (/=(assoc 6 (entget(ssname m i)))nil) (setq m (ssdel (ssname m i) m) pocet (sslength m)) (setq i (1+ i)) ) ) ))
(if (and(= barva nil)(= typc nil))(progn (setq m (ssget "X" (list (cons 8 hlad)))) (setq pocet (sslength m) i 0) (while (< i pocet) (if (or (/=(assoc 62 (entget(ssname m i)))nil)(/=(assoc 6 (entget(ssname m i)))nil)) (setq m (ssdel (ssname m i) m) pocet (sslength m)) (setq i (1+ i)) ) ) ))
(command "_SELECT" m "") (command "_chprop" "P" "" "_C" "7" "") (setq skupt (ssget "P" '((-4 . "<OR")(0 . "LINE")(0 . "CIRCLE")(0 . "ARC")(-4 . "OR>")))) (if (/= skupt nil)(progn
(setq pocett (sslength skupt)) (setq i 0) (while (< i pocett) (if (<= i pocett)(progn (setq m (ssname skupt i)) (setq dz (entget m)) (if (/=(cdr(assoc 0 dz))"CIRCLE") (command "_PEDIT" m "_Y" "_W" tl "") (progn (command "_DONUT" (-(* 2.(cdr(assoc 40 dz))) tl) (+(* 2.(cdr(assoc 40 dz)))tl) (cdr(assoc 10 dz))"")
(entdel m) )) (setq i (+ 1 i))(write-line (itoa i))) )))) )
------------- Vítězslav Seiner
Chrudim
|