5 Ağustos 2009 Çarşamba

4 Mayıs 2009 Pazartesi

Text leri Hizalayın

;;;hizala.lsp

;;;Seçilen text'leri yatay/düşey olarak aynı hizaya getirir.İlk seçilen text referans olarak alınır.


 

(defun c:hz ( / obje n i hizanok10 yazinok10 hizanok11 yazinok11 ename elist yon)

(princ "\nHizalanacak Yazıları Seçiniz :")

(setq obje (ssget '((0 . "TEXT"))))

(if obje

(progn

(setq n (sslength obje))

(setq i 0

hizanok10 (cdr (assoc 10 (entget (ssname obje 0))))

hizanok11 (cdr (assoc 11 (entget (ssname obje 0))))

)

(initget "X Y")

(setq yon (getkword "Hizalama Yönü ( X / Y ) <Y> ?"))

(command "undo" "begin")

(repeat n

(setq ename (ssname obje i)

elist (entget ename)

yazinok10 (cdr (assoc 10 elist))

yazinok11 (cdr (assoc 11 elist))

)

(if yon

(progn

(setq hizanok10 (list (car hizanok10) (cadr yazinok10))) ;;; x yönünde hizalama

(if yazinok11 (setq hizanok11 (list (car hizanok11) (cadr yazinok11))))

)

(progn

(setq hizanok10 (list (car yazinok10) (cadr hizanok10))) ;;; y yönünde hizalama

(if yazinok11 (setq hizanok11 (list (car yazinok11) (cadr hizanok11))))

)

);_if

(setq elist (subst (cons 10 hizanok10) (assoc 10 elist) elist))

(if yazinok11 (setq elist (subst (cons 11 hizanok11) (assoc 11 elist) elist)))

(entmod elist)

(setq i (+ i 1))

);repeat

(command "undo" "end")

(princ (strcat "\n" (itoa i) " TEXT hizalandı."))

(princ)

));_if & progn

);defun

(princ "\nSeçilen TEXT'leri aynı hizaya getirir (ilk seçilene göre). [HZ] komutu ile çalışır")

(princ "\n© 2000 dꮥå")

(princ)

NETCAD’ DE DAYALI POLİGON HESABI


 


 

İlk olarak nirengi noktalarımızı netcad ortamına hesap/nokta editöründen giriyoruz. Örneğin N11, N7, N5, N3 nirengi noktalarını kullanıyoruz.


 


 

Burada semt alınan N11, başlangıç N7,son N5, semt kapanan N3 noktalarıdır.

Nirengi noktalarımızı netcad ortamına girdikten sonra hesap/netveri/netveri koordinat editörüne tıklıyoruz karşımıza gelen ekrana nokta dosyasının adını giriyoruz örneğin: (jdf) girin ve aç'ı tıklayın. Karşımıza koordinat girişi ekranı gelecektir. Burada sağtuş yapıp grafik işlemler/ çizimden yükle seçeneği tıklanır . bu şekilde semt alınan, başangıç, son,semt kapanan noktalarımızı tanımlamış oluruz. F9 sakla ve çık.


 

Eğer poligon rasatı kutupsal olarak yapılışsa veri yüklenip karne yazdırılır. Yani totalstation dan veri bilgisayara aktarılmışsa verinin isminide jdf yapıp saklanmalıdır. Eğer veriler totalstation dan manuel olarak yazılmışsa veriler elle ekrana girilir. Yapacağımız işlem

Hesap/netveri/yatay-kenar-düşeyaçı(hangi ölçüm yapılmışa o seçilir) karşımıza gelen ekranda yde formatındaki poligon rasat dosyamız tıklanır (dosya adı, nokta dosyası adıyla aynı olmalı)

Veya manuel olarak değerler girilir.    


 


 

Değerler girildikten sonra sağtuş/karne yaz tıklanır ve (jdf) adında karne dosyası sakla ve çık

Şimdi ise Hesap/poligon hesabı/karne editörü tıklanır. Karşımıza gelen ekranda dosya türü karne dosyaları seçilir ve JDF.NCK karne dosyası açılır.karşımıza karneler menüsü gelir.


 


 

Karneler menüsünde gauss karne içinde sağ tuş/deniz yüzeyini hesapla/hesapta kullanılan kenar seçilir(eğik veya yatay) tamam. Daha sonra tekrar sağ tuş/gauss kruger düzlemini hesapla gelen menüde kenar olarak deniz yüzeyi…. İşaretlenir. Böylecene kenarlarımızı deniz ve gauss kruger yüzeyine indirgemiş olduk.F9 sakla ve çık. Artık dosyalarımızı oluşturduktan sonra poligon hesabına geçebiliriz.

Hesap/poligon hesabı/poligon hesabı tıklanır.gelen ekranda dosya türü karne seçilir ve karne dosyası JDF.NCK açılır. Gelen menüde F3 ekle basılır. Karşımıza güzergah menüsü gelir.


 

Güzergah menüsünde şehir adı , güz. No, semt alınan,başlangıç, son ve semt kapanan değerlri girilir. Tanımla denir ve hesap yaptırılır. Yaz denir ve poligon hesabı çizelgesi karşımıza gelir. Kanava çizimi ise hesap/poligon hesabı/karne editörü/karne dosyası seçilir/ekrana gelen karneler menüsünde sağ tuş/kanava çiz seçilerek yapılır.

programla biraz daha uğraşırsanız istediklerinizi kolaylıkla elde edebilirsiniz.


 


 

14 Nisan 2009 Salı

seçilen nesnenin z sini 0 yapan lisp

(defun sayac (gc_num gc_max)
(prompt
(strcat "\r%"
(rtos(*(/(float(1+ gc_num))(float gc_max))100)2 0)

) ;strcat
) ;prompt
) ;defun

(defun c:sif ()
(princ "\nSıfırlanacak Objeleri Seçiniz :")
(setq obje (ssget))
; (setq obje (ssget "x" '((0 . "LINE"))))
(setq n (sslength obje))
(setq i 0)
(princ "\nİşlem yapıyorum, lütfen bekleyiniz...\n")
(repeat n
(setq ename (ssname obje i))
(setq elist (entget ename))
(setq bas (cdr (assoc 10 elist))
son (cdr (assoc 11 elist))
basx (car bas)
basy (cadr bas)
sonx (car son)
sony (cadr son)
)
(setq bas (list basx basy 0.0) son (list sonx sony 0.0))
(setq elist (subst (cons 10 bas) (assoc 10 elist) elist))
(setq elist (subst (cons 11 son) (assoc 11 elist) elist))

(entmod elist)
(setq i (+ i 1))
(sayac i n)
);repeat
(princ (strcat "\n" (itoa i) " objenin Z'leri sıfırlandı."))
(princ)
);defun
(grtext -1 "İYİ ÇALIŞMALAR !!")

11 Nisan 2009 Cumartesi

A) ALAN HESABI (Kapalı Bir Alanın Hesabı)

10 PRINT “ALAN”

20 INPUT “N=”;P;”EKSENE MESAFE 1=”;A;”NOKTA KOTU1=”;B

30 N=A:M=B:T=0

40 FOR I= 2 TO P

50 PRINT .EKSENE MESAFE ”;I;”=”;:INPUT E

60 PRINT .NOKTA KOTU ”;I;

70 T=(B-F) * (A+E)+T:B=F:A=E

80 NEXT I

90 T=(B-M)*(A+N)+T

100 PRINT “ALAN =”;ROUND((T/2),-3);”m2”

B)KESİŞME PROGRAMI (Şevin Arazi ile kesiştiği Nokta)

10 PRINT “KESİŞME”

20 INPUT “EKSENE MESAFE 1=”;A;”NOKTA KOTU 1=”;B

22 INPUT “EKSENE MESAFE 2=”;C;”NOKTA KOTU 2=”

30 INPUT “EKSENE MESAFE 3=”;E;”NOKTA KOTU 3=”;F;”GABARİ EĞM(m)”;M

40 N=(D-B)/(C-A)

50 L=(N*A-M*E+F-B)/(N-M)

60 H=B+N*(L-A)

70 SET F2:PRINT “EKSENE MESAFE 4=”;L;”NOKTA KOTU 4=”;H;

80 SE F4:PRINT “T.Z.EĞİMİ=”;N

90 GOTO 20

C) TAKEOMETRE PROGRAMI(Bakılan Noktanın Kot ve Mesafesi)

10 PRINT “TAKEOMETRE PROGRAMI”

20 MODE 6

30 INPUT “NOKTA KOTU=”;J;”ALET YÜK.=”;Q

40 K=J+Q

50 INPUT “ALT KIL=”;A;”ORTA KIL=”;B;”ORTA KIL=”;C

60 D=ABS(2*B-C-A)

70 INPUT “DÜŞEY AÇI=”;Z

80 E=C-A:S=E*(SIN Z)*(SIN Z)

90 SET F2

100 H=E/2*SIN(2*Z)-B/100+K

110 PRINT “MESAFE=”;S;”MT”;” “;”NOKTA KOTU=”;H

120 GOTO 50



D)YATAY KURB HESABI (Kurb Elemanları Hesabı)

