15.02.2015 11:10    

ongino
arkadaslar mevcut bir lisp i modifiye etmem lazim,lisp yazma konusunda bilgisi olan biri yardimci olabilir mi? isp in adi kls, secilen noktalarin koordinatlarini numaralandirarak tablo yapiyor, numaralandirma 1,2,3,4 diye gidiyor, ben bunun onune bir harf koymak istiyorum,mesela N1,N2 ,N3 diye yazmasi icin:
(defun nokkntr ()
(if (= nok_kt nil)
(alert "\nPointstyle ayarýnýzý kontrol etmeyi unutmayýn:"))
(setq nok_kt t))

(defun c:kls ()
(nokkntr)
(setvar "modemacro" "Arcme Design")
(setvar "cmdecho" 0)
(setq kls_basno (getint "\nBaþlangýç numarasý:"))
(if (= kls_basno nil)
(progn
)
(progn
(setq kls_yyybsno kls_basno)
(setq kls_os (getvar "osmode"))
(if (= kls_yyuk nil)
(setq kls_yyuk 10))
(setq kls_yy (getreal (strcat "\nYazý Yüksekliði :< " (rtos kls_yyuk 2 1) " >:")))
(if (= kls_yy nil)
(setq kls_yy kls_yyuk))
(setq kls_yyuk kls_yy)
(setq kls_nil nil)
(setq kls_dosyaac (open "C:\windows\kls.txt" "w"))
(setq kls_noksay 0)
(setq kls_yazi_ara (tblsearch "style" "kls_yazi"))

(if (= kls_yazi_ara nil)
(progn
(command "style" "kls_yazi" "arial.ttf" "0""""""""")
))
(setq kls_yazi_ara_yuk (cdr (assoc 40 kls_yazi_ara)))
(if (/= kls_yazi_ara_yuk 0.0)
;(setq kls_yazi_ara (subst (cons 40 0)(assoc 40 kls_yazi_ara) kls_yazi_ara))
; (entmod kls_yazi_ara)
(command "style" "kls_yazi" "" "0""""""""")
)
(while (= kls_nil nil)
(setq kls_nok (getpoint "\nNoktayý Gösterin:"))
(if (/= kls_nok nil)
(progn
(setq kls_nokx (car kls_nok)
kls_noky (cadr kls_nok))

(setq kls_yyerx (+ kls_nokx (/ kls_yyuk 2.0))
kls_yyer (list kls_yyerx kls_noky))
(setvar "osmode" 0)
(command "point" kls_nok)
(command "text" "j" "ml" kls_yyer kls_yyuk "0" kls_basno)
(write-line (rtos kls_nokx) kls_dosyaac)
(write-line (rtos kls_noky) kls_dosyaac)
(setq kls_noksay (+ kls_noksay 1))
(setq kls_basno (+ kls_basno 1))
(setq kls_nil nil)
(setvar "osmode" kls_os)
)
(progn
(close kls_dosyaac)
(setq kls_1 nil)
(while (= kls_1 nil)
(setq kls_tablonok (getpoint "\nTablo için referans nokta gösterin:"))
(if (= kls_tablonok nil)
(progn
(setq kls_1 nil))
(progn
(setq kls_tablonokx (car kls_tablonok)
kls_tablonoky (cadr kls_tablonok))
(setvar "osmode" 0)
(command "line" kls_tablonok (strcat "@" (rtos (* 35 kls_yyuk))"<0")
(strcat "@" (rtos (* (* kls_yyuk 2.0) (+ kls_noksay 1))) "<270")
(strcat "@" (rtos (* 35 kls_yyuk))"<180") "c")
(setq kls_tab1x (+ kls_tablonokx (* kls_yyuk 3.0))
kls_tab1 (list kls_tab1x kls_tablonoky)
kls_tab2x (+ kls_tablonokx (* kls_yyuk 19.0))
kls_tab2 (list kls_tab2x kls_tablonoky)
)
(command "line" kls_tab1 (strcat "@" (rtos (* (* kls_yyuk 2.0) (+ kls_noksay 1))) "<270") "")
(command "line" kls_tab2 (strcat "@" (rtos (* (* kls_yyuk 2.0) (+ kls_noksay 1))) "<270") "")

(setq kls_tab3 kls_tablonok)
(repeat kls_noksay
(setq kls_tab3x (car kls_tab3)
kls_tab3y (- (cadr kls_tab3)(* kls_yyuk 2.0))
kls_tab3 (list kls_tab3x kls_tab3y))
(command "line" kls_tab3 (strcat "@" (rtos (* 35 kls_yyuk))"<0") ""))
(setq kls_yaz1 kls_tablonok)
(setq kls_yaz1x (+ (car kls_yaz1)(* 1.5 kls_yyuk))
kls_yaz1y (- (cadr kls_yaz1)(* 3 kls_yyuk))
kls_yaz1 (list kls_yaz1x kls_yaz1y))
(setq kls_yty kls_yyybsno)
(repeat kls_noksay
(command "text" "j" "mc" kls_yaz1 kls_yyuk "0" kls_yty)
(setq kls_yaz1y (- (cadr kls_yaz1) (* 2 kls_yyuk))
kls_yaz1 (list (car kls_yaz1)kls_yaz1y))
(setq kls_yty (+ kls_yty 1)))
(setq kls_x_yaz kls_tablonok)
(setq kls_x_yazx (+ (car kls_tablonok)(* 11 kls_yyuk))
kls_x_yazy (- (cadr kls_tablonok)(* 3 kls_yyuk))
kls_x_yaz (list kls_x_yazx kls_x_yazy))
(setq kls_y_yazx (+ (car kls_tablonok)(* 27 kls_yyuk))
kls_y_yazy (- (cadr kls_tablonok)(* 3 kls_yyuk))
kls_y_yaz (list kls_y_yazx kls_y_yazy))
(setq kls_xx_yazx (+ (car kls_tablonok)(* 11 kls_yyuk))
kls_xx_yazy (- (cadr kls_tablonok) kls_yyuk)
kls_xx_yaz (list kls_xx_yazx kls_xx_yazy))
(setq kls_yy_yazx (+ (car kls_tablonok)(* 27 kls_yyuk))
kls_yy_yazy (- (cadr kls_tablonok)kls_yyuk)
kls_yy_yaz (list kls_yy_yazx kls_yy_yazy))
(command "text" "j" "mc" kls_xx_yaz kls_yyuk "0" "X")
(command "text" "j" "mc" kls_yy_yaz kls_yyuk "0" "Y")
(setq kls_oku_dac (open "c:\windows\kls.txt" "r"))
(repeat (* kls_noksay 2)
(setq kls_oku_x (read-line kls_oku_dac))
(command "text" "j" "mc" kls_x_yaz kls_yyuk "0" kls_oku_x)
(setq kls_oku_y (read-line kls_oku_dac))
(command "text" "j" "mc" kls_y_yaz kls_yyuk "0" kls_oku_y)
(setq kls_x_yazy (- (cadr kls_x_yaz) (* 2 kls_yyuk))
kls_x_yaz (list kls_x_yazx kls_x_yazy))
(setq kls_y_yazy (- (cadr kls_y_yaz) (* 2 kls_yyuk))
kls_y_yaz (list kls_y_yazx kls_y_yazy))
)))
(setq kls_1 t)(setq kls_nil t)
))))))
(setvar "osmode" kls_os)
(close kls_oku_dac)
(princ))

