Copyright © 2004-2022 SQL: 1.493 saniye - Sorgu: 100 - Ortalama: 0.01493 saniye
06.11.2012 14:54
bonamir |
Selamlar...
Lisp isteklerini dikkate alıp karşılık beklemeden yardım eden arkadaşlara teşekkürler. Özellikle ehya (Şahin) ağbiye çok teşekkürler.Sayenizde büyük kolaylıklara sahip olduk programda Kolay gelsin.Allah razı olsun.
|
06.11.2012 15:11
ehya |
bonamir
Ehya'nın yani benim adım "mehmet Şamil Demiryürek" Prohibit hocamın adı ise "Mehmet Şahin Güvercin" Yanlışlık olmasın :)
|
09.11.2012 14:47
bayrecep |
S.a. herkese.Bir lisp isteğim olacak mümkünse yapabilirmisiniz.Uçları açık olan polyline halde nesneleri pedit komutu alt komutu olan close ile kapatmak istiyorum.Her defasında birçok polyline sağ tıkla pedit felan uzun işlem oluyor.Bunu çözebilecek bir lispe ihtiyacım var.Şimdiden Teşekkür ederim.
|
09.11.2012 15:04
ehya |
Mevcutta böyle bir komut var zaten. MPEDIT komutu ile çoklu seçim yapabilirsiniz. Ama illa lisp olacak ise, aşağıdakini kullanabilirsiniz.
Komut adı PLC Tüm pline nesnelerini seçin. Paftanızda seçim yaparken tek tek seçim yapmaın. Tüm paftayı seçin. İçinden pline olan ve ucu açık olan nesneler seçilecektir. Kod: (defun c:plc ()
(setq ss (ssget (list (cons 0 "LWPOLYLINE")(cons 70 0)))) (if (= ss nil) (progn) (progn (setq c 0 ss_say (sslength ss)) (while (< c ss_say) (setq ss_tek (ssname ss c)) (setq en (entget ss_tek)) (setq en (subst (cons 70 1)(assoc 70 en) en)) (entmod en) (setq c (+ c 1)))))(princ))
|
09.11.2012 16:52
bayrecep |
Ehya hocam çok teşekkürler mpedit komutunu bilmiyordum öğrenmiş oldum.Çok faydalı oldu açıkçası.
|
10.11.2012 13:08
bonamir |
Selamlar.
Evet kullanıcı adı ve isimlerde yanlışlık yapmışım.:) Zaten tüm paylaşımları ikiniz yaptığınızdan ikinizede teşekkürler. Bende mehmet, sende mehmet, Prohibit ağbimizde mehmet nekadar çok mehmet olduk. Kolay gelsin.
|
12.11.2012 10:10
bonamir |
S.a Saygılar herkese
Ben bişey soracağım arkadaşlar.Mevcut kullandığım Bloğumu revize ettim. Önceden yazı olmayan renk olmayan bloğu renkli ve yazılı hale getirdim.Yeni yaptığım resimlerde problemsiz güzel bir şekilde devam ediyorum. Ancak eski blokları yaklaşık 2000 adet çalışmamda kullandım.Bunlarında yeni bloklar ile değişimini nasıl yapabilirim.Kolay bir yolu varmı.? İçine girip yeni bloğu tanıtınca sorun çözülüyor ama resim çok olduğundan tek tek zor bir çözüm oluyor. Konuyu yanlış yerde açmamışımdır umarım. Kolay gelsin.
|
12.11.2012 10:38
Travaci |
Eskı yaptığın resımde bloğu aç duzenlemenı yap daha sonra attsync enter select enter
|
12.11.2012 12:49
CAN123 |
Arkadaşlar merhaba,
Sırayla seçtiğimiz ölçüleri text'in içerisine ekletecek bir lisp yazabilirmiyiz. Şöyleki 60 80 250 şeklindeki ölçüleri seçeceğim textin içerisine 60 + 80 + 240 şeklinde yazdıracak bir lisp. yardımcı olabilecek arkadaşlara şimdiden teşekkurler kolay gelsin
|
12.11.2012 13:47
ProhibiT |
Kod: (defun c:dim2txt (/ dD Ku PvT Ti Tx)
(setvar "cmdecho" 0) (command "_.undo" "group") (setq dD (getvar "DimDec")) (while (setq PvT (car (entsel "\nSelect Dimension"))) (if Ti (setq Ti (strcat Ti " + " (rtos (cdr (assoc 42 (entget PvT))) 2 dD))) (setq Ti (rtos (cdr (assoc 42 (entget PvT))) 2 dD))) (redraw PvT 3)) (if (not Ti) (exit)) (setq Tx (entget (car (entsel "\nSelect Text"))) Tx (subst (cons 1 Ti) (assoc 1 Tx) Tx) Ku (entmod Tx) Ku (entupd (cdr (assoc -1 Tx)))) (command "_.Regen") (command "_.undo" "e") (princ))
|
12.11.2012 14:30
CAN123 |
Prohibit hocam cevabınız için teşekkür ederim.
iki küçük problem var. birincisi sadece 2 ölçü seçince işlemi yapmıyor. 2'den fazla seçimlerde problem yok. ikincisi ise ölçüleri .5'e ve 1'e yuvarlartabilirmisiniz. Yani 1981.8 + 2056.9 + 1800.7 şeklinde değilde 1982 + 2057+ 1800.5 şeklinde. tekrardan çok teşekkurler
|
13.11.2012 07:45
ProhibiT |
Birincisi sadece 2 ölçü seçince işlem yapmaması için hiç bir neden yok. Tek bir ölçü de dahil istenen her sayıda ölçü objesi seçilincede işlem yapılır. Diğer konu ise uzun iş :) vaktim ve sabrım yetmiyor kusuruma bakılmasın.
|
13.11.2012 08:52
CAN123 |
Haklısınız 2 ölçü seçince de yapıyormuş. Son bi isteğim seçim yaparken yanlışlıkla ölçü değilde boşluğa tıklayınca problem oluyor. Bunu engelleyebilirmiyiz. Teşekkurler.
|
15.11.2012 09:14
CAN123 |
Arkadaşlar merhaba,
Birbirine paralel olan üç çizgi var ve bu çizgiler arasındaki mesafeleri seçeceğim texte ekletmek istiyorum. Şöyleki seçeceğim iki çizgi arasındaki mesafe "A" olsun ikinci kez seçeceğim çizgiler arasındaki mesafede "B" olsun. Bu mesafeleri seçeceğim textin içerisine başında "L" olacak ve ardından "A"x"A"x"B" ve devamında üç noktadan sonra seçeceğim herhangi bir çizginin uzunlugunu ekletecek bir lisp. (L60x60x6...1500 şeklinde) Umarım anlatabilmişimdir. Teşekkur ederim.
|
04.12.2012 12:13
ProhibiT |
Söz verdiğim bir fonksiyon için ancak vakit bulabildim. Seçilen 2 obje ortasında eksen çizgisi (Center Line) oluşturan fonksiyon.
Kod: ;|***************************************************************************| | cLn: Create Center Line of selected two objects | | Author: M. Şahin Güvercin www.cizimokulu.com 04.12.2012 | |---------------------------------------------------------------------------|; (defun c:cLn (/ cPt dPt fOb oOd p1 p2 rPt sOb) (setvar "cmdecho" 0) (command "_.undo" "group") (vl-load-com) (redraw (setq fOb (car (entsel "\n Select First Object: "))) 3) (redraw (setq sOb (car (entsel "\nSelect Second Object: "))) 3) (if (not (and fOb sOb)) (exit)) (setq rPt (cdr (assoc 10 (entget fOb))) dPt (vlax-curve-getClosestPointTo (vlax-ename->vla-object sOb) rPt T) cPt (mapcar '(lambda (p1 p2) (/ (+ p1 p2) 2.0)) rPt dPt)) (setq oOd (getvar "OffsetDist")) (setvar "OffsetDist" -1) (vl-cmdf "_.Offset" "" (cons fOb (list rPt)) cPt "") (setvar "OffsetDist" oOd) (redraw fOb 4) (redraw sOb 4) (command "_.undo" "e") (princ)) Seçilen ilk objenin, ikinci seçilen obje ile mesafesi bulunur. Birinci obje bu mesafenin orta noktasına offset edilir. İlk seçilen obje, Line, PolyLine, SpLine (gibi adında ..Line.. olan) türü bir obje olmalıdır. Circle, Arc veya Ellipse seçildiğinde yapılan işlem hatalı olacaktır. Arc objeleri nden biri Pedit ile işleme alınıp Polyline'a çevrildikten sonra (ilk seçilecek obje Polyline olmak şartıyla) işlem yapılabilir. Kolay gelsin.
|
07.12.2012 09:09
Aegrine |
Arkadaşlar çok zor durumda kaldım yardımcı olabilirseniz sevinirim.
Elimde netcadden dwgye çevirilmiş bir çizim dosyası var. Bu dosyayı autocad 2Dde açtığımda kontların z kot değerlerinin bozulmuş olduğunu farkettim. Örneğin 20 m konrtundaki polylinelar -20,20,-20,20 şeklinde gidiyor. Sahadaki tüm kotları seçip hepsini pozitife çevirme şansım var mıdır? işaret değiştir diyemiyorum bu sefer de + değerler - olacak :( bana yardımcı olursanız çok sevinirim lisp konusunda hiç tecrübem yok :(
|
07.12.2012 11:18
Travaci |
Find komutuyla yada ct lisp i ile - değerleri + yap diye bilirsin.
Kod: (defun ct_act ( os ns p / )
(setq i 0) (setq degis 0) (repeat (sslength p ) (setq ent (entget (ssname p i))) (setq kontrol_yazisi (cdr (assoc 1 (entget (ssname p i))))) (if (/= (vl-string-search os kontrol_yazisi ) nil) (progn (setq position (vl-string-search os kontrol_yazisi)) (while (/= (setq position (vl-string-search os kontrol_yazisi position)) nil) (setq kontrol_yazisi (vl-string-subst ns os kontrol_yazisi position)) (setq position (min (+ position (strlen ns)) (strlen kontrol_yazisi))) ) (setq ent (subst (cons 1 kontrol_yazisi) (assoc 1 ent) ent)) (entmod ent) (entupd (ssname p i)) (setq degis (1+ degis)) ) ) (setq i (1+ i)) ) ) (defun c:ct ( / ) (vl-load-com) (setvar "cmdecho" 1) (princ "Yazı seçiniz.............") (setq p (ssget '((0 . "TEXT")))) (setq os (getstring "\n Eski Yazi : " t))(if (= os "") (progn (setq os_ (ssget ":S" '((0 . "TEXT"))))(if (= os_ nil)(setq os "")(setq os (cdr (assoc 1 (entget (ssname os_ 0)))))))) (setq ns (getstring "\n Yeni Yazi : " t)) (if (= ns "")(progn (setq ns_ (ssget ":S" '((0 . "TEXT"))))(if (= ns_ nil)(setq ns "")(setq ns (cdr (assoc 1 (entget (ssname ns_ 0)))))))) (ct_act os ns p) (princ (strcat "\n Değişen eleman sayısı : " (itoa degis))) (setvar "cmdecho" 0) (princ) )
|
07.12.2012 12:56
Aegrine |
Teşekkür ederim, lispi dosyama yükledim ct enter +enter dedim ama inval,d d,yor :(?
|
07.12.2012 14:38
Travaci |
ct enter
Select objects diyor değiştirilicek yazıların olduğu alanı seçiyorsunuz Eski yazıyı soruyor - yazıp enter Yeni yazıyı soruyor + yazıp enter diyorsunuz Zaten ne yapmanız gerektiği hakkında command satırı sizi yönlendiriyor :S
|
Aegrine |
Sanırım benim kulandığım dosyada olması bu :(
Ct :enter: yapınca; command satırında Enter new value for CTABLESTYLE <"Standard">: çıkıyor. orata + yazarsam ; Cannot set CTABLESTYLE to that value. *Invalid* diyor :(
|