19.12.2011 14:56    

cagrikara
galiba düzelttiniz benim isteğime göre ama. düzelttiğin lisp olmuyor. yani başlanılacak numara oluyor sadece a c ya da nokta1,2,3, falan diye sıralamıyor.

19.12.2011 16:25    

ehya
Şahin hocam susarak en iyi cevabı vermiş...
Lisp yazmak öyle word'e yazı yapmak gibi değildir. Bazı istekler kodlamayı tamamen değiştirir.
Bir lisp istenirken bir defada istenir. Yazılabilirliğine göre yazılır ve biter.

19.12.2011 16:38    

ProhibiT
:yes

19.12.2011 20:50    

doygun77
İyi çalışmalar Şahin hocam ben pct lispini formdan bulmuştum, total statin uzakta oldugu zaman 8-10 noktaya kadar olan koordinatları proje üzerine yazıpdırıp sahada makineye el ile giriyorum.

NXYZ lispindeki düzeltmeleri için elinize sağlık çok daha güzel olmuş. koordinat dosyasını excel üzerinde bazı düzeltmere yaparak (satır sutun'a dönüştürerek ,noktadan sonra 3 haneye cevirip) kullanabiiliyordum . ben lisp yazamıyorum, araştımalarımda ve arkadaslarımdan bulduğum lispleri kullanıyorum.

'' Diyelim ki, Line ve PolyLine objelerine Ellipse, Circle, Arc gibi objeleri de ekledik, bunların üzerine de belli aralıklarla noktalar oluşturduk. Peki bu noktaları hangi mantığa göre numaralamak gerekiyor? '' saat ibresi yönü olabilir,sagdan sola doğru olabilir veya aslında X+Y toplamları ile küçükten büyüğe göre sıra numarası vermek daha mantıklı gibi , sıralama cok önemli değil ama rakamlar birbirine yakın olması oparatör için kolaylıktır. Sadece line ve poyline köşeleriini noktalasa dahi olur bir katta 100 adet kolon olsa en az 400 nokta yapar 1 katın aplikasyon planı hata yapılmassa yaklaşık 20-25 dk alıyor. elips kısımlar el ile noktalabilir. İlği ve anlayışınız için teşekkür ederiz, Emeğinize sağlık :)

Şahin hocanın düzenlediği NXYZ lispini gsi dosyasına çevirmek isteyen arkadaşlar, nokta dosyası olusturduktan sonra dosyayı .txt olarak açıp en üst satırda ki nxyz yazısını (yazı sayısal deger olmadıgı için hata verecektir ) silip kaydedin ve laica 6.0 (veya kendi total programınızdan )veri döşüm programından gsi ye çevirebilirler.

CAĞRIKAYA arkadaşımızın aradığı lisp pct lispidir, fakat anladığım kadar değerleri ekrana degilde .xls dosyası olarak istiyor veya ekrana attığı tabloyu, ayrı bir dosya olarak excel veya txt dosyası olarak kaydedebilirmiyiz. Ekrana yapıştırılan grafik sayısala (nokta dosyasına ) cevirilemeyince total station a aktarılamıyor.

doygun77 (20.12.2011 05:47 GMT)

20.12.2011 09:11    

doygun77
Şahin hocam mazur görürseniz bir sorum daha olacak nxyz de yaptığımı işlemi tersinede yapabilirmiyiz? nokta dosyasdan, autocad'e aynı koordinatlara nokta atarak numaralarını yazacak. Ben bunu total stationdan aktarıp yeniden veri almak ve nedcat üzerinden yapıyorum ama her yerde nedcat programı ve total imkanı bulunmuyor. Yardımlarınız şimdiden için teşekkkürler. excelden autocad e veri aktarmak bölümünü ve internetten araştırmalarımda pek bir sonuca ulaşamadım.

21.12.2011 05:46    

cagrikara
galiba arkadaş şunu istedi; lispi çalıştırdığımızda ilk olarak nokta ismini girsek. sonra kordinatları girsek x,y,z autocad üzerinde noktalarımızı atsa. Çok güzel olur..

Evet çok güzel olur. Böyle bir lisp varmı acaba ?

21.12.2011 06:29    