15.02.2015 11:44    

alumina
Kod:

(defun nokkntr ()
(if (= nok_kt nil)
(alert "\nPointstyle ayarynyzy kontrol etmeyi unutmayyn:"))
(setq nok_kt t))



(defun c:kls ()
(nokkntr)
(setvar "modemacro" "Arcme Design")
(setvar "cmdecho" 0)
(setq kls_baskr (getstring "\nBa?langyç karakter:"))
(if (= kls_baskr nil)
(setq kls_baskr ""))
(setq kls_basno (getint "\nBa?langyç numarasy:"))
(if (= kls_basno nil)
(progn
)
(progn
(setq kls_yyybsno kls_basno)
(setq kls_os (getvar "osmode"))
(if (= kls_yyuk nil)
(setq kls_yyuk 10))
(setq kls_yy (getreal (strcat "\nYazy Yüksekli?i :< " (rtos kls_yyuk 2 1) " >:")))
(if (= kls_yy nil)
(setq kls_yy kls_yyuk))
(setq kls_yyuk kls_yy)
(setq kls_nil nil)
(setq kls_dosyaac (open "C:\windows\kls.txt" "w"))
(setq kls_noksay 0)
(setq kls_yazi_ara (tblsearch "style" "kls_yazi"))

(if (= kls_yazi_ara nil)
(progn
(command "style" "kls_yazi" "arial.ttf" "0""""""""")
))
(setq kls_yazi_ara_yuk (cdr (assoc 40 kls_yazi_ara)))
(if (/= kls_yazi_ara_yuk 0.0)
;(setq kls_yazi_ara (subst (cons 40 0)(assoc 40 kls_yazi_ara) kls_yazi_ara))
; (entmod kls_yazi_ara)
(command "style" "kls_yazi" "" "0""""""""")
)
(while (= kls_nil nil)
(setq kls_nok (getpoint "\nNoktayy Gösterin:"))
(if (/= kls_nok nil)
(progn
(setq kls_nokx (car kls_nok)
kls_noky (cadr kls_nok))

(setq kls_yyerx (+ kls_nokx (/ kls_yyuk 2.0))
kls_yyer (list kls_yyerx kls_noky))
(setvar "osmode" 0)
(command "point" kls_nok)
(command "text" "j" "ml" kls_yyer kls_yyuk "0" (strcat kls_baskr (rtos kls_basno 2)))
(write-line (rtos kls_nokx) kls_dosyaac)
(write-line (rtos kls_noky) kls_dosyaac)
(setq kls_noksay (+ kls_noksay 1))
(setq kls_basno (+ kls_basno 1))
(setq kls_nil nil)
(setvar "osmode" kls_os)
)
(progn
(close kls_dosyaac)
(setq kls_1 nil)
(while (= kls_1 nil)
(setq kls_tablonok (getpoint "\nTablo için referans nokta gösterin:"))
(if (= kls_tablonok nil)
(progn
(setq kls_1 nil))
(progn
(setq kls_tablonokx (car kls_tablonok)
kls_tablonoky (cadr kls_tablonok))
(setvar "osmode" 0)
(command "line" kls_tablonok (strcat "@" (rtos (* 35 kls_yyuk))"<0")
(strcat "@" (rtos (* (* kls_yyuk 2.0) (+ kls_noksay 1))) "<270")
(strcat "@" (rtos (* 35 kls_yyuk))"<180") "c")
(setq kls_tab1x (+ kls_tablonokx (* kls_yyuk 3.0))
kls_tab1 (list kls_tab1x kls_tablonoky)
kls_tab2x (+ kls_tablonokx (* kls_yyuk 19.0))
kls_tab2 (list kls_tab2x kls_tablonoky)
)
(command "line" kls_tab1 (strcat "@" (rtos (* (* kls_yyuk 2.0) (+ kls_noksay 1))) "<270") "")
(command "line" kls_tab2 (strcat "@" (rtos (* (* kls_yyuk 2.0) (+ kls_noksay 1))) "<270") "")

(setq kls_tab3 kls_tablonok)
(repeat kls_noksay
(setq kls_tab3x (car kls_tab3)
kls_tab3y (- (cadr kls_tab3)(* kls_yyuk 2.0))
kls_tab3 (list kls_tab3x kls_tab3y))
(command "line" kls_tab3 (strcat "@" (rtos (* 35 kls_yyuk))"<0") ""))
(setq kls_yaz1 kls_tablonok)
(setq kls_yaz1x (+ (car kls_yaz1)(* 1.5 kls_yyuk))
kls_yaz1y (- (cadr kls_yaz1)(* 3 kls_yyuk))
kls_yaz1 (list kls_yaz1x kls_yaz1y))
(setq kls_yty kls_yyybsno)
(repeat kls_noksay
(command "text" "j" "mc" kls_yaz1 kls_yyuk "0" kls_yty)
(setq kls_yaz1y (- (cadr kls_yaz1) (* 2 kls_yyuk))
kls_yaz1 (list (car kls_yaz1)kls_yaz1y))
(setq kls_yty (+ kls_yty 1)))
(setq kls_x_yaz kls_tablonok)
(setq kls_x_yazx (+ (car kls_tablonok)(* 11 kls_yyuk))
kls_x_yazy (- (cadr kls_tablonok)(* 3 kls_yyuk))
kls_x_yaz (list kls_x_yazx kls_x_yazy))
(setq kls_y_yazx (+ (car kls_tablonok)(* 27 kls_yyuk))
kls_y_yazy (- (cadr kls_tablonok)(* 3 kls_yyuk))
kls_y_yaz (list kls_y_yazx kls_y_yazy))
(setq kls_xx_yazx (+ (car kls_tablonok)(* 11 kls_yyuk))
kls_xx_yazy (- (cadr kls_tablonok) kls_yyuk)
kls_xx_yaz (list kls_xx_yazx kls_xx_yazy))
(setq kls_yy_yazx (+ (car kls_tablonok)(* 27 kls_yyuk))
kls_yy_yazy (- (cadr kls_tablonok)kls_yyuk)
kls_yy_yaz (list kls_yy_yazx kls_yy_yazy))
(command "text" "j" "mc" kls_xx_yaz kls_yyuk "0" "X")
(command "text" "j" "mc" kls_yy_yaz kls_yyuk "0" "Y")
(setq kls_oku_dac (open "c:\windows\kls.txt" "r"))
(repeat (* kls_noksay 2)
(setq kls_oku_x (read-line kls_oku_dac))
(command "text" "j" "mc" kls_x_yaz kls_yyuk "0" kls_oku_x)
(setq kls_oku_y (read-line kls_oku_dac))
(command "text" "j" "mc" kls_y_yaz kls_yyuk "0" kls_oku_y)
(setq kls_x_yazy (- (cadr kls_x_yaz) (* 2 kls_yyuk))
kls_x_yaz (list kls_x_yazx kls_x_yazy))
(setq kls_y_yazy (- (cadr kls_y_yaz) (* 2 kls_yyuk))
kls_y_yaz (list kls_y_yazx kls_y_yazy))
)))
(setq kls_1 t)(setq kls_nil t)
))))))
(setvar "osmode" kls_os)
(close kls_oku_dac)
(princ))

