Copyright © 2004-2022 SQL: 1.173 saniye - Sorgu: 76 - Ortalama: 0.01543 saniye
16.05.2013 11:01
melisalmina ![]() |
bir yangın borusuna tıkladığımda o borunun (tek çizgi)uzunluğunu bana 1"-2.10m gibi yazabilecek bir lisp olabilir mi yani dimension ile tek tek ölçüp yazmak çok zaman alıyor mesela ben borunn çapı 1" ise borunn uzunlugu için boruya tıklayacağım 2.00m diyecek ve çapı içinde projede zaten olan boru çapını referans göstereceğim örneğin 1" e tıkladığımda bana sonuç olarak 1"-2.00m diye yazabilecek bir lispe ihtiyacım var
|
17.05.2013 06:50
![]() ![]() |
Travaci (17.05.2013 07:04 GMT) |
17.05.2013 07:09
melisalmina ![]() |
çok teşekkür ederim sayın hocam :):) benden başkasınn işine yarar mı bilmem ama istediğimdende güzel oldu walla
|
27.08.2013 09:37
oguzatalan ![]() |
link ölmüş yenileyebilirmiyiz lütfen
|
27.08.2013 09:56
![]() ![]() |
|
27.08.2013 13:16
oguzatalan ![]() |
link için teşekkür ederim.
denedim ama 1 1/4" gibi bi boru çapını yazdıramıyor ve 1,0000" gibi sonuç yazıyor.
|
27.08.2013 13:29
![]() ![]() |
Küsürat durumunu halletmiştim ama eskisini upload etmişim farkında olmadan.
Lisp yukarıdaki isteğe göre yazılmış, sonucu misal; 1"-28.68m şeklinde veriyor. Yazarkende hiç öyle girilebileceği aklıma gelmedi doğrusu.
|
02.09.2013 09:19
miyatu ![]() |
Kod: (defun c:bmt () (if (= cap nil) (progn (setq cap 15) ) ) (if (= sys nil) (progn (setq sys "Boru") ) ) (initget 1024 "Tablo") (setq p1 (getpoint "\nBaslangic noktasini sec [Tablo]:")) (initget 1024 "Cap System") (while (and (/= p1 "Tablo") (/= nil (setq p2 (getpoint p1 (strcat "\nIlk noktayi sec[Cap <" (rtos cap 2 0) ">/ System<" sys ">]:" ) ) ) ) ) (cond ((= p2 "Cap") (cap_al)) ((= p2 "System") (sys_al)) ((and (/= p2 "Cap") (/= p2 "System")) (ciz)) ) (initget 1024 "Cap System") ) (if (= p1 "Tablo") (progn (dls) ) ) ) (defun cap_al () (setq y_cap (getreal (strcat "\nYeni capi gir<" (rtos cap 2 0) ">:"))) (if (= nil y_cap) (progn y_cap cap) ) (setq cap y_cap) ) (defun sys_al () (setq y_sys (getstring (strcat "\nYeni system gir<" sys ">:"))) (if (= nil y_sys) (progn y_sys sys) ) (setq sys y_sys) ) (defun ciz () (setq layer (strcase (strcat "metraj_" sys "_" (rtos cap 2 0)))) (if (null (tblsearch "LAYER" layer)) (entmake (list (cons 0 "LAYER") (CONS 100 "AcDbSymbolTableRecord") (CONS 100 "AcDbLayerTableRecord") (cons 2 layer) (cons 70 0) (cons 62 155) (cons 6 "CONTINUOUS") ) ) ) (setvar "CLAYER" layer) (command "PLINE" p1 p2 "") (setq p1 p2) ) (defun dls () (setq data (dosya_adi "csv")) (setq f (open data "w")) (setq p1 (getpoint "\nTablo yerlesim yerini gosteriniz:")) (while (/= (setq l_adi (cdr (assoc 2 (tblnext "LAYER")))) nil) (setq d_kodu (substr l_adi 1 6)) (if (= d_kodu "METRAJ") (progn (secim1) ) ) ) (princ "\nmiyatu tool kullanildi...") (tblnext "LAYER" t) (PRINC) ) (PRINC "BORU METRAJ TABLOSU YAPAN LISP YUKLENDI... [BMT]") (defun topla () (vl-load-com) (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 (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)) ) ) (setq c (+ c 1)) ) (setq uzunluk (rtos (/ toplami 1000) 2 2)) ) ) (text_yaz l_adi p1 (strcat l_adi "," uzunluk)) ) (defun secim1 () (setq secim (ssget "_X" (list (cons 0 "LWPOLYLINE") (cons 8 l_adi)))) (if (/= secim nil) (progn (setq p1 (polar p1 (dtr 270) 200)) (topla) ) ) ) (defun dosya_adi (#uzanti) (strcat (getvar "dwgprefix") (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 3) ) #uzanti ) ) (defun text_yaz (#t8 #t10 #t1) (entmake (list (cons 0 "TEXT") (cons 100 "AcDbEntity") (cons 8 #t8) (cons 100 "AcDbMText") (cons 10 #t10) (cons 1 #t1) (cons 40 125) ) ) (write-line (strcat l_adi "," uzunluk) f) ) (defun dtr (#aci) (* pi (/ #aci 180.0)) ) (defun secim2 () (setq secim (ssget "_X" (list (cons 0 "LWPOLYLINE") (cons 8 l_adi)))) (if (/= secim nil) (progn (setq p1 (polar p1 (dtr 270) 200)) (setq d_kodu d_kodu1) (topla) ) ) ) alternatif olarak paylasiyorum. Kendi kullandigim toplama bir lisptir. Normal sartlar altinda Pline ile caplara ve sistem adina gore cizim yapmanizi saglar. Yeni olusan layer lara gore boru metraji cikarir. Ciziminizda istediginiz bir noktaya yazar. Ciziminizin bulundugu klasor icinde csv uzantili bir dosya olusturur ve bunun icine metrajinizi cikarir. Command satirini takip edin bir kac denemede nasil calistigini anlarsiniz.
|
02.09.2013 12:19
waytooraider ![]() |
Merhaba Miyatu,
Komutu çalıştırınca text değerine tıklayınca otomatik olarak cap değerine yazsa ve üstüne komuttan çıkmadan tekrar çizime devam etse herhalde aradığım şey bu derdim. Saygılarımla.
|
03.09.2013 03:13
miyatu ![]() |
Alıntı Suanki hali ile komuttan cikmadan capini ve sistem adini degistirebilirsin.Secim yapmaktan daha kolay oldugunu dusunuyorum.
|
28.07.2024 21:52
kenan4533 ![]() |
NASIL ÇAĞIRIYORUZ KOMUTU SAYGILAR
|
baha07 ![]() |
Alıntı selam , neden buyuk harfle yaziyorsun ? (defun c:bmt () lispi yukledikten sonra komut satiriniz bmt yaz
|