doygun77
Alıntı
cagrikara :
galiba arkadaş şunu istedi; lispi çalıştırdığımızda ilk olarak nokta ismini girsek. sonra kordinatları girsek x,y,z autocad üzerinde noktalarımızı atsa. Çok güzel olur..

Evet çok güzel olur. Böyle bir lisp varmı acaba ?


Tek tek koordinatlarini yazarak nokta atan lispler var. benim istedigim nokta atan nxyz lispinin tersini yapmasi nokta dosyasini isteyecek ve koordinatlarina gore noktaları atip numarasini yazarcak. birde kolon köselerini bina dış sınırının kırık noktalarını (layeri acık olan bütün çizgilerin ) noktalayıp numaralandıracak ve koordinat dosyası verecek lisp; nxyz ile çalmaşma şekli aynı fakat tek tek noktaları işeretlemek yerine lisp'in otomatik olarak işeretlemesi

doygun77 (21.12.2011 11:34 GMT)

21.12.2011 15:20    

ProhibiT
Özellikle istek üzerine yazılan fonksiyonları paylaştığımda, ilgilenen arkadaşlarımıza özel mesaj yazıp bilgilendiriyorum. Nedendir bilinmez, benim üşenmeden yazdıklarımı arkadaşlarımız okumuyorlar. Bu yüzden giden kutum okunmamış mesajlarla doluyor. Bu nedenle aşağıdaki paylaşımlarla ilgilenen arkadaşlar biribirilerini haberdar ederlerse sevinirim.

- Sitemiz Download bölümünde

Linkleri görebilmek için ÜYE olmalısınız.

linkide paylaşılan PcT fonksiyonunu, koordinat tablosunu istenirse -.xls uzantılı Excel dosyasına da yazabilecek şekilde düzenlendi.

- Seçilen Line, PoLyLine ve LwPoLyLine objelerinin uç noktaları ve Vertex noktalarına isteğe göre Point veya Circle yerleştiren fonksiyon.
Kod:

;|===========================================================================|
|  Seçilen Line, Polyline ve Lwpolyline objelerinin uç noktalarına ve       |
|  vertex noktalarında geçerli Layer ve Color kullanılarak Point veya       |
|  Circle objeleri oluşturulur. Oluşturulan objelerinin koordinatları       |
|  PcT fonksiyonu kullanılarak çizim içine tablo olarak yazıdırılabilir.    |
|  İstenirse de Excel (_.xls) dosyasına yazdırılır.                         |
|  Hazırlayan: M. Şahin Güvercin  21/12/2011  www.autocadokulu.com          |
|===========================================================================|;
(write-line "Hazırlayan: M. Şahin Güvercin - www.autocadokulu.com")
(defun c:nKtL (/ *error* kuk cRaD NkT objs L n PivT pTs PvT m o)
  (setvar "modemacro" "M.Sahin Guvercin") (setvar "cmdecho" 0)
  (command "_.undo" "group")
  (defun *error* (msg) (setvar "modemacro" "") (princ msg) (command "undo" "e")
    (setq *error* nil) (prin1))
  (setq kuk (initget "Point Circle") cRaD (/ (getvar "Textsize") 5)
        NkT (getkword "\nOluşturulacak obje türü (P=Point/C=Circle): [P/C] ")
        objs (ssget (list (cons 0 "Line,*PoLyLine")))
        L (sslength objs) n -1)
  (while (< (setq n (1+ n)) L)
    (setq PivT (entget (ssname objs n)) pTs nil)
    (cond ((= (cdr (assoc 0 PivT)) "LINE")
           (setq pTs (list (cdr (assoc 10 PivT)) (cdr (assoc 11 PivT)))))
          ((= (cdr (assoc 0 PivT)) "POLYLINE")
           (progn
             (setq PivT (cdr (assoc -1 PivT)))
             (while (/= (cdr (assoc 0 (entget (setq PivT (entnext PivT)))))
                        "SEQEND")
               (setq pTs (append pTs (list (cdr (assoc 10 (entget PivT)))))))))
          ((= (cdr (assoc 0 PivT)) "LWPOLYLINE")
           (while (setq PvT (assoc 10 Pivt))
             (setq pTs (append pTs (list (list (cadr PvT) (caddr PvT)
                                         (cdr (assoc 38 PivT)))))
                   PivT (vl-remove (assoc 10 PivT) PivT)))))
    (setq m (length pTs) o -1)
    (while (< (setq o (1+ o)) m)
      (if (= Nkt "Point")
        (entmake (list (cons 0 NkT) (cons 10 (nth o pTs))))
        (entmake (list (cons 0 NkT) (cons 10 (nth o pTs)) (cons 40 cRaD))))))
  (setvar "modemacro" "") (setq *error* nil) (command "undo" "e") (prin1)
)


