18.11.2013 22:15    

Travaci
given


Kod:

(defun c:bbk (/ ls gr i)
   (setq ls (ssget (list (cons 0 "*text"))) i 0 gr (ssadd))
   (repeat (sslength ls)
      (if (= "B.B.K." (substr (cdr (assoc 1 (entget (ssname ls i)))) 1 6))
          (ssadd (ssname ls i) gr))
      (setq i (1+ i)))
   (sssetfirst nil gr)
   (princ)
)

19.11.2013 08:03    

ProhibiT
ssget işlevinde nesne türünde wildchard kullanılabileceği gibi Text içeriğinde de wildchard kullanabilirsiniz.
Kod:

(ssget (list (cons 0 "*Text") (cons 1 "B.B.K.*)))

ProhibiT (19.11.2013 08:27 GMT)

19.11.2013 08:08    

boratensa
Alıntı
Harbi65 :
Alıntı
boratensa :
örneğin farklı uzunluklarda 10 adet çizgi seçtim ve bu 10 adet çizginin uzunluğunun da 5 birim olarak aynı anda değiştiriyim. çizgilerin başlangıç noktaları sabit kalacak şekilde kısaltması ya da uzatması lazım bu önemli.



Kod:

(defun c:CZBOY (/ Grp:Sec Yn:Boy Cz:tk Cz:dt Cz:ang Cz:11 i)
  (setvar "CMDECHO" 0)
  (command "UNDO" "GROUP")
  (if
    (setq Grp:Sec (ssget (list (cons 0 "LINE"))))
    (if
      (setq Yn:Boy (getreal "\n Çizgi boyunu girin:"))
      (progn
        (setq i -1)
        (repeat (sslength Grp:Sec)
          (setq Cz:tk (ssname Grp:Sec (setq i (1+ i))))
          (setq Cz:dt (entget Cz:tk)
                Cz:ang (angle (cdr (assoc 10 Cz:dt)) (cdr (assoc 11 Cz:dt))))
          (setq Cz:11 (polar (cdr (assoc 10 Cz:dt)) Cz:ang Yn:Boy))
          (setq Cz:dt (subst (cons 11 Cz:11) (assoc 11 Cz:dt) Cz:dt))
          (entmod Cz:dt)
          )
        )
      )
    )
  (command "UNDO" "END")
  (setvar "CMDECHO" 0)
  (princ)
  )





çok teşekkür ederim elleriniz dert görmesin zahmet etmişsiniz sağolun varolun

19.11.2013 09:04    

Travaci
ProhibiT


Hocam Teşekkürler.
Amma gereksiz şey yazmışım :D :no

Travaci (19.11.2013 22:19 GMT)

19.11.2013 21:14    

given
Alıntı
Travaci :
given


Kod:

(defun c:bbk (/ ls gr i)
   (setq ls (ssget (list (cons 0 "*text"))) i 0 gr (ssadd))
   (repeat (sslength ls)
      (if (= "B.B.K." (substr (cdr (assoc 1 (entget (ssname ls i)))) 1 6))
          (ssadd (ssname ls i) gr))
      (setq i (1+ i)))
   (sssetfirst nil gr)
   (princ)
)




Travaci, emegin icin sonsuz tesekkurler. Lisp gayet guzel calisiyor fakat eger mumkunse kucuk bir ricam olacakti. Acaba bu komutu calistirdigimizda hangi kelimeyi sececegini bize sormasi seklinde yapilabilir mi? B.B.K. disinda farkli kelimelerle baslayanlar icin cok isime yarayacaktir. Ilginiz icin simdiden tesekkur ederim.

19.11.2013 22:17    

Travaci
given


Kod:

(defun c:bbk (/)
    (sssetfirst nil
       (ssget (list (cons 1 (strcat (getstring "\nSeçilecek text: ") "*")))))
          (princ)
)

19.11.2013 22:26    

ProhibiT
That's it :)

20.11.2013 08:05    

given
Alıntı
Travaci :
given


Kod:

(defun c:bbk (/)
    (sssetfirst nil
       (ssget (list (cons 1 (strcat (getstring "\nSeçilecek text: ") "*")))))
          (princ)
)




Travaci, tek kelimeyle muhtesemsin. Ellerin dert gormesin, cok tesekkur ederim. :)

Prohibit hocam size de selam olsun, calismalarinizda kolayliklar dilerim.

20.11.2013 08:23    

ProhibiT
Teşekkür ederim given :) Geldi gene her işe maydanoz demezsiniz inşallah. :)