15.02.2015 17:41    

ongino
tesekkurler tam istedigim gibi olmus , ne yazikki dusundugum sey olmadi, autocad de noktalari hazirlayip dfx olarak kaydediyorum, sonra leica gsi programi ile bu koordinatlari leica gsi formatina donusturuyorum ,bu donusumde noktalar gene 1,2,3,4 diye geldi , beklentim n1,n2 , n3 seklinde gelmesi idi

110001+00000001 81..10+01986378 82..10+01539636 83..10+00000000
110002+00000002 81..10+02001463 82..10+01539284 83..10+00000000
110003+00000003 81..10+02013980 82..10+01535762 83..10+00000000
110004+00000004 81..10+02023853 82..10+01546241 83..10+00000000
110005+00000005 81..10+02031522 82..10+01539989 83..10+00000000
110006+00000006 81..10+02031257 82..10+01535762 83..10+00000000
110007+00000007 81..10+02025351 82..10+01531095 83..10+00000000
110008+00000008 81..10+02024029 82..10+01528541 83..10+00000000
110009+00000009 81..10+02019181 82..10+01527661 83..10+00000000
110010+00000010 81..10+02018211 82..10+01527661 83..10+00000000

15.02.2015 17:44    

alumina
siz tam olarak ne yaptığınızı anlatır mısınız?