10 PRINT “ YATAY KURB HESABI”

20 INPUT “SAPMA AÇISI =”;A;”YARIÇAP=”;B;”To KM= “;C

30 D=A*(PI)*B/200:T=B*TAN(A/2)

40 K=B*((1/(COS(A/2))-1):M=C+D

50 SET F2

60 PRINT “T=”;T;” D=”;” BIS=”;K;” TF KM=”;M

70 GOTO 20

E)DÜŞEY KURB HESABI(Kot Hesabı)

5 PRINT “DÜŞEY KURB”

6 INPUT “1.KM=”;K1;”TEPE KM=”;B;”2.KM=”;K3

30 INPUT “TEPE KOTU =”;A;”L=”;C

40 INPUT “M1=”;U;”M2=”;O

50 T=A-U*C/2:R=A-C/2

60 E=B-C/2:F=B+C/2

70 PRINT “T1 KM=”;E

80 PRINT “T2 KM=”;F

90 INPUT “KM=”;S

100 N=S-E

105 G=U-O

110 H=U*N-G/(2*C)*N^2

120 K=T+H

121 IF S

122 IF S>F;K=A+(S-B)*O

140 PRINT “KOT=”;K

150 GOTO 90

F)SEMT AÇISI (Semt-Kenar Uzunluğu Hesabı)