20.11.2013 17:42    

given
Hocam o nasil soz oyle, sizin basimizin ustunde yeriniz var. Beni kirmayip yazmis oldugunuz iki cizginin ortasina center line offsetleyen lispi surekli kullaniyorum ve cok da isime yariyor.

Su alemde, AutoCAD' e lisp yoluyla bulasik yikattirabilecek tek insansiniz hocam :)

... ve iyi ki varsiniz,

Saygilarimla

20.11.2013 19:27    

Travaci
Alıntı
ProhibiT :
Teşekkür ederim given :) Geldi gene her işe maydanoz demezsiniz inşallah. :)


Estağfurullah hocam, aksine sevindirik oluyoruz, hatta daha çok takılsanız, buralarda olup sorulara da daha fazla yanıt verseniz taddan yenmiceksiniz :)

21.11.2013 09:06    

miyatu
Bir konuda goruslerinize ihtiyacim var.

Nesne listelerinde (dxf group code) degisiklik yapmak ileride sorun(lar)a yol acar mi, acarsa bu sorun(lar) ne olabilir.

Simdiden tesekkurler.

21.11.2013 11:13    

waytooraider
Hocamız döndü diye parti vermemiz lazım.

21.11.2013 11:42    

ProhibiT
İlginize teşekkür ederim arkadaşlar :) "Hafıza-i beşer nisyan ile maluldür" demiş eskiler. Bir büyüğümüz de "Unutmak insanoğluna verilmiş en büyük hediyedir" demiş. Bu anlamda yakın zamanlarda geçirdiğim bir maluliyet, bir sakatlık mıdır? yoksa bana da bir hediye mi verildi bilemiyorum ama, gerek forumda gerekse özel mesajlarla istek ve dileklerini ileten arkadaşlarımız tekrar hatırlatırlarsa, vaktimiz ve gücümüz yettiğince kaldığımız yerden devam etmek benim için keyif olur.

Bu arada miyatu arkadaşımızın mesajı kaynamasın. "Nesne Listelerinde (dxf group code) değişiklik yapmak" derken neyi kastediyoruz? Gurup kodlarını değiştirmekten mi bahsediyoruz, yoksa bu kod numaralarıyla ilişkilendirilmiş (associated) verilerden mi? Biraz daha açıklayıcı bilgi verilirse, yorum yapmak mümkün olacaktır.

22.11.2013 05:57    

miyatu
Alıntı
ProhibiT :
İlginize teşekkür ederim arkadaşlar :) "Hafıza-i beşer nisyan ile maluldür" demiş eskiler. Bir büyüğümüz de "Unutmak insanoğluna verilmiş en büyük hediyedir" demiş. Bu anlamda yakın zamanlarda geçirdiğim bir maluliyet, bir sakatlık mıdır? yoksa bana da bir hediye mi verildi bilemiyorum ama, gerek forumda gerekse özel mesajlarla istek ve dileklerini ileten arkadaşlarımız tekrar hatırlatırlarsa, vaktimiz ve gücümüz yettiğince kaldığımız yerden devam etmek benim için keyif olur.