15.02.2015 17:48    

ongino
bir projenin aplikasyonun koordinatlarini bu sekilde hazirlayip, leica total station a koymak istiyorum, 1,2,3,4 diye koyarsam ortalik cok karisacak ama n1 ,n2,n3 olarak koyarsam sorun olmayacak

15.02.2015 17:50    

ongino
alette yaklasik olarak 10 tane farkli is ve buu islere ait station var,bu yuzden cok karisiyor

15.02.2015 17:56    

alumina
Sıradan gidelim.
1- yukardaki lisp kodu "C:\Windows" altina kls.txt isimli dosya acip bu dosyanin içine seçtiğiniz nokta koordinatlarini alt alta yazıyor. siz bu kls.txt dosyasını mı dxf e çeviriyorsunuz? yoksa bu dosya bir isinize yaramıyor mu?
2- işaretlediğiniz noktaların yanına n1 n2 n3.... yazarak işaretleme yapıp sonra bu autocad dosyasını mı dxf e çevirip leica gsi e atıyor sunuz?
3- işaretleme sonucunda bir tablo çıkıyor. bu tablo bir isinize yarıyor mu?

özetle;
sizin dxf e cevirdiginiz dosya kls.txt mi? yoksa isretleme yaptığınız autocad dosyası mı?