10 PRINT “SEMT-KENAR HESABI”:MODE 6

15 PRINT “DURULAN NOKTA”

20 INPUT “Y=”;A;”XD=”;B

22 PRINT”BAKILAN NOKTA”

25 INPUT “YB=”;C;”XB=”

30 E=C-A:F=D-B

40 M=E/F:K=SQR(E^2+F^2):M= ATN M

50 IF F<0>0 THEN 100

70 IF E<0 m="M+200:GOTO" m="M+400" m="M" semt="”;ROUND(M,-5);”KENAR=" ilkx="”;B;”ilkY=" semt="”;U" isi="”;Z;”KENAR=" u="U+Z" y="SIN" x="COS" a="A+Y:B=" x="”;B;”" y="”;A" si="”;B;”Bakılan" i="”;A" si="”;”Durulan" i="”;C" y="C-D" x="C-A" k="Y/X" z=" ATN" z="200" z="400+ATN" semt="”;Z" i="”;E" mesafe="”;S" f="Z+E" f="F-400">200 THEN 200

170 Q=F+200

180 M=S*SIN Q

190 N=S*COS Q

200 W=F-200

210 M=S*SIN W

220 N=S*COS W

225 SET F4

230 PRINT “C NOKTASININ Y=”;M+D

240 PRINT “C NOKTASININ X=”;N+C

250 GOTO 120

CASIO FX-3600-3800 İle Topografya Programları



_ İŞARETLERİ TUŞLARI BİRİBİRİNDEN AYIRMAK İÇİNDİR.

A) CROSS (ALAN HESABI)

yazım

MODE _0_ P1_ INV_ PCL_ MODE_ 7_ 3_ ENT_KİN_3_ENT_KİN_4_X_KOUT_1_

-_KOUT_3_X_KOUT_2_=_÷_2_INV_M-_KOUT_3_KİN_1_KOUT_4_KİN_2_INV_

RTN_MODE_.

Casio 3600 Pv 'de CROSS İÇİN AŞAĞIDAKİ ŞEKİLDE YAZINIZ.

MODE _EXP_SHFT_ PCL_P1_ENT_KİN_3_ENT_KİN_4_X_KOUT_1_

-_KOUT_3_X_KOUT_2_=_÷_2_INV_M-_KOUT_3_KİN_1_KOUT_4_KİN_2_INV_

RTN_MODE_ENT



işlem

Nokta No
Mesafe x
Kot y

1
10
20

2
30
40

3
40
30

4
10
20



Herhangi bir Hesaba Başlamadan önce INV_KAC ve INV_Min



INV_KAC_INV_MİN_10_RUN_ 20_ RUN_30_ RUN_40_RUN_40_RUN_30_ RUN_

10_RUN_20_RUN



SONUC MR ‘DEN İSTENECEK. SONUÇ=200 M2



B)ŞEV KESİŞME NOKTASININ BULUNMASI
Mod_0_P1

ENT_1_-_Kout_3_=_÷_(_ENT_2_-_Kout_4_=_Kin_6_+/-_Kin_X_4_Kout_X_5_Kout_

2_-_Kout_1_+_Kout_3_=_Kin_+_4_Kout_5_-_Kout_6_=_Kin_÷_4_Kout_4_INV_HLT

Kout_1_+_Kout_5_X_(_Kout_4_-_Kout_2_=_Mod_.



Y2/X2.................Y/X..................Y3/X3

.

.

. Y1/X1





Veri Sırası: Y1 Kin 1,X1 Kin2, Y2 Kin3,X2 K4, n Kin5 Kaydedilir.

İşlem: P1_Y3_RUN_X3_RUN_= X i verir. Tekrar RUN = Y ’yi verir



C) İKİ NOKTA YARDIMIYLA KOORDİNATI BİLİNEN
3.NOKTANIN AÇI ve MESAFESİ

Programı yazmaya başlamadan önce Kin1 600,Kin2 700,Kin4 800,Kin5 900 girin.

Mode_0_P2_ENT_Kin_3_ENT_Kin_6_Kout_5_-Kout_2_=_INV_+_[_Kout_4_

-_Kout_1_]_=_INV_ x –y _INV_Min_Kout_6_-Kout_2_=_INV_+_[_Kout_3_-

Kout_1]_=_INV_ENT_INV_ x-y _ MR_=_INV_RTN_MODE_.

Programı Çalıştırırken:

Önce Durulan Nokta Y’si Kin1 , X ‘i Kin2

Bakılan Noktanın Y’si Kin4 , X ‘i Kin5