Copyright © 2004-2022 SQL: 0.783 saniye - Sorgu: 54 - Ortalama: 0.0145 saniye
05.07.2008 16:52
meteyus |
aşagıdaki lispte normal olarak cizgileri toplamını vermektedır. fakat bunu genellikle elektrik projelerinde bır cizgi ile 3 ve ya daha fazla kanal sembolıze ediliyor. seç tiğim çizgiyi bana kaçtane sormalı ve bende rakam girip o cizgini uzunlugunu o rakamla carpması ve diğer cizgiyi secerek aynı işlemi devam etmesini istiyorum
teşekkürler (defun c:uon () ;(setvar "modemacro" "Archme Design by --> EhYa <--") (vl-load-com) (setq yaz_yk 15.0) (setq secim (ssget '((-4 . "<OR") (0 . "LINE") (0 . "LWPOLYLINE") (0 . "ARC") (0 . "ELLIPSE") (0 . "SPLINE") (0 . "CIRCLE") (-4 . "OR>") ) ) ) (if (= secim nil) (progn ) (progn (setq sayim (sslength secim)) (setq toplami 0 c 0 ) (while (< c sayim) (setq teksecim (ssname secim c)) (setq tanimi (cdr (assoc 0 (entget teksecim)))) (if (= tanimi "ARC") (progn (setq data (vlax-ename->vla-object teksecim)) (setq uz-bul (vla-get-arclength data)) (setq toplami (+ toplami uz-bul)) ) ) (if (or (= tanimi "LINE") (= tanimi "LWPOLYLINE") (= tanimi "POLYLINE") ) (progn (setq data (vlax-ename->vla-object teksecim)) (setq uz-bul (vla-get-length data)) (setq toplami (+ toplami uz-bul)) ) ) (if (= tanimi "CIRCLE") (progn (setq data (vlax-ename->vla-object teksecim)) (setq uz-bul (vla-get-circumference data)) (setq toplami (+ toplami uz-bul)) ) ) (if (or (= tanimi "ELLIPSE") (= tanimi "SPLINE")) (progn (command "._area" "e" teksecim) (setq uz-bul (getvar "perimeter")) (setq toplami (+ toplami uz-bul)) ) ) (setq c (+ c 1)) ) (setq yz_nkt (getpoint "\n Yazının yerleşeceği noktayı gösterin:")) (if (= yz_nkt nil) (progn (alert (strcat "\nToplam Uzunluk: " (rtos (/ toplami 100) 2 2) " metre" ) ) ) (progn (command "_text" "_st" "standard" "j" "_mc" yz_nkt yaz_yk 0 (strcat (rtos (/ toplami 100) 2 2) " m.")) ) ) ) ) (princ) )
|
05.07.2008 18:32
Harbi65 |
Doğru anladımsa yaptım ama istediğin bu mu acaba?
adet girmezsen tek çizgi olarak yazar... girersen adetle çarpımını... Kod: (defun c:uon ()
(setvar "modemacro" "Archme Design by --> EhYa <--") (vl-load-com) (if (not (tblsearch "style" "Metraj")) (progn (if (= yaz_yk nil) (setq yaz_yk 15.0) ) (setq yazy (getreal (strcat "\ Yazı stili yüksekliği <" (rtos yaz_yk 2) ">:"))) (if (= yazy nil) (setq yazy yaz_yk) ) (setq yaz_yk yazy) (command "STYLE" "Metraj" "Comic Sans MS" (rtos yaz_yk) "0.9" "" "" "" ) ) ) (if (= ykat_sor nil) (command "layer" "_M" "DOSEME" "_C" "230" "" "") ) ; (setq secim (ssget '((-4 . "<OR") (0 . "LINE") (0 . "LWPOLYLINE") (0 . "ARC") (0 . "ELLIPSE") (0 . "SPLINE") (0 . "CIRCLE") (-4 . "OR>") ) ) ) (if (= secim nil) (progn ) (progn (setq sayim (sslength secim)) (setq toplami 0 c 0 ) (while (< c sayim) (setq teksecim (ssname secim c)) (setq tanimi (cdr (assoc 0 (entget teksecim)))) (if (= tanimi "ARC") (progn (setq data (vlax-ename->vla-object teksecim)) (setq uz-bul (vla-get-arclength data)) (setq toplami (+ toplami uz-bul)) ) ) (if (or (= tanimi "LINE") (= tanimi "LWPOLYLINE") (= tanimi "POLYLINE") ) (progn (setq data (vlax-ename->vla-object teksecim)) (setq uz-bul (vla-get-length data)) (setq toplami (+ toplami uz-bul)) ) ) (if (= tanimi "CIRCLE") (progn (setq data (vlax-ename->vla-object teksecim)) (setq uz-bul (vla-get-circumference data)) (setq toplami (+ toplami uz-bul)) ) ) (if (or (= tanimi "ELLIPSE") (= tanimi "SPLINE")) (progn (command "._area" "e" teksecim) (setq uz-bul (getvar "perimeter")) (setq toplami (+ toplami uz-bul)) ) ) (setq c (+ c 1)) ) (setq yz_nkt (getpoint "\n Yazının yerleşeceği noktayı gösterin:") ) (if (= yz_nkt nil) (progn (alert (strcat "\nToplam Uzunluk: " (rtos (/ toplami 100) 2 2) " metre" ) ) ) (progn (setq yzadt (getint "\n Ölçülen çizginin adetini girin:")) (if (= yzadt nil) (progn (setq sonuc toplami) ) (progn (setq sonuc (* yzadt toplami)) ) ) (command "_text" "_st" "Metraj" "j" "_mc" yz_nkt "" (strcat (rtos (/ sonuc 100) 2 2) " m.") ) ) ) ) ) (princ) ) Harbi65 (05.07.2008 20:45 GMT) |
05.07.2008 19:12
meteyus |
Harbi65 kardeş teşekkürler
meteyus (05.07.2008 20:46 GMT) |
05.07.2008 20:47
Harbi65 |
yukarıda ki lispi değiştirdim....
artık oldu de... yoksa benim boyumu aşıyor...:D
|
meteyus |
tamam eyvallah kardeş oldu sagol
|