Bu arada miyatu arkadaşımızın mesajı kaynamasın. "Nesne Listelerinde (dxf group code) değişiklik yapmak" derken neyi kastediyoruz? Gurup kodlarını değiştirmekten mi bahsediyoruz, yoksa bu kod numaralarıyla ilişkilendirilmiş (associated) verilerden mi? Biraz daha açıklayıcı bilgi verilirse, yorum yapmak mümkün olacaktır.



Oncelikle tekrar hosgeldiniz.

Standart grup kodlarina eklemeler (extended data) yapmaktan bahsediyorum.

Ornek

Line nesne listesine fazladan atiyorum (1000. isitma borusu) gibi bir eklenti yapmak istiyorum.

bu bir sikinti cikarirmi...

miyatu (22.11.2013 06:42 GMT)

22.11.2013 07:24    

ehya
miyatu



Sabit olan nesneye ek dxf kodu eklemene izin vermez. Haliyle de sıkıntı durumu oluşmaz.

Autocad 2015 için alpha sürümünde böyle bir istekte bulunmuştum. Kabul edilirse iyi ihtimalle 2018 yada 2019 sürümünde görebiliriz :)

22.11.2013 08:01    

ProhibiT
ehya hocam aynı anda gönderdik, benim mesajım alta düştü herhalde :)
Konuya farklı bir açıdan bakmıştım...

