Copyright © 2004-2022 SQL: 0.932 saniye - Sorgu: 48 - Ortalama: 0.01942 saniye
31.10.2017 07:19
Myalem |
Selamlar yazdığım bir lispi paylaşıcam belki işinize yarar. Benim işlerimde bir doyada 20-30 antedli resim oluyor ve bazen arada bir çıktı almam gerekiyor hepsinden. Buda zahmetli bir iş bu yüzden bir lisp yazdım benim çok işime yarıyor belki sizede yarar o yüzden paylaşayım dedim.
;;*********************************************************************************** ;;############################ ################################ ;;&&&&&&&&&&&&&&&&&&&&&&&&&&&& PLOTHAZIR &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;;############################ ################################ ;;*********************************************************************************** ( Defun c:plothazir ( / os1 ols cl sag sol yuka asa mrk1 durm pnt1 pnt2 sec1 deg1 sec2 deg2 sec3 deg3 ustx usty altx alty txt tpn1 nkt1 nkt2 nkt3 noyy ) ;;.................................................................................... ;;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;;& Daha sonra çıktı almak için dataları kayıt eder. & ;;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;;.................................................................................... ( setq os1 ( getvar "osmode" ) ols ( getvar "dimscale" ) cl ( getvar "cecolor" ) ) ( setq sag 0 sol pi yuka ( / pi 2 ) asa ( / ( * pi 3 ) 2 ) ) ( setvar "osmode" 0 ) ( setq mrk1 ( getpoint "\nBir nokta işaretleyiniz...? " ) durm 1 ) ( setvar "osmode" 32 ) ( While ( setq pnt1 ( getpoint "\nÇerçevenin üst kısmı işaretleyiniz...........? " ) ) ( setq pnt2 ( getcorner pnt1 "\nÇerçevenin alt kısmını işaretleyiniz...? " ) ) ( setvar "osmode" 0 ) ( initget 3 "M m H h" ) ( setq sec1 ( getkword "\nÇıktı nasıl alınacak. <M> MONOCHROME <m> ..yada.. <H> H-02 <h> Birini seçiniz...? " ) ) ( if ( or ( = sec1 "M" ) ( = sec1 "m" ) ) ( setq deg1 "monochrome.ctb" ) ) ( if ( or ( = sec1 "H" ) ( = sec1 "h" ) ) ( setq deg1 "H-02.ctb" ) ) ;; BU BENİM YARATTIĞIM DOSYA. SİZİN VARSA YARATTIĞINIZ ONU GİRİN. ( initget 3 "A a B b" ) ( setq sec2 ( getkword "\nKağıt şekli ne olacak.<A> A4 <a> ..yada.. <B> A3 <b> Birini seçiniz...? " ) ) ( if ( or ( = sec2 "A" ) ( = sec2 "a" ) ) ( setq deg2 "A4" ) ) ( if ( or ( = sec2 "B" ) ( = sec2 "b" ) ) ( setq deg2 "A3" ) ) ( initget 3 "Y y D d" ) ( setq sec3 ( getkword "\nYazdırma şekli ne olacak. <Y> YATAY <y> ..yada.. <D> DİKEY <d> Birini seçiniz...? " ) ) ( if ( or ( = sec3 "Y" ) ( = sec3 "y" ) ) ( setq deg3 "Landscape" ) ) ( if ( or ( = sec3 "D" ) ( = sec3 "d" ) ) ( setq deg3 "Portrait" ) ) ( setq noyy ( getstring T "\nNotunuz varsa yazınız. Ornek Poz numarası gibi...? " ) ) ;;SADECE NOT AMAÇLI FONKSİYONA ETKİSİ YOK BU KISMIN. ( if ( or ( = "" noyy ) ( = nil noyy ) ) ( setq noyy "YOK" ) ) ( setq ustx ( rtos ( car pnt1 ) 2 4 ) usty ( rtos ( cadr pnt1 ) 2 4 ) ) ( setq altx ( rtos ( car pnt2 ) 2 4 ) alty ( rtos ( cadr pnt2 ) 2 4 ) ) ( setq txt ( strcat ustx "#" usty "#" altx "#" alty "#" deg1 "#" deg2 "#" deg3 "#" noyy "#" ) ) ( setq tpn1 ( list ( + ( car mrk1 ) ( * ols 1.0 ) ) ( + ( cadr mrk1 ) ( * ols 1.0 ) ) ) ) ( setq nkt1 ( polar mrk1 yuka ( * ols 5.0 ) ) ) ( setq nkt2 ( polar nkt1 sag ( * ols 175.0 ) ) ) ( setq nkt3 ( polar mrk1 sag ( * ols 175.0 ) ) ) ( setvar "cecolor" "232" ) ( command "text" tpn1 ( * ols 3.0 ) "0" txt "" ) ( setvar "cecolor" "240" ) ( if ( = durm 1 ) ( command "line" mrk1 nkt1 nkt2 nkt3 mrk1 "" ) ( command "line" mrk1 nkt1 nkt2 nkt3 "" ) ) ( setq mrk1 nkt1 durm 0 ) ( setvar "cecolor" cl ) ( setvar "osmode" 32 ) ) ) Bu lisple seçtiğiniz bir noktada yazı ile alt alta her çizim dosyasının gerekli olanları alt alta yazıyor. Bir sonraki vereceğim lispte bunları okuyacak. ;;&&&&&&&&&&&&&&&&&&&&&&&&&&&& YAZDIR &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;;############################ ################################ ;;*********************************************************************************** ( Defun c:yazdir ( / os1 obje n deger m durum ustx_d ustx_s usty_d usty_s altx_d altx_s alty_d alty_s stil_d stil_s kagt_d kagt_s drum_d drum_s ustx usty altx alty stil kagt drum pnt1 pnt2 ) ;;.................................................................................... ;;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;;& Kaydedilen dataları yazıcıdan çıkarır & ;;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;;.................................................................................... ( setq os1 ( getvar "osmode" ) ) ( setvar "osmode" 0 ) ( princ "Çıktı alınacak dataları seçiniz..." ) ( setq obje ( ssget ) n 0 ) ( Repeat ( sslength obje ) ( if ( and ( = "TEXT" ( cdr ( assoc 0 ( entget ( ssname obje n ) ) ) ) ) ( = 232 ( cdr ( assoc 62 ( entget ( ssname obje n ) ) ) ) ) ) ( progn ( setq deger ( cdr ( assoc 1 ( entget ( ssname obje n ) ) ) ) m 1 durum 1 basla 1 ) ( repeat ( strlen deger ) ( cond ( ( and ( = "#" ( substr deger m 1 ) ) ( = 1 durum ) ) ( setq ustx_d basla ustx_s ( - m basla ) basla ( + m 1 ) durum 2 ) ) ( ( and ( = "#" ( substr deger m 1 ) ) ( = 2 durum ) ) ( setq usty_d basla usty_s ( - m basla ) basla ( + m 1 ) durum 3 ) ) ( ( and ( = "#" ( substr deger m 1 ) ) ( = 3 durum ) ) ( setq altx_d basla altx_s ( - m basla ) basla ( + m 1 ) durum 4 ) ) ( ( and ( = "#" ( substr deger m 1 ) ) ( = 4 durum ) ) ( setq alty_d basla alty_s ( - m basla ) basla ( + m 1 ) durum 5 ) ) ( ( and ( = "#" ( substr deger m 1 ) ) ( = 5 durum ) ) ( setq stil_d basla stil_s ( - m basla ) basla ( + m 1 ) durum 6 ) ) ( ( and ( = "#" ( substr deger m 1 ) ) ( = 6 durum ) ) ( setq kagt_d basla kagt_s ( - m basla ) basla ( + m 1 ) durum 7 ) ) ( ( and ( = "#" ( substr deger m 1 ) ) ( = 7 durum ) ) ( setq drum_d basla drum_s ( - m basla ) basla ( + m 1 ) durum 8 ) ) ) ( setq m ( + m 1 ) ) ) ( setq ustx ( substr deger ustx_d ustx_s ) usty ( substr deger usty_d usty_s ) altx ( substr deger altx_d altx_s ) alty ( substr deger alty_d alty_s ) stil ( substr deger stil_d stil_s ) kagt ( substr deger kagt_d kagt_s ) drum ( substr deger drum_d drum_s ) ) ( setq pnt1 ( list ( atof ustx ) ( atof usty ) ) pnt2 ( list ( atof altx ) ( atof alty ) ) ) ( command "-plot" "y" "model" "WorkCentre 5330 PCL6" kagt "Millimeters" drum "no" "window" pnt1 pnt2 "fit" "Center" "yes" stil "yes" "" "n" "n" "y" ) ) ) ; sadece bu kısmı kendi ploterınıza göre ayarlıcaksınız... ( setq n ( + n 1 ) ) ) ( setvar "osmode" os1 ) ( princ ) ) İlk lispte girmiş olduğunuz yazıları seçerek direk plotera gönderiyorsunuz. 1-2 çıktı için pek ideal değil ama 20-30 çıktı söz konusu ise baya işe yarıyor. Umarım işinize yarar. Yada kendinize göre düzenleyin.
|
21.01.2021 21:57
hilalozturk |
MERHABA BU LİSPİ KULLANMAK İÇİN HANGİ KOMUTU VERİYORUZ.
|
alper0629 |
; error: Exception occurred: 0xC0000005 (Access Violation)
hatası veriyor. komut kısayolu:plothazir
|