- Dosyadan okunan değerlere göre, dosyada yer alan koordinatlara Nokta Numaralarını yazan fonksiyon.
Kod:

;|===========================================================================|
|  Seçilen dosyadan okunan Nokta Numaralarını, okunan koordinatlara yazar.  |
|  Koordinat dosyasında Başlık Satırı bulunmadığı kabul edilir.             |
|  Nokta numarası ve koordinat değerleri biribirinden Tab, Boşluk (space)   |
|  Virgül (,) veya noktalı virgül (;) ile ayrılmış olabilir.                |
|  Bir dosyada bahsedilen ayraçlardan yalnızca biri kullanılabilir.         |
|  Nokta Numalaraları geçerli Layer, Text Style, Text Height, Color,...     |
|  gibi öznitelikler kullanılarak yerlerine yazılırlar.                     |
|  Hazırlayan: M. Şahin Güvercin  21/12/2011  www.autocadokulu.com          |
|===========================================================================|;
(write-line "Hazırlayan: M. Şahin Güvercin - www.autocadokulu.com")
(defun c:pTcR (/ *error* objs L fL SpR SaT PsT CoX CoY CoZ PnT)
  (setvar "modemacro" "M.Sahin Guvercin") (setvar "cmdecho" 0)
  (command "_.undo" "group")
  (defun *error* (msg) (setvar "modemacro" "") (princ msg) (setq *error* nil)
    (close fL) (command "undo" "e") (prin1))
  (setq fL (open (getfiled "Koordinat Dosyası" "" "" 0) "r") SpR nil)
  (while (setq SaT (read-line fL))
    (if (not SpR)
      (cond ((vl-string-position 9 SaT) (setq SpR 9))
            ((vl-string-position 32 Sat) (setq SpR 32))
            ((vl-string-position 44 SaT) (setq SpR 44))
            ((vl-string-position 59 SaT) (setq SpR 59))
   (progn (princ "\n*** Okunan dosyada beklenen ayraç bulunamadı!\n") (exit))))
    (if (not (setq PsT (vl-string-position SpR SaT)))
   (progn (princ "\n*** Okunan satırda beklenen ayraç bulunamadı!\n") (exit)))
    (setq PnO (substr SaT 1 PsT)
          SaT (substr SaT (+ (strlen PnO) 2) (strlen SaT))
          PsT (vl-string-position SpR SaT)
          CoX (substr SaT 1 PsT)
          SaT (substr SaT (+ (strlen CoX) 2) (strlen SaT))
          PsT (vl-string-position SpR SaT)
          CoY (substr Sat 1 PsT)
          CoZ (substr SaT (+ (strlen CoY) 2) (strlen SaT))
          PnT (list (atof CoX) (atof CoY) (atof CoZ)))
    (entmake (list (cons 0 "TexT") (cons 10 PnT) (cons 1 PnO)
                   (cons 40 (getvar "TextSize")) (cons 50 0.0) (cons 72 0)
                   (cons 11 '(0.0 0.0 0.0)))))
  (close fL) (setvar "modemacro" "") (setq *error* nil)
  (command "undo" "e") (prin1)
)


Kolay gelsin.

21.12.2011 17:07    

doygun77
Şahin hocam ellerinize sağlık lispler cok güzel olmuş özellikle pct cok kullanışlı hale geldi. son gönderdiğiniz lisplere ufak ekler yapabilirmiyiz ? Hocam nktr ile kolon aplikasyon planını noktaladıktan sonra pct ile numaralandırdım pct de dikkat edilecek bir nokta var NOKTA NUMARALAMA SIRA KRİTERİNDE SIRASIZ ( N ) SEÇİLMESİ GEREKİYOR.

PCT de noktaları numaralayınca numara ile nokta arasında (nokta üzerine ve yazı üzerine tıklandığı zaman aynı değeri vermesi ) 42cm fark uzaklık cıkıyor bunu sıfırlayabilirmiyiz ?

PTCR yazı yüksekliğinin kaç olması istenebilirmi ? (2.5 olarak sdandart alıyor kullanılan ölcege göre cok büyük oluyor)
nokta ile yazı layer'lerinin farklı (0'dan ve birbirinden farklı) olabilirmi ?

NKTR yazı yüksekliği kaç olması ,koordinat üzerine nokta atılabilir (nokta üzerine ve yazı üzerine tıklandığı zaman aynı değeri vermesi )ve layerlerinin farklı olması?

Şahin hocam Yazılımdaki değişikler normal yazı yazmak kadar kolay olamadığı için göstermiş oldugunuz ilği için tekrar tekrar teşekkür ederim.

21.12.2011 19:14    

ProhibiT
Burada paylaştığımız fonksiyonları genel yazmak zorudayız. Kullanıcı mikrondan deniz miline, hatta fersah'a kadar birimlerle çalışır, bunu da yazar bilemez. Her kullanıcı için fonksiyonu özelleştirmek te mümkün olmadığına göre. Kendi adıma, yazdığım tüm fonksiyonlarda, yazı yüksekliği kullanıcıdan sorulmuyorsa, Ya DimTxT*DimScaLe alınmıştır, ya da doğrudan TextSize değişkeni kullanılmıştır. Bu kavramı pek çok defalar anlattım. Kullanıcı araştırıcı ve uyanık olmalı. pTcR fonksiyonu doğrudan TextSize değişkenini kullanıyor. Yani çizimde son yazılan Text yüksekliği alınıyor. Kod içinde gerekli adaptasyonu yapamıyorsanız, uygun gördüğünüz yükseklikte bir yazı yazın, sonra yazdığınız yazıyı silin. TextSize artık son yazdığınız yazı yüksekliğine set edilmiştir ve fonksiyon da bunu kullanacaktır.

PcT fonksiyonu, mevcut point ya da circle objelerine belli bir düzen içinde numaralar vererek, koordinatlarını tablo halinde çizim içine yerleştirmek amacıyla yazıldı. Bu nedenle de, nokta numarasının mevcut point ya da circle objesinin üzerine basmaması özellikle istenmişti. Ben de, ilgili noktadan, yazı yüksekliğinin kök 2 katı kadar 45 derece doğrultusunda uzağa yazdırdım. Noktanın tam üzerine yazdırma isteğinize benzer uyarlamaları yapmaya başlarsam, evin yolunu biraz zor bulurum.

Yazdığım fonksiyonlarda temel prensip ve kabulleri, kesin ve net ifadelerle yazıyorum. Bazı kullanıcılara anlamsız gelebilecek pek çok kavramın mutlaka bir sebebi, bir dayanağı vardır. Bu anlamda yazıları ve noktaları farklı Layer'larda oluşturmak için vakit ayırmam mümkün olmuyor doğrusu.

Burada bitmiş halini gördüğünüz bir fonksiyonu 25 sene + 25 dakikada yazıyorum. 25 seneyi buldum ortaya koydum da, o 25 dakikayı bir türlü bulamıyorum. İstekte bulunan arkadaşların insaf ile değerlendirip, yanlış anlamadan yazdıklarımı anlayacaklarını umuyorum.

Son yazılan mesajla doğrudan ilgisi olmasa da genel olarak bir konuyu tekrar altını çizerek hatırlatmadan geçemiyorum. Mesajlarınızı yazarken, soru sorarken veya bir şeyler anlatırken, kullandığınız ifade ve dil konusunda özenli olunuz. Kavramları ve sözcükleri doğru şekliyle doğru yerinde kullanmak zorundayız. Buna benzer şeyler yazdığım bir konuda, arkadaşımızın biri, "Hocam biz edebiyaçı mıyız?" diye cevap vermişti. Halbuki tam tersine düşünmek gerek. Edebiyatta yazılan ya da söyleneni herkesin kendi ufkuna göre anlaması hedeflenir. Hatta bir söyleyip dokuz anlaştırmak makbul bir sanattır. Teknik aktarımlarda ise, ne yazılıyor, ne söyleniyorsa, yalnız ve yalnız o anlaşılmalı, farklı anlamlara çağrışım bile yapmamalıdır.

Kolay gelsin.

22.12.2011 11:03    

cagrikara
lispi çalıştırdığımızda ilk olarak nokta ismini girsek. sonra kordinatları girsek x,y,z autocad üzerinde noktalarımızı atsa. Çok güzel olur..
Rica etsem böyle bir lisp oluşturabilirmiyiz ?

22.12.2011 11:20    

doygun77
Alıntı
cagrikara :
lispi çalıştırdığımızda ilk olarak nokta ismini girsek. sonra kordinatları girsek x,y,z autocad üzerinde noktalarımızı atsa. Çok güzel olur..
Rica etsem böyle bir lisp oluşturabilirmiyiz ?


Nedcad gibi nokta atmak istiyorsunuz galiba daha önce böyle bir lisp görmüştüm ama su an bulamıyorum . Başka bir yolu var
Excelde nokta dosyası oluşturup (kaydederken farklı kaydet METİN (SEKMEYLE AYRILMIŞ) seceneğini kullanın ) PTCR lispi ile autocad üzerine atın

doygun77 (22.12.2011 11:32 GMT)

23.12.2011 19:33    

ProhibiT


Linkleri görebilmek için ÜYE olmalısınız.

linkinde paylaşılan aLd fonskiyonu, Line objelerinin yanısıra Polyline, Lwpolyline, Spline, Circle ve Arc objelerini de işleyecek şekilde düzenlendi.

23.12.2011 20:16    

waytooraider
Lispi yükleyince ; error: no function definition: *
diyor
Zahmetleriniz emeğiniz karşısında sadece sonsuz saygılarımı sunabiliyorum.
Emeğinize aklınıza sağlık.

24.12.2011 03:36    

ProhibiT
Local Variables bölümünde bir * hatası olmuş, düzelttim, yeniden indirip kullanabilirsiniz...

24.12.2011 07:46    

waytooraider
Hocam diktorgen cizip 15 radiuslu fillet komutu kullandigimizda fonksiyonuda calistirdigimizda olculer degisken oluyor. Bu sorunda giderilirse cok super olcak
Saygilarimla Ustadim

24.12.2011 10:11    

ProhibiT
Kapalı Polyline, Lwpolyline ve Spline objelerinde fazladan bir point oluşturuyordu, Arc'larla beraber onu da düzelttim. Tekrar indirip kullanabilirsiniz...

24.12.2011 10:41    

waytooraider
Fantastik olmuş Şahin Hocam.
Büyülendim desem yeridir.
Saygılarımla.

waytooraider (24.12.2011 15:21 GMT)

26.12.2011 12:14    

atillaözel6666
lisp isteği:benim istediğim lisp, örneğin; mimari çizilmiş kolon köşelerini 1 kerede seçerek bütün kırık köşelere point atmak istiyorum.böyle bir lisp hazırlanabilirmi...?

line veya polylıne çizilmiş bütün kırıklara otomatik atılabilen bi lisp lazım...çünkü bu pointlerin koordinatlarını alıp totalle aplike edeceğim...tek tek point atmak zaman alıcı...

26.12.2011 13:32    

ProhibiT
Daha önce de aynı soruyu sormuştunuz. Sanıyorum forumu yeterince dikkatli takip etmiyorsunuz.

Linkleri görebilmek için ÜYE olmalısınız.

linkinde paylaşılan nKtL fonksiyonunu kullanarak istediğinizi yapabilirsiniz. Söz konusu yazımın başlangıç kısmını özellikle ve dikkatlice okuyunuz. Orada bahsedilen PcT fonksiyonunu da, sitemizin download bölümünden

Linkleri görebilmek için ÜYE olmalısınız.

linkini kullanarak indirebilirsiniz.

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