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

07.12.2012 15:41    

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 :(

Önceki Sayfa [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] > 33 < [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] Sonraki Sayfa
Copyright © 2004-2022 SQL: 1.493 saniye - Sorgu: 100 - Ortalama: 0.01493 saniye