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.

25.01.2021 08:47    

alper0629
; error: Exception occurred: 0xC0000005 (Access Violation)
hatası veriyor.

komut kısayolu:plothazir

> 1 <
Copyright © 2004-2022 SQL: 0.932 saniye - Sorgu: 48 - Ortalama: 0.01942 saniye