15.02.2015 18:04    

ongino
autocad de kls yi calistirip , noktalarimi seciyorum ve tabloyu olusturuyorum,daha sonra bu noktalari kilitleyip tum cizimi siliyorum,sadece sectigim noktalar kaliyor,bunuda farkli kaydet diyerek dxfdosyasi olarak kaydediyorum,leica gsi denen(linkini asagida verecegim) bir brogramla bu dxf dosyasini acip gsi dosyasina donusturuyorum



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



ustte bulunan tab da :cevir -dxf-gsi

15.02.2015 18:14    

alumina
son kez anlamak için sansımı deniyorum.
1- sizin kls dediğiniz dosya kls.lsp yani lisp dosyasının adı. benim size sorduğum sey seçtiğiniz nokta koordinatları c:/windows/ altına kls.txt dosyası olarak kaydediliyor. bu dosya isinize yarıyor mu?
2- lispi çalıştırıp ornegin 3 tane nokta seçtiğinizde sırasıyla n1 n2 n3 yazdıktan sonra cizim üzerinde bir tablo olusturuyor (gerçi oluşturuyor ama koordinatları yazamıyor) bu tablu bir isinize yarıyor mu?
3- bu donuşumun neresindeki 1 ve 2 nin yerine n1 ve n2 yazmalı?

110001+00000001 81..10+01986378 82..10+01539636 83..10+00000000
110002+00000002 81..10+02001463 82..10+01539284 83..10+00000000

15.02.2015 18:28    

ongino
kls txt i kullanmiyorum, 110001+000000n1

15.02.2015 18:39    

alumina
ok.
o halde c:/windows/ altına oluşturulan kls.txt dosyasına gerek yok.
peki simdi kodu çalıştırın ve sırasıyla 3 tane nokta isretleyerek n1 n2 n3 yazılmasını sağlayın. 3. noktadan sonra cizim üzerine bir tablo oluşturmak için tekrar bir nokta soracak. noktayı işaretleyin ve tablo oluşsun. bu tablo bir isine yarıyor mu?

15.02.2015 18:42    

ongino
hayir tabloyuda siliyorum sadece noktalar ve yaninda ki numaralandirmalar kaliyor ve oylece kaydediyorum dxf olarak

15.02.2015 19:04    

alumina
ok. yalnız siz bu dxf dosyasını leica gsi ye attığınızda leica gsi sırasıyla çizimdeki nokta koordinatlarını okuyor. yani sizin ilk işaretlediğiniz noktayı 1 olarak alıyor sonra 2. işaretlediğinizi 2...... vs diye devam ediyor. noktanın adının ne olduğuna bakmıyor. eger leica gsi programı layer i tanıyorsa o zaman noktaları ve nokta isimlerini ayrı bir layerde yazdırırız ve istediğiniz sey olur.

15.02.2015 20:10    

ongino
evet haklisiniz ,nokta isimlerine bakmiyor anlasilan,layer tanidigini zannetmiyorum, excel de degistirmeyi deneyecegim artik, ilginiz icin cok tesekkurler

15.02.2015 21:28    

alpayelmas


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



linkteki dosya ıle bır dene istersen bizim leica da kullanmaları için arkadaslarıma yazdıgım bır lisp vlx uzantılı ama lsp ile yukleme seklı aynı komut ncn

16.02.2015 22:07    

ongino
tam aradgim sey,cok tesekkur ederim

07.04.2023 10:07    

fbzkara
iyi günler kls lipsini autocad yükledim noktaları oluşturmada herhangi birsorun yaşamıyorum ancak tabloyu oluşturmuyor. neden olabilir acaba

10.04.2023 06:19    

ehya
Arkadaşlar bu KLS lispi çooook eskiden kodlanmış bir lisp. Tabi o zamanlar kod konusunda da acemilikler vardı. Güncelleyeyim diyeceğim ama şahin hocamın (Prohibit) bu konuda daha gelişmiş bir lispi sitede mevcut. Bunu kullanmanızı tavsiye ederim.

> 1 <
Copyright © 2004-2022 SQL: 1.798 saniye - Sorgu: 95 - Ortalama: 0.01893 saniye