Usulünce Oluşturulmuş Extended Data eklenmesi Genelde bir sıkıntı çıkarmaz.
Öncelikle regapp ile uygulamanızı register edip (regapp ile tanımlanan uygulamanız APPID tablosuna eklenir), -3 grup kodyla nesneyi uygulama ile (registered application) ilişkilendirdikten sonra belirlenen kurallar çerçevesinde (örneğin (1002 . "{") ve (1002 . "}") arasında yazmak gibi.

1000 grup kodlu Extended data 255 karakter uzunluğunda string türü içeriğe sahip olacağından bahsettiğiniz şekilde kullandığınızda genelde bir sıkıntı çıkmaz. Extended Data bölümü, 1000 ile 1071 arasındaki gurup kodlarından oluşur ve her biri belirli anlamlarla ilişkilendirilmiştir, başka maksatlarla kullanılamazlar. Ama bahsettiğiniz 1000 grup kodlu değişkeni düşündüğünüz amaçla kullanabilirsiniz.

Her seferinde "genelde bir hatayla karşılaşılmaz" diyorum çünki; Çiziminizi oluştururken veya sizin oluşturduğunuz çizim başka bir sistemde açılırken, xdsize (extended data için ayrılmış byte sayısı) aşıldığında hata ile karşılaşırsınız. Kendi programınızla bunu kontrollü bir şekilde yapmak mümkün. xdroom ile ayrılmış extended data bölümünü elde eder ona göre bir nesnenin (object) varlık adıyla (entity name) ilişkilendirilmiş listesine (association list) extended data eklersiniz. Bilgisyarınızda kurulu AutoCAD, başka uygulamalar (örneğin AutoCAD arhitecture, AEC, xxxx desktop vs) veya üçüncü parti yazılımlar kullanıyorsa, bunlar extended data için ayrılmış bölümleri kullanıyor olduklarında, sizin uygulamanıza yer kalmadığında hatalar oluşabilir...

22.11.2013 09:15    

miyatu
Alıntı
ProhibiT :
Her seferinde "genelde bir hatayla karşılaşılmaz" diyorum çünki; Çiziminizi oluştururken veya sizin oluşturduğunuz çizim başka bir sistemde açılırken, xdsize (extended data için ayrılmış byte sayısı) aşıldığında hata ile karşılaşırsınız. Kendi programınızla bunu kontrollü bir şekilde yapmak mümkün. xdroom ile ayrılmış extended data bölümünü elde eder ona göre bir nesnenin (object) varlık adıyla (entity name) ilişkilendirilmiş listesine (association list) extended data eklersiniz. Bilgisyarınızda kurulu AutoCAD, başka uygulamalar (örneğin AutoCAD arhitecture, AEC, xxxx desktop vs) veya üçüncü parti yazılımlar kullanıyorsa, bunlar extended data için ayrılmış bölümleri kullanıyor olduklarında, sizin uygulamanıza yer kalmadığında hatalar oluşabilir...



Hocam uyariniz icin tesekkur ederim.

Kafamda tam oturmadi ama birkac denemeden sonra anlayacagimdan eminim. Deneyimlerimi daha sonra burdan paylasacagim.

22.11.2013 09:37    

özkan-wien
miyatu kanayan yaraya parmak basmissin, ben de böyle bi seyler yapmak istiyorum ama henuz uygulamaya geciremedim. Auto Cad i Revit ten ayiran en büyük özellik nesne odakli olmayisi. Bu nesnelere ne Kadar cok özellik eklenirse o Kadar Revite yaklasir ya da nesne odakli olur. Ve dwg dosyalari acilmadan Excel ya da Access dan kontrol edilebilir.

Örn.: Fransa da yapilan cok büyük bi hastane insaatinda Access üzerinden Kapi "en"lerinin degistigini gördüm.
Revitle cizilmisti proje ve cizimi hic acmadan degisiklik yapiliyordu.

Ayni sey AutoCAD icin de kismen mümkün en azindan ATT bloklarin excelden kontrolü suan icin mümkün.
Ama miyatu gibi ben de nesnelere daha fazla özellik yükleme pesindeyim.

22.11.2013 13:14    

miyatu
Alıntı
özkan-wien :
miyatu kanayan yaraya parmak basmissin, ben de böyle bi seyler yapmak istiyorum ama henuz uygulamaya geciremedim. Auto Cad i Revit ten ayiran en büyük özellik nesne odakli olmayisi. Bu nesnelere ne Kadar cok özellik eklenirse o Kadar Revite yaklasir ya da nesne odakli olur. Ve dwg dosyalari acilmadan Excel ya da Access dan kontrol edilebilir.

Örn.: Fransa da yapilan cok büyük bi hastane insaatinda Access üzerinden Kapi "en"lerinin degistigini gördüm.
Revitle cizilmisti proje ve cizimi hic acmadan degisiklik yapiliyordu.

Ayni sey AutoCAD icin de kismen mümkün en azindan ATT bloklarin excelden kontrolü suan icin mümkün.
Ama miyatu gibi ben de nesnelere daha fazla özellik yükleme pesindeyim.



Konu ile ilgili calismalarim devam ediyor...

Ilk ogrendigim seyler soyle

1)Bir nesneye ekleyebileceginiz max data yaklasik 16383 b yi gecemez.
Hocamizinda anlattiklarindan bu degerin %30 kadarini bile gecemeyecegini tahmin ediyorum.
Eklemek istediginiz tek karakterlik (ben string denedim) bir data 12 b, bu dataya ekleyeceginiz her karakter 2 b ve bu listeye ekleyeceginiz her bir karakterlik data 4 b alan isgalediyor.
2)Extended data liste yapisi ogrenebildigim kadari ile;
'(-3 ("MYAPP" ;extended data adi
(1000 . "string") ;alfa numerik karakterlerin girisi
(1002 . "{") ;sembollerin girisi
(1040 . 0.0) ;numerik karakter girisi
)
)
seklinde olmali.
3)regapp ile extended data adi tabloya eklenmeli yoksa listelere ekleme yapilamiyor.
4)Extended data eklenmis bir listeyi cagirirken secim setinden sonra extended data adininda belirtilmesi gerekiyor.
Extended data adi belirtilmeden cagrilan listelerde xdata bilgileri gorulemiyor.

Not: Yukaridaki bilgiler eksik yada yanlis olabilir. Hatali oldugunu dusundugunuz yerleri paylasirsaniz hep birlikte birseyler ogrenmis oluruz.

miyatu (22.11.2013 13:24 GMT)

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