INDICE
Pr i mer ospasosconAut oLI SP.......................................................3 Lasvar i abl esenAut oLI SP.............................................................8 Oper aci onesmat emá mát i casbási cas..............................................10 Sol i ci t arnúmer osalusuar i o........................................................13 Cr earnuevoscoma mandosdeAut oCAD.........................................16 I nt r oducci ónalent or nodeVi sualLI SP.......................................17 Car garl osar chi vosdeAut oLI SP.................................................23 Oper aci onesma mat emá mát i casenAut oLI SP......................................26 Sol i ci t art ext osypunt osalusuar i o.............................................29 Funci onesparamanej arl i st as.....................................................30 Ej ecut arcoma mandosdeAut oCAD.................................................33 Oper aci onesdecompar aci ón......................................................35 Oper aci onesl ógi casenAut oLI SP...............................................38 Est r uct ur ascondi ci onal essi mpl es.............................................40 Est r uct ur ascondi ci onal esmú múl t i pl es...........................................43 Most r art ext osalusuari oenAut oLi sp........................................44 Lasvar i abl esdesi st ema madeAut oCAD........................................47 Funci onesdeconver si óndedat osenAut oLI SP.......................49 Obt enerdi st anci asyángul osdelusuar i o..................................50 Elcomandodeshacerenl asrut i nasdeAut oLI SP.....................54 Funci onesdet r at ami mi ent odeerr or esenAut oLI SP....................58 Li mi t arl asr espuest asdel osusuar i os.......................................65 ..................................70 Li mi t arl asr espuest asdel osusuar i os( I I ) ....................... ........................ ........................ .................74 .....74 Est r uct ur asr epet i t i vas:Bucl es...........
....................... ........................ ........................ .................78 .....78 Est r uct ur asr epet i t i vas:Bucl es...........
Funci onespar ama mani pul arcadenasdet ext o..............................83 Tr abaj arconángul osydi st anci as...............................................87 Funci onesavanzadaspar ama manej arl i st as..................................88 Apl i carf unci onesal osel eme ment osdeunal i st a..........................90 Li t er al esyot r asf unci onesdeut i l i dad........................................95 Car gaaut omát i cadel osarchi vosdeAut oLI SP.........................98 Oper aci onesconar chi vos........... ....................... ........................ ........................ .......................102 ...........102 ........................ ........................ ........................104 ............104 Leeryescr i bi rar chi vosdet ext o............
....................... ........................ ........................ .................78 .....78 Est r uct ur asr epet i t i vas:Bucl es...........
Funci onespar ama mani pul arcadenasdet ext o..............................83 Tr abaj arconángul osydi st anci as...............................................87 Funci onesavanzadaspar ama manej arl i st as..................................88 Apl i carf unci onesal osel eme ment osdeunal i st a..........................90 Li t er al esyot r asf unci onesdeut i l i dad........................................95 Car gaaut omát i cadel osarchi vosdeAut oLI SP.........................98 Oper aci onesconar chi vos........... ....................... ........................ ........................ .......................102 ...........102 ........................ ........................ ........................104 ............104 Leeryescr i bi rar chi vosdet ext o............
I nt r oducci ónal apr ogr ama maci ónenAut oCAD
Pr i mer ospasosconAut oLI SP
Obj et i vosdelcur so Apr ovechandoqueact ual ment edi spongodeal gomá másdet i emp mpo,mehedeci di doadesemp mpol vary r eedi t aral gúncur soquehecr eadohaceyabast ant et i empo,t r at ar édeact ual i zarelcont eni dopar a quef unci oneconl asúl t i masver si onesdeAut oCAD. Conest ecur sonosepr et endef or maraexper t ospr ogr ama mador es.Másbi en,sepr et endeacer carel l enguaj edepr ogr ama maci ónA nAut oLI SPal osusuar i osdeAut oCAD,par aquepuedancr earut i l i dadesy pequeñasapl i caci onesquel esahor r ent i empoycál cul osensust r abaj os. Par asegui relcur sonosonnecesar i osconoci mi ent osdepr ogr ama maci ón,t ansól oespr eci sot ener unasnoci onesbási casdeAut oCADydelent or noWi ndows ws. Ot r odel osobj et i vosdelcur soeseldeveraAut oCADnocomo mounpr ogr ama madedi buj o,si nocomo mo unapot ent ebasededat osgr áficos.Ydescubr i rcómo mof unci onaesabasededat os.
Códi godeunamacr oenAut oLI SP
Mer ecel apenaapr enderapr ogr amar sobr eAut oCAD Desdel uegoquepuedemer ecerl apena.Puedeagi l i zaryf aci l i t arenor mement eelt r abaj ocon Aut oCAD. Puedequeexi st anenelmer cadoapl i caci onesdedi señomuchomáspot ent espar at r abaj aren3D def or mapar amét r i ca,comoSol i dWor ksoCat i a,per oAut oCADsesi gueut i l i zandohabi t ual ment e eni nfini daddeapl i caci ones.Par at r abaj aren2D si guesi endol aapl i caci óndeCADder ef er enci ay suf or mat odear chi vo. DWG esunest ándarenl ai mpor t aci ónyexpor t aci ónde ar chi vosconvi r t i éndoseenunodel osf or mat osdear chi vomásut i l i zadospar ai nt er cambi arpar t es deundi señoconcl i ent es,pr oveedor esycol abor ador es.
Aut oLI SPesunl enguaj esenci l l odeapr enderyadi f erenci adeot r osl enguaj esde pr ogr amaci ónsepuedencr earpr ogr amasi nt er esant esyr eal ment eút i l escasidesdeel pr i mermoment o. Muchasveces,l amayor í adelt i empoempl eadoencr earunamacr oopr ogr amaseempl ea endepur cor r egi rer r or es) .Lapl ani ficaci ónyelanál i si spr evi odel amacr oesde arelcódi go( sumai mpor t anci apar aevi t ar l o.Elpri merpasopar aescr i bi runamacr oconsi st eenescr i bi renun papelconunl enguaj esi mpl el oquesedeseaquer eal i ceelpr ogr ama,aest osel e denomi napseudocódi go. Unmét odoal gomásavanzadoyeficazesut i l i zardi agr amasdefluj o. Cuandoyaempi ecesapr ogr amarenAut oLI SPport isol o,t eser ámuyút i lr euni rt odasl as anot aci onessobr epr oyect osdeapl i caci onesymacr osenunal i br et aobl ocdenot as.Tambi én puedesut i l i zarEver not eocual qui erot r osi st emaquet eper mi t aal macenardei nf or maci óno gest i onarl asmacr osquehascr eado.
I nt er f acesdepr ogr amaci ón Aut oCADdi sponevar i osent or nosdepr ogr amaci ón,l asel ecci óndelt i podei nt erf azaempl earpar a cr earunaapl i caci óndepender ádel asnecesi dadesdel aapl i caci ónydel aexperi enci ao conoci mi ent osdelpr ogr amador/ es: •
•
•
•
esunaadapt aci óndell enguaj edepr ogr amaci ónCommonLI SPpar aAut oCAD. Aut oLI SP Essenci l l odeapr enderyalmi smot i empopot ent e.Aut oCADcuent aconuni nt ér pr et ei nt er no deLI SPqueper mi t ei ocar garpr ogr amas nt r oduci rcódi godesdel al í neadecomandos desdear chi vosext er nos.Puedesut i l i zarAut oLI SPpar aaut omat i zart ar easr epet i t i vasycr ear nuevoscomandosdeAut oCAD const i t uyeunaal t er nat i vamodernaalAut oLI SP.Puedesaccedery Act i veXAut omat i on cont r ol arobj et osdeAut oCADdesdecual qui erapl i caci ónqueut i l i ceuncont r ol adorAut omat i on comoVi sualBasi cyDel phi ,ocual qui er adel asapl i caci onesquedi spongandeVi sualBasi cf or Appl i cat i ons( VBA) esunent ornodepr ogr amaci ónbasadoenobj et osqueut i l i zaí nt egr ament el asi nt axi s VBA dell enguaj eVi sualBasi cyper mi t eusarcont r ol esAct i veX.Per mi t et ambi énl ai nt egr aci óncon ot r asapl i caci onesqueut i l i zanVBAcomoMSOfficeoMSPr oj ect .Lasedi ci onesdedesar r ol l o deMSVi sualBasi c,queseadqui er enporsepar ado,compl ement anAut oCADVBAcon component esadi ci onal escomoundi sposi t i voext er nodebasededat osyf unci onal i dadesde escr i t ur adei nf or mes esunent or nodepr ogr amaci óndel enguaj ecompi l adopar aeldesarr ol l ode Obj ect ARX apl i caci onesdeAut oCAD.Elent or nodepr ogr amaci ónObj ect ARXi ncl uyevar i asbi bl i ot ecasde ví ncul osdi námi cos( DLL)queof r ecenaccesodi r ect oal asest r uct ur asdel abasededat os,el si st emadegr áficosyl osdi sposi t i vosdegeomet r í adeAut oCAD
Demoment onoscent r ar emosenl apr ogr amaci ónsobr eAut oCADut i l i zandoeli nt ér pr et ei nt erno deAut oLI SPpar apasarenbr evealent or nodeVi sualLI SPypost er i or ment eal apr ogr amaci ónen VBA.
Car act er í st i casdeAut oLI SP ElLI f uedesar r ol l adoafinal esdel osaños50porJohnMcCar t hy,eselsegundol enguaj ede SP pr ogr amaci ónmásant i guosol opr ecedi doporFor t r an.Unodel oscamposenl osqueesmás empl eadoesenl ai nvest i gaci óneni .Sunombr epr ovi enedeLI nt el i genci aart i fici al ST ( Pr ocesadodel i st as) ,puessebasaenelusodel i st asenl ugardedat osnuméri cos. Pr ocesi ng Aunquehayqui enmant i eneent onoj ocosoquesunombr epr ovi enede“ LostI nSt upi d Par ent hesi s”.
Aut oLI SPañadealLI SPal gunasf unci onesespeci al ment edi señadaspar al amani pul aci ón del asent i dadesdeAut oCAD. goseconvi er t eal enguaj emáqui na( cer osyunos)y Aut oLI SPesunl enguaj eeval uado.Elcódi seal macenaenl amemor i at empor al .Noest anl ent ocomol osl enguaj esi nt erpr et ados,nit an r ápi docomol oscompi l ados: •
enl osl r aduci endoelpr ogr amaacódi gomáqui na( el enguaj esi nt erpret ados,sevat i di omadel osor denador es)amedi daqueseej ecut a
•
enl osl gof uent e( t ext o)delpr ogr amaset r aduceacódi go enguaj escompi l ados,elcódi máqui nagener andounar chi voej ecut abl e( . EXE)queeselqueej ecut ar áelpr ogr ama
Hayqui endi cequeAut oLI SPesl ent ocompar ándol oconot r osl enguaj escomoPascaloC, especi al ment ecuandoseut i l i zanmuchasf unci onesmat emát i cas.Si nembar go,cuandoseut i l i za mani pul andosí mbol osl osr esul t adossonmuydi st i nt os.Est ohacedeAut oLI SPunexcel ent e l enguaj epar al apr ogr amaci óndesi st emasCAD,yaqueunsi st emaCADnoesmásqueun ent or nodemani pul aci óndesí mbol osgr áficos. Unadel ascar act er í st i casmási mpor t ant esdeAut oLI SPesl aposi bi l i daddeaccederal abasede ascapas,est i l osdet ext o, dat osdel osdi buj osdeAut oCAD.Dondepodemosaccederal si st emasdecoor denadasper sonal es( SCP) … asícomoat odasl asent i dadesdeldi buj o.Est a i nf or maci ónsepuedemodi ficar ,ext r aerei ncl usoañadi rmásent i dadesaldi buj ooi nf or maci ón adicional. Lamayor í adel ospr i mer osl enguaj esdepr ogr amaci óndeal t oni velcomoC oPascalson l enguaj espr ocedi ment al es,seej ecut anunaser i edei nst r ucci onespasoapasoapar t i rdeunos dat os.EnAut oLI SPenl ugardesegui ri nst r ucci onespr efij adas,sepuedeaccederal a deAut oCADpar adet er mi nardequéi nf or maci ónsedi spone, i nf or maci óndel osobj et os pr egunt ándol eal osobj et osporel l osmi smos.
Aut oLI SPnoesest r i ct ament eunl enguaj eor i ent adoalobj et o,per ocont i enebast ant es car act er í st i casdeest ost i posdel enguaj esdebi doaquepuedei nt er act uarconl osobj et os cont eni dosenl osdi buj os. ecut encomocual qui erot r a Aut oLI SPper mi t ecr earnuevoscomandospar aAut oCAD,queseej or den.Esposi bl ei ncl usor par aquef unci onendef or ma edefini rl oscomandosdeAut oCAD di st i nt a,porej empl opodr í amosr edefini relcomando“ POLI GONO”par aquedi buj epol í gonos est r el l adosenl ugardel osr egul ar es. Unamenci ónespeci almer eceelusodeAut oLI SPenl ar eal i zaci óndeprogr amasparamét r i cosy eneldi r eel60% yel80% deldi señoest ádedi cadoal a señosemi aut omát i co,yaqueent modi ficaci óndedi señospr evi os.Enl ospr ogr amaspar amét r i cos,elusuar i oi nt r oduceunaser i ede dat osopar ámet r osapar t i rdel oscual eselpr ogr amar eal i zaeldi señocompl et odeunel ement ou obj et o.Est apuedesersi nni ngunadudaunadel asmayor esapl i caci onesdeAut oLI SP. Aut oLI SPsehamej or adoconl acr eaci óndeVi queof r eceunent or nodedesar r ol l o sualLI SP i nt egr adodent r odeAut oCAD.
Vi sualLI SPi ncl uyeuncompi l ador ,undepur adorydi ver sasut i l i dadesparaf aci l i t arl a progr amaci ón. Ademásañadenuevoscomandospar aper mi t i rl ai nt er acci ónconobj et osqueut i l i zanAct i veX. Ot r adel asnovedadesqueapor t aVi sualLI SPsonl osr eact or esdeobj et osqueper mi t enque Aut oLI SPr espondaaevent os. Enl osdospr i mer oscapí t ul osdelcur soset r abaj ar ádesdel avent anadecomandosdeAut oCAD. Apar t i rdelt er cercapí t ul oyacr ear emosnuest r asmacr osenar chi vosdet ext out i l i zandoelent or no deVi sualLI SPpr opor ci onadoporAut oCAD. Exi st endosi nconveni ent esalempl earAut oLI SPdesdel avent anadecomandosdeAut oCAD: •
enpr i merl ugarelr educi doespaci oconelquesecuent aenl avent anadecomandosde Aut oCADyl adi ficul t adquesuponeelnot abul arelcódi go,esdeci rescr i bi relcódi got odo segui do.Est oesdebi doaquecadavezquesepul saI nt r o,Aut oCADeval úal oqueseha escr i t o
•
ensegundol ugar ,alt er mi narl asesi óndet r abaj oenAut oCADseper der ánt odosl osdat os al macenadosenl amemor i at empor al
Expr esi onesypr ocedi mi ent osde evaluación Unpr ogr amaenAut oLI SPconsi st eenunaser i edeexpr esi onesdelt i po“ “ . ( f unci ónar gument os) Cadaexpr esi óncomi enzaconunparént alquesi gueelnombr edeunaf esi sdeapert ur a unci ón ( ounaf unci óncr eadaporelusuar i o)yunaseri edear ( aveces deAut oLI SP gument os opci onal es)quedependendel af unci óni ndi cadayvanseparadosporalmenosunespaci oen esi ónt er mi naconunparént oesmuyi mpor t ant epuesel bl anco.Cadaexpr esi sdeci err e,est númer odepar ént esi sdeaper t ur adebeseri gualaldeci er r e.
Cadaexpr esi óndeAut oLI SPdevuel veunval or . eándoseasíunaest r uct ur af or madapor Unar gument ot ambi énpuedeserunaexpr esi ón,cr expr esi ones( l i st as)ani dadasunasdent r odeot r as;demodoquel amási nt er i ordevol ver ásu r esul t adocomounar gument oal al i st aext er i or .
Cuandoexi st enl i st asani dadas( unasdent r odeot r as) ,pr i mer oseeval úanl asmás i nt eri ores. Lospr i mer osej empl osquevamosaversonsenci l l osycor t i t os,asíquepuedest ecl ear l os di r ect ament eenl avent anadecomandosdeAut oCAD. Ej empl o: Ej ecut al af unci ón+ quer eal i zal asumadel osar gument os1y2 devuel veelr esul t ado3. ( +12) Ej ecut al af unci ón+ quer eal i zal asumadel osar gument os31,22ydevuel veel ( +31223) 3 r esul t ado50. Pr uebat ambi én:
( -172) ( +2. 522. 8) ( -0. 2522. 5) ( +122317. 5) Ej empl o: devuel ve8.Recuer daquepr i mer oeval úal al i st ai nt er i orydevuel vesur esul t adoal a ( +( *23)2) ext er i or . devuel ve6. ( +7( /5. 02)3) 5. ¿Quésuceder í asialescri bi rl aexpr esi ón( nosol vi dásemosdeescr i bi relúl t i mo +1( /5. 02) ) par ént esi s?Hazl apr ueba,ver asqueAut oCADt ei ndi caquef al t a1par ént esi sdeci er r e. Sieli nt ér pr et edecomandosdeAut oCADencuent r aunpar ént esi sdeaper t ur a,suponequet odol o quevayaacont i nuaci ónhast aelpar ént esi sdeci er r eesunaexpr esi óndeAut oLI SP.Demodoque enví aesaexpr esi ónali nt ér pr et edeAut oLI SPpar aquel aeval úe. Enelsi gui ent ecapí t ul over emosal gunasdel asoper aci onesmat emát i casquesepuedenr eal i zar conAut oLI SP.
Ti posdeobj et osydat os Losel ement osdel asexpr esi onesdeAut oLI SPpuedensersí mbol os,val or esconcr et osyt ambi én ot r asexpr esi ones.Sepuedendi st i ngui rl ossi gui ent est i posdeel ement os: •
qui erel ement oquenoseaunval orconcr et o.Porej empl ounavar i abl e,una Sí mbol os:Cual función
•
osent er oscompr endi dosent r e32000y32000 Enteros:Númer
•
osr eal es( 180esunnúmer oent er o,per o180. 0esunnúmer or eal ) Real es:Númer
•
oconunal ongi t udmáxi made132car act er es Cadenasdet ext o:Text
•
esent anunar chi vodet ext oASCI Iabi er t o Descr i pt or esdear chi vo:Repr
•
eenhexadeci maldeunaent i daddeldi buj o Nombr esdeent i dadesdeAut oCAD:Nombr
•
unt osdeent i dadesdeAut oCAD Conj unt osdesi gnadosporelusuar i o:Conj
•
onesdefini dasporelusuari o Funci onesdeusuar i o:Funci
•
onesocomandospr edefini dosdeAut oLI SP Funci onesdeAut oLI SP:Funci
Ej empl o: devuel ve7. ( +52) devuel ve7. ( +52. 0) 0. Enelpr i mercasot odosl osar gument ossonnúmer osent er os,yelr esul t adodesusumaesun númer oent er o.Enelsegundocaso,t enemosunnúmer or eal ,asíqueelr esul t adoesunnúmer o r eal .Par aquecompr endasl ai mpor t anci adeest adi st i nci ón,r eal i zaelsi gui ent eej empl o:
/ (52) / (52. 0) Unadel asmayor esvi r t udesdeAut oLI SPesquepuedenej ecut ar seexpr esi onesenmedi odeun comandodeAut oCAD. Ej empl o: Ej ecut aelcomando“ ndi caelpr i merpunt o,act i vaelf or zadoor t ogonal( F8)y LI NEA”ei t ecl ea… ( Est odevuel veelr esul t adodel asumaalcomandoqueseest abaej ecut ando. +1125) Poresodi buj aunal í neade36mm del ongi t udenl adi r ecci ónquei ndi cabaelcur sor . Pr uebaahor ai ndi candoelr adi odel aci r cunf er enci a( alut i l i zarelcomandol l amado -7025) “ mall l amado,puesdeber í aser“ ci r cunf er enci a” ) . CI RCULO”( Podemosempl eart ambi énl aconst ant ePI =3. 14159… par ar eal i zarcál cul os.Porej empl o,ej ecut a denuevoelcomando“ egunt eelr adi odel aci r cunf er enci a, CI RCULO”ycuandopr teclea .Obt endr emosunaci r cunf er enci adeper í met r o6. / (6( *2PI ) )
Not aci ónempl eada
Par adescri bi rl asf unci onesdeAut oLI SPqueseexpl i quenal ol ar godelcur sosesegui r ál a si gui ent enot aci ón:
( FUNCI ÓNAr gument os_necesar i os[ Ar gument os_opci onal es]) Losnombr esdel asf unci onesdeAut oLI SPyelcódi goat ecl earsemost r ar ánennegr i t a.
Convenci onesr ecomendadas Enest eapar t adosei ndi car ánunaser i edeconvenci onesr ecomendabl esal ahor adepr ogr amar . Al gunadeel l aspuedequeaúnnol asent i endas,per onot epr eocupespor quel asi r emos r ecor dandoamedi daqueavancemosenelcur so. par al oscoment ar i osi ncl ui dosenelcódi go,ser ecomi endaut i l i zarelsi gui ent emét odo:
•
o
; ; ;Ant esdelcódi godel asf unci ones,expl i candosuf unci onami ent o
o
; ;Enmedi odelcódi godelpr ogr ama
o
;Par aexpl i carunal í neadecódi go.Adi f er enci adel asant er i or es,est anose i nser t aenl acol umna1,sei nser t ar áalt er mi narelcódi godel al í neaquecoment a
•
esmuyr ecomendabl eut i l i zarunf or mat ot abul adopar aelcódi go
•
evi t arelusodevar i abl esgl obal esi nnecesar i as
•
ut i l i zarl oscomandosdeAut oCADysusopci onesenI ngl ésypr ecedi dospor“ . _”
•
noabusardel af unci ón“ SETQ”
•
nout i l i zarT,MI N,MAX,LASTcomosí mbol os( nombr esdevar i abl esyf unci ones)
•
r ecuper arelval ori ni ci aldel asvar i abl esdesi st emadeAut oCADquehansi domodi ficadas
•
añadi runasl í neasalfinaldelpr ogr amapar ai ndi carelnombr edelnuevocomando,aut or , etc.
•
noi nt r oduci rdemasi adocódi goenl af unci ónpr i nci pal
•
i ncl ui runaf unci óndet r at ami ent odeer r or es
•
evi t arqueelusuar i opuedai nt r oduci rdat oser r óneos
•
engener alesr ecomendabl eque,t r asej ecut arelnuevocomando,siseej ecut aelcomando “ DESHACER”( “ H” )sedeshagant odosl oscambi osr eal i zadosporelcomando
Convenci onesut i l i zadasenelcur so Elcódi goenAut oLI SPsemost r ar áennegr i t ayconl ossi gui ent escol or es:
•
o
l ospar ént esi sdeaper t ur ayci er r esemost r ar ánenr oj o()
o
l asf unci onesdeAut oLI SPsemost r ar ánenazul setq
o
l osnúmer ossemost r ar ánenver de125. 612
o
l ost ext ossemost r ar ánenr osa / “nDesi gneunpunt o:“
o
l oscoment ar i ossemost r ar ánenpúr pur a; Est oesuncoment ar i o
o
l asf unci onesdeusuar i osemost r ar ánenmayúscul as( GAR90.0)
Lasvar i abl esenAut oLI SP
¿Quéesunavar i abl e? ¿Nosabesquéesunavar i abl e?Recuer dascuandoenl aescuel at edecí an“ Tengo3mel ones,l e doyunoaJuanydespuésdecompr arot r os2,mecomíunopor quet ení ahambr e” .Puesl os mel onessonunavar i abl e.Nosot r oshací amos:1ºt engo3mel onesx=3( xesnuest r avar i abl e) . Luegol edoyunoaJuanx=31=2.Compr oot r osdosx=2+2=4ymecomíunox=41.Asíquex=3. “ x”noesmásqueunval orquevar í a( opuedehacer l o)al ol ar godelt i empo.Per opodí amoshaber l l amadoal avar i abl e“ y” o“ z” ,y¿porquéno“ mel ones” ?
( SETQ Var i abl e1Val or 1[ Var i abl e2 Val or 2. . .]) Enelar t í cul oant er i orl ogr amosdi buj arunaci r cunf er enci ade6mm dei ndi candoelr adi odel a ci r cunf er enci aat r avésdel aexpr esi ónenAut oLI SP .Per oquesucedesiquer emos / (6( *2PI ) ) ut i l i z are lv al oro bt eni dopo r(6( par areal i zarot r aoper aci ón,t endr emosquevol verat ecl ear / *2PI ) ) l aexpr esi ónant er i or . ¿Exi st eal gunaopci ónpar aal macenarenmemor i al osr esul t adosdeunaoper aci ón,t alcomohace unacal cul ador a?Desdel uegoquesi ,Aut oLI SPper mi t eal macenarmi l esdedat osenvar i abl es,que seal macenanenl amemor i adelor denador . Laf unci óndeAut oLI SPempl eadapar adefini rvar i abl esyasi gnar l esunval oresSETQ yper mi t e defini rvar i asvar i abl esenunami smaexpr esi ón.Laf unci ónSETQ devuel veelval ordel aúl t i ma var i abl edefini da. Conr espect oal osnombr esut i l i zadospar adesi gnaral ossí mbol oscr eadosporelusuar i o(var i abl es yf unci ones): •
nosonsensi bl esal asmayúscul as.Esl omi smobl oque,BLOQUEyBl oque
•
nopuedencont enerespaci osenbl anco,nil oscar act er es”().;‘
•
puedencont enernúmer os,per onoest arf or madosúni cament eporel l os
•
•
•
nout i l i zar emosnombr esdevar i abl esquecoi nci danconl osnombr esdel asf unci onesde Aut oLI SPnidel asvar i abl esdesi st emadeAut oCAD noexi st el í mi t eencuant oalnúmer odecar act er es,per oesr ecomendabl eempl earnombr es cort osydescr i pt i vos. noesnecesar i odecl ar arpr evi ament el asvar i abl es,comosucedeenot r osl enguaj esde pr ogr amaci ón.EnAut oLI SPunami smavar i abl epuedecont enerpr i mer ounnúmer oent er o, l uegounor eal ,despuésunacadenadet ext o,et c.
Ej empl o: Est aexpr esi óncr eal avar i abl ea yl easi gnaelval or3.Devuel veelval ordel avar i abl ea. ( setqa3) ¿Queval orcr eesquedevol ver á( ?Fí j at equesehandefini dodos setqb( +13) mel ones23.0) variablesbymel deval or4y23.0r espect i vament e.Comomel hasi dol aúl t i mavar i abl e ones ones eval uada,l aexpr esi ónant er i ordevuel vesuval or . Sieli nt er pr et edecomandosdeAut oCADr eci beunapal abr apr ecedi daporelsi gnodeexcl amaci ón “ “ ,compr obar ásieset ér mi nohasi doempl eadocomounsí mbol o( nombr edevar i abl eouna ! f unci óndeusuar i o)deAut oLI SP.Encuyocasodevol ver ásuval oryencasocont r ar i odevol ver áni , l queesl omi smoquenadaovací o.Porej empl o:! devuel ve3. a Pr uebat ambi énl assi gui ent esexpr esi onesycompr uebal osval or esasi gnadosal asvar i abl es: Losval or esdel asvar i abl est ambi énpuedenut i l i zar separ ar eal i zaroper aci onesy ( setqc( +b3) ) asi gnarelr esul t adodedi chasoper aci onesaunavari abl e. Sepuededefini runavar i abl ei gualalval ordeot r avar i abl e. ( setqdb) Sepuedemodi ficarelval orasoci adoaunavar i abl e,poresosel l amavar i abl e. ( setqa3. 5) ¿Quésucedeconelval ordel avar i abl ed?¿Tomar áelnuevoval orasi gnadoal a ( setqb2. 0) v a r i a b l eb osegui r áconelant er i or ?Aldefini rl avar i abl ed sel easi gnoelval orquet ení al a v a r i a b l eb enesemoment o,noseest abl eci óni ngunar el aci ónent r eambasvar i abl es. Tambi énsepuedeasi gnarval or esnonumér i cosal asvar i abl es.Porej empl o,unacadenadet ext o. Lascadenasdet ext osonsecuenci asdeunoomáscar act er esencer r adosent r ecomi l l as.Dent r ode unacadenadet ext opuedeni nsert ar seunaser i edecar act er esdecont r ol : •
\ \r epr esent aalsí mbol o\
•
\ ”r epr esent aalsí mbol o“
•
\ nr epr esent auncambi odel í nea( r et or nodelcar r o)
•
\ tr epr esent aunat abul aci ón
( setqa \ “t Bi enveni doalCur soI nt r oducci ónal apr ogr amaci ónenAut oCAD”) Enest ecasoademás,hayquenot arqueenl avar i abl ea pr i mer oseal macenabaunval orent er o, l uegounor ealyahor aunacadenadet ext o.Laposi bi l i dadder eut i l i zarvar i abl escondi st i nt ost i pos dedat ospuedesermuyút i l ,puesdot aalpr ogr amadordeunagr anflexi bi l i dadalescr i bi relcódi go. Per ot ambi énsuponequeser equi er amáscui dadopar anopasaraunaf unci ónunavar i abl econun t i podedat oi ncor r ect o.Porej empl o:( al avari abl ea cont i eneunacadenadet ext o +ab)yaqueahor enl ugardeunnúmer o. Exi st enunaser i edesí mbol ospr edefini dos:
•
Repr esent aalval orl ógi coCi er t ooVer dader o. T
•
Represent aalval orl ógi coFal so. ni l
( setqbT) ( setqcni l ) Enest ecaso,al avar i abl ea sel ehaasi gnadounacadenadet ext o,al avar i abl eb elval orCi er t oo Ver dader oyal avar i abl ec elval orVací ooFal so. Par aal macenarelr adi odel aci r cunf er enci adeperí met r o6uni dadesenunavar i abl epodemos t e c l e a r :
( setq r ad( /6( *2PI ) ) ) Podr í amoscr earunaci r cunf er enci aei ndi car! aAut oCADcuandonospr egunt eporelr adi o r a d deseado. Ej empl o:¿Porquél assi gui ent esexpr esi onesest ánmal ?
( setq15725) ( setq r ad5 Rad4) ( setq bCur sodeAut oLI SP) Porúl t i moveamospor quenodebemosempl earpar al osnombr esdel asvar i abl esl osnombr esde l asf unci onesdeAut oLI SP. Enest ecasoasi gnamosal avar i abl e+ elv al or23. ( setq+23) Prueba( Ahor a+ nor epr esent aal af unci ónsuma,si noaunavar i abl edeval or23.Demodo +52. 5) queelpr i mert er mi nodel aexpr esi ónant er i orahor anoesunaf unci ón,porl oquedaunerr or .Par a r ecuper arelmodohabi t ualdet r abaj odel af unci ón+ esnecesar i ocer r arl asesi ónact ualde Aut oCADei ni ci arunanuevasesi ón.
Oper aci onesmat emát i casbási cas Enl osart í cul osant er i or esyavi mosal gúnej empl odecómof unci onanl asf unci onesmat emát i cas bási cas( suma,r est a,di vi si ónymul t i pl i caci ón) .Ahor aexpl i car emossuf unci onami ent oconmayor pr of undi dad.
( +[ númer o1númer o2. . .]) Sumal osnúmer osi ndi cadoscomoar gument osydevuel veelr esul t adodedi chasuma.Sit odosl os númer osdel al i st asonent er os,elr esul t adot ambi énser áent er o. devuel ve12 ( +39) devuel ve12.0 ( +3. 09) devuel ve16 yl oal macenaenl avar i abl ea ( setqa( +394) ) devuel ve2. ( +3. 51) 5
Pr uebaahor al asi gui ent eexpr esi ón: devuel ve18.5 ( setqa( +a2. 5) ) Hemosasi gnadoal avar i abl ea elr esul t adodeunaoper aci ónenl aqueusamoselant er i orval or asi gnadoal avar i abl ea comounodel osar gument osdel aoper aci ón. Sil epasamosal af unci ón+ unúni conúmer ocomoar gument o,nosdevuel veesenúmer o. devuel ve12.5 ( +12.5) devuel ve( +7. 0) 7. 0 Siej ecut amosl af unci ónsumasi nar gument os,devuel ve0. devuel ve0 ( +) Laexpr esi ón( nosdar áuner r or .Losnúmer osr eal essi empr edebencomenzarporunnúmer o +. 52) ent er o,i ncl usosiescer o,segui dodel apar t edeci mal . devuel ve2. ( +0. 52) 5 devuel ve2. ( +30. 6) 4
( -[ númer o1númer o2. . .]) Rest aalpr i mernúmer ot odosl ossi gui ent esnúmer ospasadoscomoar gument os.Sit odosl os númer osdel al i st asonent er os,elr esul t adot ambi énser áent er o. devuel ve6. ( -11. 05) 0 devuel ve6 ( -115) devuel ve3 yl oal macenaenl avar i abl ea ( setqa( -1254) ) devuel ve( -3. 51) 4. 5 devuel ve0. yl oal macenaenl avari abl ea. ( setqa( -a2. 5) ) 5 Sil epasamosal af unci ón unúni conúmer ocomoar gument o,nosdevuel veesenúmer ocambi ado desi gno. devuel ve( -12.5) 1 2 . 5 devuel ve7. ( -7. 0) 0 Enl aexpr esi ónant er i or ,elpr i mersi gno“ ”r epr esent aal af unci ónr est a,mi ent r asqueelsegundo r epr esent aelsi gnodeunnúmer onegat i vo. Siej ecut amosl af unci ónr est asi nar gument os,devuel ve0. devuel ve0 ( -)
( *[ númer o1númer o2. . .]) Mul t i pl i cal osnúmer osi ndi cadoscomoar gument osydevuel veelr esul t adodedi chopr oduct o.Si t odosl osnúmer osdel al i st asonent er os,elr esul t adot ambi énser áent er o. devuel ve27 ( *39) devuel ve27.0 ( *3. 09) devuel ve108 yl oal macenaenl avar i abl ea ( setqa( *394) )
devuel ve( *3. 51) 3. 5 Pr uebaahor al asi gui ent eexpr esi ón: devuel ve270.0 ( setqa( * a2. 5) ) Sil epasamosal af unci ón* unúni conúmer ocomoar gument o,nosdevuel veesenúmer o. devuel ve12.5 ( *12.5) devuel ve( *7. 0) 7. 0 Siej ecut amosl af unci ón* si nar gument os,devuel ve0. devuel ve0 ( *)
( /[ númer o1númer o2. . .]) Di vi deelpr i mernúmer oent r eelsi gui ent eydevuel veelr esul t ado.Sisepasanmásdedosnúmer os comoar gument os,elpr i mernúmer osedi vi di r áent r eelpr oduct odel osr est ant esnúmer os. devuel ve3 / (4553) devuel ve2. / (115. 5) 0 Enest af unci ónesmuyi mpor t ant er ecor darquesit odosl osnúmer osdel al i st asonent er os,el r esul t adot ambi énser áent er o. devuel ve3 / (72) devuel ve3. / (72. 0) 5 devuel ve1.5625 yl oal macenaenl avar i abl ea ( setqa( /12. 542) ) devuel ve / (3. 51) 3. 5 devuel ve3.125 yl oal macenaenl avar i abl ea ( setqa( /a0. 5) ) Sil epasamosal af unci ó n unúni conúmer ocomoar gument o,nosdevuel veesenúmer o. / devuel ve12.5 / (12.5) devuel ve / (7. 0) 7. 0 Siej ecut amosl af unci ó n si nar gument os,devuel ve0. / devuel ve0 / ()
( 1+
) Est af unci óni ncr ement aenunauni dadelnúmer oi ndi cadocomoar gument o. devuel ve6.Oj oent r e“ ngúnespaci o,yaqueelnombr edel af unci ón ( 1+5) 1”y“ +”nodebehaberni es“ . 1+“ devuel ve3. ( 1+2. 5) 5 devuel ve1 ( 1+0) devuel ve( 1+7) 6 Unaapl i caci ónbast ant ehabi t ualdeest af unci ónesl adei ncr ement arí ndi cesocont ador es:
( setqi1) ve2 ( setqi( 1+i ) )devuel
( 1-) Est af unci ónr educeenunauni dadelnúmer oi ndi cado. devuel ve4.Oj oent r e“ ”nodebehaberni ngúnespaci o,yaqueelnombr edel af unci ón ( 1-5) 1”y“ es“ “ . 1 devuel ve1. ( 1-2. 5) 5 devuel ve( 1-0) 1 devuel ve( 1-1) 2
Sol i ci t arnúmer osalusuar i o Enest ear t í cul over emosdosf unci onesdeAut oLI SPquenosper mi t i r ánsol i ci t aralusuari oun númer oent er oor eal .Est onosper mi t i r ái nt er act uarconelusuar i oypedi r l ei nf or maci ón.
( GETI NT[ mensaj e]) Sol i ci t adelusuar i ounnúmer oent er o.Encasodequeelusuar i oi nt r oduzcaunnúmer or ealo cual qui erot r odat oquenoseaunnúmer oent er o,Aut oCADr ecor dar ámedi ant eunmensaj eque est ásol i ci t andounnúmer oent er oynofinal i zar ál aej ecuci óndel af unci ónhast aquesei nt r oduzca unval orent er o,osepul seESCpar acancel arsuej ecuci ón.
( getint ) Puedei ndi car seunmensaj edesol i ci t udopci onal ,quef aci l i t ealusuar i oi nf or maci ónacer cadel o queseest ápi di endo.Elmensaj edebeserunacadenadet ext oyport ant odebeest arent r e comi l l as.
( getint“¿Cuánt osañost i enes?:“) Podemosasi gnarelval ori nt r oduci doporelusuar i oaunavar i abl eyasíut i l i zar l odespués.
( setq edad( getint“¿Cuánt osañost i enes?: “) ) nosdar ál aedadquet endr áselpr óxi moaño. ( setq edad( + edad1) ) Tambi énpuedescr earunavar i abl equecont engaelmensaj edesol i ci t uddel af unci ónGETI NT
( setq mens“¿Cuánt osañost i enes?:“) ( setq edad( getint mens) ) Enest ecasomens esunavar i abl equeal macenaunacadenadet ext o,per onoesunacadenade t ext o.Porl ot ant o,nodebei rent r ecomi l l as. Pr uebaahor aelsi gui ent eej empl o:
( setqa27 mens“¿Cuánt osañost i enes?: “) ( setq edad( getint mens) ) Quepasar ásicomor espuest aal asol i ci t uddel aedaddelusuar i osei nt r oduce! ecel ógi co a.Par quel eest amosi ndi candoelval ordel avar i abl ea,quecont i eneelval ornumér i co27,demodoque l avar i abl eedaddeber í at omarelval or27,per oobserv ar asquenoesasí .Hazl apr ueba:nos
i ndi car áquees“ I mposi bl evol veraent r arenLI SP. ” .Est oesdebi doaquealej ecut arl a f unci ónGETI seest áej ecut andoeli nt er pr et edeLI SP,yali ndi car! comor espuest aest amos NT a di ci endoqueej ecut eeli nt er pr et edeLI SPpar aobt enerelval orasoci adoal avar i abl ea.Comoel i nt érpr et edeLI SPyaest áenej ecuci ón,nopuedevol veraej ecut ar seynosmuest r aelmensaj e ant er i or .
( GETREAL[ mensaj e]) Sol i ci t adelusuar i ounnúmer or eal .Encasodequeelusuar i oi nt r oduzcaunnúmer oent er o,el i nt ér pr et edeAut oLI SPl oconsi der ar ácomounr eal .Sisei nt r oducecual qui erot r ot i podedat oque noseanumér i co,r ecor dar ámedi ant eunmensaj equeest ásol i ci t andounnúmer or ealynofinal i zar á l aej ecuci óndel af unci ónhast aquesei nt r oduzcaunval ornumér i co,osepul seESCpar acancel ar suej ecuci ón.
( getreal ) Puedei ndi car seunmensaj edesol i ci t udopci onal ,quef aci l i t ealusuar i oi nf or maci ónacer cadel o queseest ápi di endo.Elmensaj edebeserunacadenadet ext oyport ant odebeest arent r e comi l l as.
( setq peso( getreal“¿Cuánt oski l ospesas?:“) ) nosdar áelpesoquet endr ássiadel gazasunki l o. ( setq peso( peso1) ) Tambi énpuedescr earunavar i abl equecont engaelmensaj edesol i ci t uddel af unci ónGETREAL
( setq mens“¿Cuánt oski l ospesas?:“) ( setq peso( getreal mens) )
Funci onesdeusuar i oynuevoscomandos
Defini rf unci onesdeusuar i o Hemosvi st ot ansol oal gunasdel asf unci onesdeAut oLI SP,per ot ambi énesposi bl ecr earnuest r as pr opi asf unci ones.Esmás,podemosr edefini rl asf unci onesdeAut oLI SPei ncl usol oscomandosde Aut oCAD.Lai nst r ucci óndeAut oLI SPquenosper mi t i r ácr earnuest r aspr opi asf unci ones, denomi nadasf unci onesdeusuar i o,sel l amaDEFUN.
( DEFUN([ ar gument os]/ [ var i abl es_l ocal es])[ expr 1][ expr 2]…) Elpr i merar gument or epr esent aelnombr edel af unci óndeusuar i oquequer emosdefini r .Hayque t enercui dadodenoempl earl osnombr esdel asf unci onesdeAut oLI SP,yaqueendi chocasose r edefini r í an. Despuésdei ndi carelnombr edel af unci ón,sedebeni ndi carent r epar ént esi sl osar gument osyl as var i abl esl ocal es,separ adosporunabar r ai ncl i nada: •
l o sar sonval or esquer eci bi r ál af unci óncuandoseaej ecut adaporelusuari o,o gument os l l amadadesdeot r asf unci ones
•
l a svar sonaquel l asvar i abl esqueseempl ear ánt ansol odent r odel af unci ón i abl esl ocal es quequer emosdefini r ,demodoquer est r i ngi mossuusoalent or nodel af unci ón
Porúl t i mo,seañadenl asexpr esi onesqueej ecut ar ál af unci ón.Veamosal gunosej empl os:
( defun2+( val or)( + val or2) ) Enest ecasohemosdefini dounanuevaf unci ónl l amada“ ,quer eci becomoar gument oun 2+“ númer oyr eal i zal asumadeesenúmer oy unci onesdeAut oLI SPl asej ecut amosescr i bi endo 2.Lasf di r ect ament edesdel al í neadecomandos,bi enpuesl asf unci onesdeusuar i oseej ecut an exact ament ei gual .Pr ueba: devuel ve7 ( 2+5) devuel ve2 ( 2+0) devuel ve0 ( 2+2) devuel veelr esul t adodel aúl t i maexpresi ónej ecut ada,queenelcasoant er i ores( . Def un + val or2) ¿Quesucedesit r at amosdeej ecut arl af unci ónsi npasarni ngúnar gument o,opasandoun ar gument oquenoseadet i ponumér i co?.Veamos: i ndi ca“ ;er r or :ar gument osi nsufici ent es” ( 2+) i ndi ca“ ;er r or :t i podear gument oer r óneo:number p:“ t ext o” ” ( 2+“t e x t o“) i ndi ca“ ;er r or :demasi adosar gument os” ( 2+12) Podr í aspensarqueelnúmer oi ndi cadoseal macenaenunavar i abl el l amada“ “ ,per onoesasí . valor Puedescompr obar l oescr i bi endo!Val enl al í neadecomandos,l oquenosdevol ver áni . or l Enl af unci ónant er i ort enemosunar gument oynohayvar i abl esl ocal es.Lavamosamodi ficarun poco:
( defun2+( val or)( setq val or( + val or2) ) ) Ahor asegur oqueest ast ot al ment econvenci dodequeelr esul t adoobt eni doseal macenaenl a v ar i abl e“ “ .Puescompr obemossit i enesr azón: valor devuel ve7 ( 2+5) devuel veni ! val or l Laf unci ón“ eci becomoar gument ounnúmer o,queal macenaenl avar i abl e“ “ .Per o 2+”r valor elámbi ,esdeci runavezquesal gamosdel af unci ón“ av ar i abl e t odeapl i caci ónesl ocal 2+”l “ ”r ecuper asuval ori ni ci al ,queenest ecasoesni .Vamosconot r apr ueba… valor l devuel ve5 ( setq val or5) devuel ve6 ( 2+4) ¿Queval orcr eesquet endr ál avar i abl eval or ?Pensemosunpoco. •
i ni ci al ment evalor er ani l
•
alej ecut ar( asi gnamosal avar i abl evalor elnúmer oent er o5 setq val or5)
•
cuandol l amamosal af unci ón“ aexpr esi ón( enemosque“ ”es4 2+”conl 2+4)t valor
•
dent r odel af unci ón“ gnamos( demodoque“ ”ser á6 2+”asi setq val or( + val or2) ) valor
•
per ocomoset r at adeunavar i abl el ocal ,alsal i rdel af unci ón“ ecuper amoselval orque 2+”r t ení al av ar i abl e“ ”ant esdel l amaral af unci ón,demodoquevalor ser á5 valor
•
port ant o,sit ecl eamos! devol ver á5 val or
Per o,quepasasiej ecut amos( .Ser epi t enl ospunt os14ant er i or es,per oalsal i r setq val or( 2+4) ) del af unci ón“ easi gnamosa“ ”elval ordevuel t oporl af unci ón,quees6.Demodoque 2+”l valor “ ”ser á6. valor Ret oquemosunpocomásl af unci ón“ 2+”
( defun2+( val or)( setq i ni ci alval orval or( + val or2) ) ) ybor r emoselcont eni dode“ val or ” .Par ael l osi mpl ement el easi gnamosni l .
( setq val orni l ) Enest ecaso,dent r odel af unci ón“ ar amosunavar i abl eal aquesel easi gnaelval orque 2+”decl r eci becomoar gument ol af unci ón.
( 2+4) ¿Queval ort endr ánahor al asvar i abl es“ ”e“ “ ?Vamosacompr obar l o: valor i ni ci al devuel veni alcomosucedí aenelej empl oant er i or ! val or lt devuel ve4 ! i ni ci al Obser vaque“ ”secompor t acomounavar i abl el ocal ,sol oseempl eadent r odel af unci ón.Si n valor embar go“ ”esdeámbi ,esdeci rsesi gueempl eandoalsal i rdel af unci ón.Vamosa i ni ci al t ogl obal modi ficarunpoqui t omásnuest r af unci ón:
( defun2+( val o / r i ni ci al)( setq i ni ci alval orval or( + val or2) ) ) Ahor ahemosañadi dol avar i abl e“ ”al al i st adevar i abl esl ocal es,conl oquesuámbi t oser á i ni ci al l ocal .Par acompr obar l o… devuel ve4 ! i ni ci al
( setq i ni ci alni l ) devuel veni ! i ni ci al l
( 2+3) devuel veni ! i ni ci al l Bueno,vamosconl aúl t i mamodi ficaci óndel af unci ón“ 2+”
( defun2+( / val or)( setq val or( getint“Númer o:“) )( setq val or( + val or2) ) ) Ahor al af unci ón“ i enear gument os,asíquepar aej ecut ar l at ansol odebemosponersu 2+”not nombr eent r epar ént esi s:
( 2+) Lavar i abl e“ ”esdeámbi t ol ocalyseempl eaGETI par asol i ci t arunnúmer oalusuar i o. valor NT Lohabi t ualesqueset r at edeevi as t arelusodevar i abl esgl obal esi nnecesari as.Demodoquel var i abl esquenoseangl obal es,sedeber ánañadi ral al i st adevar i abl esl ocal esdent r odel as defini ci onesdel asf unci onesdeusuar i o.
Cr earnuevoscomandosdeAut oCAD Laf unci óndeAut oLI SPDEFUN nosol oper mi t ecr earf unci onesdeusuar i o,t ambi énper mi t ecr ear nuev oscomandosdeAut oCAD. Si gui endoconelej empl oant er i or …
( defun C: 2+( / val or)( setq val or( getint“Númer o:“) )( setq val or( + val or2) ) ) Siant eponemosalnombr edel af unci ónadefini r“ ”enl ugardecr earunaf unci óndeusuar i o,se C: cr eaunnuevocomandodeAut oCAD.Laf unci ónsegui r áf unci onandoexact ament ei gual ,l aúni ca di f er enci aest áenelmododeej ecut arse.Ahor anoesnecesar i oponerelnombr edel af unci ónent r e par ént esi s,si noqueseescr i bedi r ect ament eenl avent anadecomandosdeAut oCAD.
2+ Tambi énsepuedeej ecut arponi endoelnombr edel af unci ónpr ecedi dode“ ”ent r epar ént esi s. C:
( C: 2+) Encasodequeelnuevocomandocr eadonecesi t eal gúnar gument o,t ansol opodr áej ecut ar sedel úl t i momodo.
( def unC: 2+( val o / r i ni ci al)( setq i ni ci alval orval or( + val or2) ) ) devuel ve4 ( C: 2+2) Siescr i bi mosdi r ect ament e“ oCADmost r ar áelmensaj e“er r or :ar gument osi nsufici ent es” . 2+”Aut Sit r at amosdeescr i bi r“ avent anadecomandosdeAut oCADver emosquealescr i bi rel 2+2”enl espaci oent r eelnombr edel af unci ónyelar gument o,Aut oCADej ecut al oquecr eequeesun comando.Porest emot i voahor asól opodrí amosej ecut arl af unci ónsil al l amamos escr i bi endo( avent anadecomandosdeAut oCAD. C: 2+2)enl Laf unci ónquehemoscr eadosol onosser vi r ápar al asesi ónact ualdeAut oCAD.Esmás,t ansol o est ádefini dal af unci ón2+ eneldi buj oact ual ,demodoquesihaymásdi buj osabi ert os,enel l osno est ar ádefini da. Enelsi gui ent et emaver emoscómoguar darnuest r asf unci onesenar chi vosdet ext o,al avezque comenzamosat r abaj arconelent or nodeVi sualLI SP.
I nt r oducci ónalent or nodeVi sualLI SP
Ar chi vosdecódi gof uent eenAut oLI SP Yahemosvi st oquel asf unci onesdeAut oLI SPsepuedenej ecut ardi r ect ament edesdel avent anade comandosdeAut oCAD.Per oelescr i bi relcódi godi r ect ament eenAut oCADt i enevar i os i nconveni ent es,comoyasecoment óenelpr i merar t í cul odelcur so: •
elr educi dot amañodel avent anadecomandosdeAut oCAD
•
•
l adi ficul t addeescr i bi rt odoelcódi gosegui do,si nt abul ar .Est oesdebi doaquecadavez quesepul saI nt r o,Aut oCADeval úal oquesehaescr i t o elcódi gonoseal macenaenni ngúnsi t i o,asíqueseper der áalcer r areldi buj oact ualo Aut oCAD
Demodoqueenl avent anadecomandosdeAut oCADt ansól oseescr i bi r ánpequeñasl í neasde códi goquenoi nt er eseguar dar .Suel eempl ear seport ant opar ahacerpr uebasydepur arcódi go, aunquet ambi énsepuedeut i l i zarcomounaayudamáspar aeldi señoconAut oCAD. Elcódi godel asf unci onesdeAut oLI SPseescr i beenunedi t ordet ext osASCI I ,par aqueasíse puedanal macenar .Sepuedeempl earcual qui eredi t ordet ext oquepermi t at ansol ocódi gosASCI I , porej empl oelbl ocdenot asdeWi ndows.Ot r osedi t or es,comoMSWor d,i nser t ancódi gospar a di f er enci arl osest i l osdet ext o,l ast abul aci ones,et c.ynosepuedenempl earpar aescr i bi rl asr ut i nas deAut oLI SP,yaqueeli nt ér pr et edeAut oLI SPnosabei nt er pr et aresoscódi gos. Ademásdelbl ocdenot as,exi st enmuchosot r osedi t or esdet ext oquesepuedenempl earpar a escr i bi rcódi gof uent eenAut oLI SP.Al gunosdeest osedi t or es,di sponendeut i l i dadespar al a pr ogr amaci ón(per mi t i endoi ncl usoempl ear l ospar adi st i nt osl enguaj esdepr ogr amaci ón).Ot r os edi t or esest ányaenf ocadosal apr ogr amaci ónenLI SPoAut oLI SP. Desdel aver si ón14,Aut oCADi ncor por aunedi t orpar aAut oLI SP,enelquet enemosent r eot r asl as s i gui ent esut i l i dades : •
eval uaci óndepar ént esi sdur ant el apr ogr amaci ón
•
posi bi l i daddecompi l arelcódi go,consi gui endoasíaument arsuvel oci daddeej ecuci ón
•
depur adordecódi goespecí ficopar aAut oLI SPconopci onespar a:Ej ecut arelcódi gopasoa paso,i ndi carpunt osdepar ada,eval uarexpr esi onesyval or esdevar i abl es,et c.
•
di f er enci arelcódi gof uent econdi st i nt oscol or es
•
t abul adoaut omát i codelcódi go
•
ut i l i dadespar agest i onarpr oyect osconvar i osar chi vosdecódi go
•
car gadel osar chi vosenAut oCAD
Nosot r ossegui r emosut i l i zandol avent anadecomandosdeAut oCADpar avercómot r abaj anl as f unci onesdeAut oLI SP,ynosi r emosaledi t ordeVi sualLi sppar acr earnuevasf unci onesy comandos. Losar chi vosdeAut oLI SPsonar chi vosdet ext oconext ensi ónLSP.
Nuest r apr i mer af unci óndeusuar i o Ant esdecomenzarconeledi t ordeVi sualLI SP,vamosacr earnuest r apr i mer af unci óndeusuar i o: Set r at adeunaf unci ónpar aconvert i runángul oder adi anesagr adosdeci mal es,al goquenosser á muyút i lenmuchasdel asmacr osquecr eemosal ol ar godelcur so.Elcódi godel af unci ónserí ael siguiente:
( defun RAG( ang) / (( * ang180.0)pi )
) Hayt r esr egl asbási casquesi gueAut oLI SP: 1.
elnúmer odepar ént esi sdeapert ur adebeseri gualalnúmer odepar ént esi sdeci er r e
2.
pr i mer oseeval úanl asl i st asmási nt er i or es
3.
t odaf unci óndeAut oLI SPdevuel veunr esul t ado
Eli nt ér pr et edeAut oLI SPnoeval úal osr et ornosdecarr o(I nt r os) ,demodoqueelcódi gosepodí a haberescr i t ot odosegui do,enunami smal í nea:
( defun RAG( ang) / (( * ang180.0)pi )) per oasíesmásdi f í ci ldel eer .Est af unci ónt i enemuypococódi go,per oi magi naunaf unci ónmucho mayorescr i t at odaenl ami smal í nea. Fí j at eenquel asegundal í neasepr esent at abul ada,demodoquenocomi enzaal ami smaal t ur a queelr est o,si noqueest ádespl azadahaci al ader echa.Est onosi ndi caqueest ái ncl ui dadent r ode unal i st adeni velsuper i or ,l adel af unci óndefun. Noesnecesar i ot of aci l i t asul ect ur ayademásnosper mi t edet ect arposi bl es abul arelcódi go,per er r or esconl ospar ént esi s( Regl anúmer o1) . esunaconst ant equeyaest ádefini daenAut oLI SP,pi equi val ealnúmer o3. 141592… Pi Enl apr i mer al í nea“ ”defini mosl af unci ónRAG ( Radi anesAGr ados)quer eci be ( defun RAG( ang) unar gument o“ elángul oenr adi anes) . ang”( Veamoscómof unci onal asegundal í nea:Porl aRegl anúmer o2,pri mer oseeval uar ál al i st a i nt er i or( quemul t i pl i caelángul oenr adi anes“ ydevuel veelr esul t adoa * ang180.0) ang”por180.0 l al i st adeni velsuper i or( r ecuer dal aRegl anúmer o3)quel odi vi deent r epi =3. 141592… devol vi endoasuvezelr esul t adodel adi vi si ón( elángul oengr adosdeci mal es)al al i st adeni vel s u p e r i o r ,defun. Laúl t i mal í neac i er r al al i s t adel af unc i óndefun,cumpl i endoasíconl aRegl anúmer o1. Recor demosl aest r uct ur adel af unci óndeAut oLI SPdef un: ( DEFUN([ ar gument os]/ .Enl af unci ónRAG t enemosunar gument oy [ var i abl es_l ocal es])[ expr esi ón1][ expr esi ón2]…) nosehandecl ar adovar i abl esl ocal es( porl oquenoesnecesar i oponerelcar áct e r“ “ ) ,ademássol o / t enemosunaexpr esi ón .Comosedi j oenelt emaant er i or ,defun devuel veel / (( * ang180.0)pi ) r esul t adodel aúl t i maexpr esi ón,queennuest r ocasor esul t aserelángul oyaconver t i doagr ados deci mal es. Nuest r af unci ónRAG seej ecut ar í aasí :
( RAG1.57) si endo1.57 elángul oenr adi anes,ydevol ver í aeseángul oengr adosdeci mal es ( apr oxi madament e90º ) . Noesnecesar i oponerelnombr edel af unci ónRAG enmayúscul as,yaqueAut oLI SPnodi f er enci a l asmayúscul asdel asmi núscul as( sal voencont adasexcepci onesalt r abaj arcont ext os,comoya ver emos) .Al ol ar godel osar t í cul osdelcur sosemost r ar ánl osnombr esdel asf unci onesdeusuar i o enmayúscul assi mpl ement epar aquesedi f er enci enper f ect ament edelr est odelcódi go.
Loscoment ar i osenelcódi go Esi mpr esci ndi bl eañadi rcoment ari osalcódi gopar aexpl i carquéesl oquehaceycómosehace.
EnAut oLI SPt odol oqueenunal í neavadespuésdeunpunt oycoma( comoest e; )seconsi der aun coment ar i o,demodoquenoseeval úa.Dai gualponeruno,doso45punt osycomassegui dos,al ponerelpr i mer oAut oLI SPyasabequet odol oqueest áacont i nuaci ón,enesal í nea,esun coment ar i o. Talvezpi ensesquenoest ani mpor t ant eañadi rexpl i caci onesenelcódi go.Per osit i enesquel eer unar ut i naquecr east ehacemesesser ánmuyút i l es,por quesegur ament enor ecor dar asmuybi en cómof unci ona.Además,sial gui envaal eeral gunadevuest r asr ut i nasl ef aci l i t ar asmuchol al abor . Ali gualqueat it eser ámássenci l l ol eeryent enderunarut i naconabundant escoment ar i os. Par al oscoment ar i osi ncl ui dosenelcódi go,ser ecomi endaut i l i zarelsi gui ent emét odo: •
; ; ;Ant esdelcódi godel asf unci ones,expl i candosuf unci onami ent o
•
; ;Enmedi odelcódi godelpr ogr ama
•
;Par aexpl i carunal í neadecódi go.Adi f er enci adel asant er i or es,est anosei nser t aenl a col umna1,si noalt ermi narelcódi godel al í neaquecoment a
Porej empl o,l af unci ónRAG concoment ar i ospodr í aquedarasí :
; ; ;Est af unci ónr eci beelval ordeunángul oenr adi anesyl odevuel veengr adosdeci mal es. ( defun RAG( ang);Reci beunángul oenr adi anes / (( * ang180.0)pi ) ; ;Mul t i pl i caelángul oenr adi anespor180. 0yl odi vi deporpi . )
Eledi t ordeVi sualLI SP Eledi t ordeVi sualLI SPsei ni ci adesdeAut oCADdevar i asf or mas: •
Ej ecut andoelcomandodeAut oCAD“ . VLI DE“
•
Desdeelmenúdespl egabl edeAut oCAD“ Her r –>Aut oLI SP–>Edi t ordeVi sualLI SP“
Most r ar áal gosi mi l aral asi gui ent ei magen:
El edi t ordeVi s ual LI SP
Alabr i reledi t orver emosdosvent anas,“ .Demoment ononos consol adeVi sualLI SP”y“ Rast r eo“ vamosapar araverpar aquési r venocómof unci onanest asvent anas. Est amosant eunedi t ordet ext os,comoot r ocual qui er a,per oconut i l i dadesespecí ficaspar al a pr ogr amaci ónenAut oLI SP.Demodoquepar acr earunnuevoar chi vohacemosl omi smoqueen cual qui eredi t ordet ext os:“ opul saCont . Ar chi vo–>Nuevoar chi vo”( r ol+N) Apar eceunanuevavent ana,t alcomopuedever seenl asi gui ent ei magen:
Nu ev av en t a nadecó di g oe ne le di t o rVi s ua lLI SP
Esenest apant al l adondevamosaescr i bi relcódi godenuest r ar ut i naRAG,per oant esunpequeño coment ar i o… Esbast ant ehabi t ualañadi ralpr i nci pi odel osar chi vosdeAut oLI SPunasl í neasdecoment ar i os i ndi candoelnombr edelaut or ,f echa,nombr edel oscomandosy/ of unci onesdefini dasenelar chi vo, yunabr evedescr i pci óndeest os.Demodoquealcódi goant er i orl eañadi r emosunasl í neasenl a cabecer adelar chi vo:
; ; ; ____________________Eduar doMagdal ena____________________; ; ; ; ; ; _________________________RAG. LSP___________________________; ; ; ; ; ; _______________________Ver si ón1. 0_________________________; ; ; ; ; ; ________________________21/ 02/ 2002_________________________; ; ; ; ; ;Est af unci ónr eci beelval ordeunángul oenr adi anesyl odevuel veengr adosdeci mal es. ( defun RAG( ang);Reci beunángul oenr adi anes / (( * ang180.0)pi ) ; ;Mul t i pl i caelángul oenr adi anespor180. 0yl odi vi deporpi . ) Eledi t ordeVi sualLI SPr eal i zal ast abul aci onesaut omát i cament e.Yaunquesepuedenel i mi naro modi ficaranuest r ogust o( añadi endooqui t andoespaci osyt abul aci ones) ,l or ecomendabl ees mant enerelf or mat opordef ect opar aelcódi go.Veamoscómoquedal af unci ónRAG eneledi t or :
L af u nc i ó nRAG e ne le di t o rd eVi s ua lL I SP
Enpr i merl ugarobser vamosqueelcódi got i enedi st i nt oscol or es.Est oessi mpl ement eunaayuda vi sualpar adi f er enci arl osdi f er ent esel ement osdenuest r asr ut i nas: •
l asf unci onesdeAut oLI SPsemuest r andecol orazulsetq
•
l oscoment ar i osenmor ado; Est oesuncoment ar i o
•
l ospar ént esi sencol orr oj o( setqa2. 0)
•
l osnúmer osencol orver de2. 0
•
•
l ost ext osencol orr osa( enest eej empl onoapar eceni ngúnt ext o,per over emosal gunos ej empl osmásadel ant e)“Soyunt ext o“ elr est odeel ement os,comol osnombr esdel asf unci onesydel asvar i abl esut i l i zadas,se muest r anencol ornegr o
Además,l asf unci onesdeusuar i osedest acar ánescr i bi éndoseenmayúscul asRAG. Est ef or mat odecol or esseut i l i zar át ambi énenl osar t í cul osdeest ecur so,t alcomosemuest r aenel códi godel af unci ónRAG ant er i or . Elf ormat ocol or eadodelcódi gosepuededesact i var ,osepuedenmodi ficarl oscol or espr edefini dos par al osdi f er ent esel ement os.Per oelmant enerelf or mat odecol or espar aelcódi go,nospuede ayudaradet ect arer r or es. Porej empl o,siponemos“ ” ( set wr adi anes1.57) apar ecer áennegr oynoenazul ,por quel af unci óndeAut oLI SPesSETQ,demodoquenos SETW i ndi caquehemosescr i t omalelnombr edel af unci ón. Encuant oal at abul aci ón,t alvezl l amel aat enci ónelúl t i mopar ént esi s( eldeci er r edel a f unci óndefun) ,yaquenoest áal ami smaal t ur aquesupar ént esi sdeapert ur a.Hayedi t or espar a Aut oLI SPquei nser t anl ospar ént esi sdeci er r eal ami smaal t ur aquesuscor r espondi ent es par ént esi sdeaper t ur ayhayot r osedi t or esquei nser t anl ospar ént esi sdeci err et abul ados,t alcomo hace( pordef ect o)eledi t ordeVi sualLI SP. Unavezescr i t oelcódi godel af unci ónRAG,t ansol onosquedaguar dar l oenunar chi vo.Es r ecomendabl ecr earundi r ect or i o(car pet a)enelqueguar dart odasnuest r asr ut i nas. Ver emosmásadel ant equesepuedenguar darvar i asf unci onesyvar i oscomandosenunmi smo ar chi vodeAut oLI SP,aunqueenest ecasosól osehadefini dounanuevaf unci óndeusuar i o. Sel esuel edaral osar chi vosdeAut oLI SPelmi smonombr edelcomandoof unci ónqueest é defini daenél ,podemosguar darest ar ut i naenelar chi vo“ kl hsdui f . l sp”per ol uegono l ar econocer í amos.Asíquel omej orser águar darelcódi godel af unci ónRAG enelar chi vo “ ,dent r odeldi r ect or i oquehemoscr eadopar aal macenarnuest r asr ut i nas.Asíque RAG. l sp“ sel ecci ona“ Ar chi vo–>Guar darcomo”ei ndi cal ar ut ayelnombr edelar chi vo. Ahor apuedesi nt ent arcr earunaf unci ónl l amadaGAR quer eci bacomoar gument ounángul oen gr adosdeci mal esyquedevuel vaeseángul oenr adi anes.Espr áct i cament ei gualal af unci ónque acabamosdever .Per or ecuer da… Ant esdeempezarapr ogr amar( comoant esdehacercasi cual qui ercosa)convi enepensarenl oquesevaahaceryencómol ovamosahacer .Comoest a r ut i naesmuysenci l l anoesnecesar i oescr i bi relpseudocódi go( nihacerundi agr amadefluj o) ,t an sol ohayquepensarunpocoenl oquesevaahacer .Guar daelcódi godel af unci ónGAR enun ar chi vol l amado“ r ect or i odondet engast usrut i nas. GAR. l sp”eneldi
Car garl osar chi vosdeAut oLI SP Par aquel af unci ónRAG quecr eamosenelart í cul oant er i orsepuedaej ecut arenAut oCAD,hay quecar garelar chi vodeAut oLI SPenelqueest ádefini da.Exi st envar i asf ormasdecar garl os ar chi vosdeAut oLI SP,per odemoment ot ansol ovamosavert r es: 1.
Car garunar chi vodesdeel edi t ordeVi sualLI SP
2.
Enelmenúdespl egabl edeAut oCAD“ . Her r –>Aut oLI SP–>Car garapl i caci ón… “
3.
Ut i l i zandol af unci óndeAut oLI SPLOAD.
Siest amoseneledi t ordeVi sualLI SPyt enemosabi ert ounar chi voconunar ut i na,par acar gar l aen Aut oCAD podemos: •
Sel ecci onarenl osmenúsdespl egabl esdelVi sualLI SP“ Her r ami ent as–>Car gart ext oen . editor“
•
Pul sandosobr eeli cono
.
•
Tecl eandol acombi naci óndet ecl asCTRL+ALT+E.
Alcar garelar chi vo,apar ecel aConsol adeVi sualLI SPmost r andounmensaj epar eci doalsi gui ent e: “ ;Nf or mul ar i oscar gadode#.Encasodequesepr oduzcaal gúner r orenel pr ocesodecar gadelar chi vo,enl aconsol adeVi sualLI SPsenosi ndi car í aelt i podeer r orquese hapr oduci do.Demodoquehabr í aquemodi ficarelcódi gopar acor r egi reseer r orant esdecar garl a r u t i n a . Unavezcar gadal ar ut i naenAut oCAD,podemospr obarsif unci ona.Tecl eadi r ect ament eenl a vent anadecomandosdeAut oCAD: •
( RAG0)
•
( RAGpi )
•
( RAG( /pi4) )
Elsegundomét odopar acar garunar chi vodeAut oLI SPenAut oCAD( sel ecci onandoenelmenúde Aut oCAD “ )muest r aunl et r er odedi ál ogoenelquese Her r –>Aut oLI SP–>Car garapl i caci ón… “ sel ecci onaelar chi voacar garysepul saelbot ón“ . Car gar“
Car g ar/Des c ar g arapl i c ac i ones
Est emét odoof r ecedosvent aj as: •
sepuedesel ecci onarmásdeunar chi vo
•
per mi t edescar garl asf unci onesdeAut oLI SPdefini dasenl osar chi vossel ecci onados
( LOADar chi vo[ r esul t ado_si _f al l a] ) Laf unci ónLOADper mi t ecar garenAut oCADelar chi vodeAut oLI SPquesei ndi que.Porej empl o par acar garelar chi voRAG serí a:
( load“r ag“) Nohacef al t ai ndi carl aext ensi óndelar chi vo.Escr i bi endoasíelnombr edelar chi vosol ocar gar áel ar chi voRAG. siest áenunodel osdi r ect or i osdesopor t edeAut oCADoeneldi r ect or i oact ual . LSP Encasocont r ar i ohayquei ndi carl arut acompl et a:
( load“c: \ rut i nas\ rag. l sp“) Per osil ohi ci ér amosasínosdar í auner r or ,yaqueAut oCADnor econoceelcar áct e r“ “ ,demodo \ quehayqueescri bi r l odef or maal goespeci al .Par aAut oLI SPelcar áct e r“ ”hayquei ndi car l ode \ cual qui er adeesas2f or mas :“\ ”o ““ .Porl ot ant oescr i bi r emos: \ /
( load“c: \ \ r ut i nas\ \ r ag. l sp“)
o
( load“c: / rut i nas/ rag. l sp“) Encasodequenoseencuent r eelar chi vo,l aexpr esi ónl oadpuedeej ecut arl oquesei ndi queen [ r esul t ado_si _f al l a] .Porej empl o:
( load“r ag”( setq t est0) ) Enest ecaso,sinoseencuent r aelar chi voRAG. al av ar i abl etest sel easi gnaelval orcer o. l sp Suel eempl ear separ aque,cuandoseej ecut eLOADdesdedent r odeunaf unci óndeAut oLI SP, podamosi ndi car l ealusuar i oquenosehaencont r adoelar chi vo.Comoi ndi caelsi gui ent e pseudocódi go:
Sit est=0==>Mensaj ealusuar i o“ Ar chi vonoencont r ado” Est oest odo,demoment o,sobr el acar gadear chi vosdeAut oLI SPenAut oCAD.Másadel ant e ver emosot r osmét odospar acar garnuest r asr ut i nas. Veamoscómoser í al af unci ónGARpr opuest aenelt emaant er i or :
; ; ; _____________________Eduar doMagdal ena_____________________; ; ; ; ; ; _________________________GAR. LSP___________________________; ; ; ; ; ; _______________________Ver si ón1. 0_________________________; ; ; ; ; ; ________________________21/ 02/ 2002_________________________; ; ; ; ; ;Est af unci ónr eci beelval ordeunángul oengr adosdeci mal esyl odevuel veenradi anes. ( defun GAR( ang);Reci beunángul oengradosdeci mal es / (( * angpi )180.0) ; ;Mul t i pl i caelángul oengr adosdeci mal esporPiyl odi vi depor180. 0. ) Esmuypar eci daal af unci ónRAG,no?
Cr earundi r ect or i opar al osar chi vosde Aut oLI SP Supongamosqueeldi r ect or i oquehemoscr eadopar aal macenarnuest r asr ut i nases“ . C: \ Rut i nas“ Veamoscomoañadi r l oal osdi r ect or i osdesoport edeAut oLI SP: I ni ci aAut oCAD.Enelmenúdespl egabl e“ ”sel ecci ona“ .Asíapar eceunl et r er ode Her r Opci ones…“ di ál ogoquenosper mi t i r áconfigur arAut oCAD.Enl apr i mer apest aña“ enemosuna Ar chi vos”t opci óndenomi nada“ .Sinoest áexpandi da,par aver Rut adebúsquedadear chi vosdesopor t e“ sucont eni dopul samosconelr at ónsobr eel queapar eceal ai zqui er da. + Par aañadi runnuevodi r ect or i odesopor t epul samoselbot ón“ ”queseencuent r aal a Añadi r der echadelcuadr odedi ál ogo.Est ocr ear áunanuevaet i quet a,enl aquepodemosescr i bi rl ar ut a deldi r ect or i oopul sarelbot ón“ ”par asel ecci onarl o.Yahemosañadi do“ os Exami nar C: \ Rut i nas”al di r ect or i osdesoport edeAut oCAD.
Opci onesdeAut oCAD
Tambi énpodemossubi robaj arelnuevodi r ect or i oenl al i st adedi r ect or i osdesopor t e.Est osehace par adefini rl aspr i or i dades,esdeci rdóndebuscarpr i mer o.Demodoquesisubi mosnuest r o di r ect or i ohast aelpr i merl ugar( comoenl ai magen) ,est eser áelpr i merdi r ect or i oenelquebusque Aut oCAD.
Oper aci onesmat emát i casenAut oLI SP Hemosvi st ol asoper aci onesmat emát i casbási cas:suma,r est a,mul t i pl i caci ónydi vi si ónyl as f unci ones1+y1.Ahor avamosconot r asf unci onesdeAut oLI SPquenosper mi t i r ánr eal i zarcasi cual qui eroper aci ónmat emát i caennuest r asr ut i nas.
( ABSnumer o) Est af unci óndevuel veelval orabsol ut odelnúmer oquesel epasecomoar gument o.Porej empl o: devuel ve23.8 ( abs23.8) t ambi éndevuel ve23.8 ( abs2 3 . 8) Sielnúmer oquer eci becomoar gument oesent er o,devuel veunnúmer oent er oysiesunnúmer o r eal ,devuel veunr eal . devuel ve7 ( abs7) devuel ve7. ( abs7. 0) 0 devuel ve0 ( abs0)
( FI Xnumer o)
Est af unci óndevuel vel apar t eent er adeunnúmer o.Demodoquedevuel veunnúmer oent er o.Oj o! est af unci ónnor edondea,si noqueel i mi nal oqueest ádet r ásdelpunt odeci mal . devuel ve15. ( fix15.8) devuel ve( fix1 5 . 8) 15 devuel ve0 ( fix0.99) devuel ve0 ( fix0 . 9 9)
( REM numer o1numer o2[ numer o3]…) Est af unci óndevuel veelr est odel adi vi si óndenumer o1ent r enumer o2. devuel ve0. ( r em 2. 52) 5 devuel ve1 ( r em 32) Cuandosei ndi canmásde2númer os( esequi val ent ea( .Esdeci r , r em 123) r em ( r em 12)3) pr i mer ocal cul aelr est odel adi vi si ónent r e1y2,quees1,ydespuésl odi vi deent r e3 ydevuel vesu r est o,quees1. Sit odosl osnúmer osquer eci becomoar gument ossonent er os,devuel veunnúmer oent er oysi al gunodeel l osesunnúmer or eal ,devuel veunr eal . devuel ve1. ( r em 32. 0) 0
( SI Nangul o) Devuel veelsenodeunángul oi ndi cadoenr adi anes. devuel ve0. ( si n0) 0 devuel ve1. ( si n( /pi2) ) 0
( COSangul o) Funci onai gualquel aant er i or ,per odevuel veelcosenodelángul o,quer eci beenradi anes. devuel ve1. ( cos0) 0 devuel ve( cospi ) 1. 0
( ATANnumer o1[ numer o2] ) Devuel veelar cocuyat angent eseanumer o1.Porej empl o: devuel ve0. yaqueelángul oquet i enet angent e0 esel0. ( atan0) 0 0 Sisei ndi caunsegundonúmer o( l oquehaceesdi vi di rnum1ent r enum2y atan num1num2) devuel veelar cocuyat angent eseaelr esul t adodel adi vi si ón.Est osehacepar af aci l i t arl o siguiente… devuel veangul ( atan( si n angul o)( cos angul o) ) o
( SQRTnumer o) Est af unci óndevuel vel ar aí zcuadr adadelnumer oquer eci becomoar gument o.Si empr edevuel ve unnúmer or eal ,noent er o.
devuel ve2. ( sqrt4) 0 devuel ve1.41… ( sqrt2. 0)
( EXPTnum exp) Devuel veelnúmer onum el evadoalexponent eexp. devuel ve4 ( expt22) devuel ve8 ( expt23) Sit odosl osnúmer osquer eci becomoar gument ossonent er os,devuel veunnúmer oent er oysi al gunodeel l osesunnúmer or eal ,devuel veunr eal . devuel ve9. ( expt32. 0) 0
( EXPnum) Devuel veelnúmer oe(e=2. )el evadoalnúmer onúm.Si empr edevuel veunnúmer or eal . 71828… devuel ve2.71828 ( exp1) devuel ve7.38906 ( exp2)
( LOG numer o) Est af unci óndevuel veell ogar i t moneper i anodelnúmer oquer eci becomoar gument o. devuel ve0. ( l og1) 0 devuel ve0. ( l og2) 693147
( GCDent er o1ent er o2) Est af unci ónr eci bedosnúmer osent er osydevuel vesumáxi mocomúndi vi sor( odenomi nador ) . Si empr edevuel veunnúmer oent er o. devuel ve5 ( gcd155) devuel ve3 ( gcd933)
( MAXnum1num2…) Devuel veelmayordel osnúmer osquer eci becomoar gument os. devuel ve6 ( max24136) devuel ve8 ( max849) Sit odosl osnúmer osquer eci becomoar gument ossonent er os,devuel veunnúmer oent er oysi al gunodeel l osesunnúmer or eal ,devuel veunr eal . devuel ve8. ( max84. 09) 0
( MI Nnum1num2…) Devuel veelmenordel osnúmer osquer eci becomoar gument os. devuel ve2 ( mi n236)
devuel ve( mi n849) 9 Sit odosl osnúmer osquer eci becomoar gument ossonent er os,devuel veunnúmer oent er oysi al gunodeel l osesunnúmer or eal ,devuel veunr eal . devuel ve( mi n84. 09) 9. 0 Puesyaest ánvi st ast odasl asf unci onesmat emát i cas… Enhor abuena! ! !
Sol i ci t art ext osypunt osalusuar i o Recuer dasl asf unci onesGETI r venpar asol i ci t aralusuar i ounnúmer o NTyGETREAL?Nossi ent er oyr eal ,r espect i vament e.Puesl af unci ónqueseut i l i zapar asol i ci t art ext osalusuar i oesmuy par eci da.
( GETSTRI NG [ modo][ mensaj e] ) Sepuedeej ecut arsi npar ámet r os( per onoesr ecomendabl e.Sesuel ei ndi carun get st ri ng) mensaj edet ext oqueexpl i quealusuari ol oquesel eest ásol i ci t ando.Porej empl o:
( get st ri ng“¿Cuálest unombr e?“) Supongamosquet el l amasPepe,a( r esponder í asPepeyya get st ri ng“¿Cuálest unombr e?“) est á.I ncl usosepodr í aasi gnarelnombr equei ndi queelusuari oaunavar i abl e:
( setq nombr e( get st ri ng“¿Cuálest unombr e?“) ) Per oquesucedesit el l amasJoséLui s?Puesqueencuant opul seselespaci oescomosihubi er as pul sadoI nt r o.Nonospermi t ei nser t art ext osconespaci os.Par aqueadmi t at ext osconespaci os, debemoshacerunpequeñocambi o:
( setq nombr e( get st ri ngT “¿Cuálest unombr e?”) ) Leest amosi ndi candoelar gument o[ modo]=T.Est ear gument opuedesercual qui erexpr esi ónde Aut oLI SP,enest ecasol epasamoselval orT =Ci er t o,ver dader o.Sinosei ndi caelmodo,osial eval uar l odevuel veni =Fal so,vací o;ent oncesnoadmi t eespaci os.Ysiseponecual qui erexpr esi ón l quealeval uar senodevuel vani ,permi t eespaci os. l per mi t er esponderconespaci os,ya ( setq nombr e( get st ri ng( +12)“¿Cuálest unombr e?“) ) que( devuel ve3 queesdi st i nt odeni . +12) l noper mi t er espondercon ( setq nombr e( get st ri ng( setq var1ni l )“¿Cuálest unombr e?“) ) espaci os,yaque( devuel veni . setq var1ni l ) l Par asol i ci t arpunt osseut i l i zandosf unci onesquet ambi énsonpar eci dasaGETI NTyaGETREAL.
( GETPOI NT[ pt o_base][ mensaj e] ) Est af unci ónl epi deunpunt oalusuar i oydevuel veunal i st aconl ascoor denadasdelpunt oi ndi cado. Elusuar i opuedei ndi carelpunt oenpant al l aconelr at ónot ecl eandosuscoor denadas,t alycomo sehar í aaldi buj arenAut oCAD. Sepuedeej ecut arsi npar ámet r os( per onoesr ecomendabl e.Sesuel ei ndi carunmensaj e get poi nt ) det ext oqueexpl i quealusuar i ol oquesel eest ásol i ci t ando.Porej empl o:
( get poi nt“Punt oi ni ci al “) Lohabi t ualesqueademásesepunt oseal maceneenunavar i abl e
( setq pt o( get poi nt“Punt oi ni ci al “) ) Asíasi gnamosal avar i abl ept al gopar eci doal osi gui ent e:( o 120. 56135. 880. 0) Veamosahor apar aquesi r vaelar gument oopci onal apr ovechandoquet enemosel [pto_base] punt opt defini do. o
( get poi nt pt o“Si gui ent epunt o: “) Apar eceunal í neael ást i caent r eelpunt opt yl aposi ci óndelcur sor . o
( GETCORNERpt o_base[ mensaj e] ) Est af unci ónseut i l i zat ambi énpar asol i ci t arpunt osalusuar i o.Enest ecasoelpunt obasenoes opci onal ,hayquei ndi car l o.Veamosl adi f er enci aent r el asdosexpr esi onessi gui ent es:
( get poi nt pt o“Si gui ent epunt o: “) ( getcorner pt o“Si gui ent epunt o: “) Alut i l i zarget ,semuest r aunal í neael ást i caent r eelpunt opt yl aposi ci óndelcur sor .Sise poi nt o ut i l i zagetcorner,enl ugardeunal í neael ást i ca,apar eceunr ect ángul o. Fi j émonosunmoment oenl oquedevuel vent ant oget comogetcorner:( poi nt 125. 68117. 680. 0). Set r at adeunal i st a,unal i st aconl ascoor denadasdeunpunt o.Bi en,puesenelpr óxi moar t í cul o ver emosal gunasf unci onespar amanej arl i st as.
Funci onespar amanej arl i st as Aut oLI SPesunl enguaj edepr ogr amaci ónbasadoenl asíqueesl ógi coqueelt r at ami ent o i st as quer eci banl asl i st asdeel ement osseamuybueno.Porot r apar t e,enAut oCADnosencont r ar emos l i st ascont i nuament eyent odaspar t es,desdel ascoor denadasdel ospunt oscomosei ndi cabaenel ar t í cul oant er i or ,hast al osdat osdel asent i dadesquesonal macenadosenl abasededat osde nt r oduci rahor aunaser i edef unci onespar amani pul arl i st asde Aut oCAD.Asíquevamosai el ement os.
( CARl i st a) Est af unci óndevuel veelpr i merel ement odel al i st aquer eci becomoar gument o. Demodoquesi( si gui endoconelej empl odelt emaant er i or )enl avar i abl ept hemosasi gnadoel o val ordevuel t oporget ,t enemosunal i st aconl ascoor denadasX,YyZdelpunt odesi gnado. poi nt Supongamosquept . o=( 10. 020. 00. 0) devuel vel acoor denadaXdelpunt opt r10.0 ( carpt o) o.Esdeci
( CDRl i st a) Est af unci óndevuel vel al i st aquer eci becomoar gument oper osi nelpr i merel ement o. devol ver áunal i st af or madaporl ascoor denadasYyZdelpunt opt r ,( ( cdrpt o) o.Esdeci 20. 00. 0)
( CADRl i st a)
Basándonosenl asdosf unci onesant er i or esyr ecor dandoquepodemosej ecut arl i st asde i nst r ucci onesdent r odeot r as( aest ol el l amamosani dami ent o) :¿Cómoseobt endrí al acoor denada Ydelpunt opt o?Veamos: •
devuel vel al i st asi nelpr i merel ement o CDR
•
devuel veelpr i merel ement odeunal i st a CAR
Demodoque( devuel ve( YZ) .Asíquepar aobt enerl acoor denadaYpodemosescr i bi r : cdrpt o) devuel vel acoor denadaYdelpunt opt o. ( car( cdrpt o) ) y,¿cómoobt enemosl acoor denadaZ?Pues,vol vi endoaapl i carl af unci ónCDRpar al l egaral a coor denadaZ •
devuel ve( YZ) ( cdrpt o)
•
devuel ve( Z) ( cdr( cdrpt o) )
Podr í aspensarqueescr i bi endo( enemosl acoor denadaZ,si nembar gonoesasí . cdr( cdrpt o) )obt Laexpr esi ón( devuel ve“ coel ement o,l acoor denadaZdelpunt o cdr( cdrpt o) ) unal i st a”conunúni pt o.Par aobt enerl acoor denadaZdelpunt opt ot enemosqueescr i bi r : devuel vel acoor denadaZdelpunt opt o. ( car( cdr( cdrpt o) ) ) Enr esumen,l ascoor denadasdelpunt opt oseobt endr í anmedi ant e: •
X==>( carpt o)
•
Y==>( car( cdrpt o) )
•
Z==>( car( cdr( cdrpt o) ) )
Ot r asf unci onescombi nandoCARyCDR Sienl asexpr esi onesi ndi cadasant er i or ment epar aobt enerl ascoor denadasX,YyZponemosl as l et r asAyDdecArycDr enmayúscul as,l oant er i orquedar í a: •
X==>( cArpt o)
•
Y==>( cAr( cDrpt o) )
•
Z==>( cAr( cDr( cDrpt o) ) )
Est eej empl oessi mpl ement epar ai nt r oduci runasi mpl er egl ademnemot ecni ayaquelas ael l o,exi st enunaser i edef unci onesquese f unci onesCARyCDRsepuedenagr upar.Par denomi nanj unt andol asAesyl asDesdecArycDr r espect i vament e.Elej empl oant er i or ,queda: •
X==>( cArpt o)
•
Y==>( cAr( cDrpt o) )==( cADrpt o)
•
Z==>( cAr( cDr( cDrpt o) ) )==( cADDrpt o)
Est onosser vi r ácomor egl apar ar ecor darelnombr edeest asf unci ones.Debesr ecor dart ambi én quet ansol oseper mi t en4ni vel esdeami daci ón,asíqueent r el acyl arsol opuedehaber4l et r as ( AesoDes) . Supongamosquet enemosl asi gui ent el i st aasi gnadaal avar i abl el st=( ( “a”“b”)( “c”“d”)( “e” .OJO! !esunal i st aenl aquesusel ement ossonasuvezl i st as. “ f ” ) ) Puedesdefini rl avar i abl el escri bi endo:( st setq l st( l i st( l i st“a”“b“)( l i st“c”“d“)( l i st“e”“f “) ) )
¿Cómoobt endr í amos“a”?? •
•
devuel ve( queeselpr i merel ement odel ,y“a” eselpr i merel ement o ( carl st ) “a”“b”) st de( asíque: “a”“b”) devuel ve“a”,ol oqueesl omi smo: ( car( carl st ) )
devuel ve“a” ( cAArl st )
yelel ement o“c”? •
•
•
devuel vel al i st asi nelpr i merel ement o,esdeci r( . ( cDrl st ) ( “c”“d”)( “e”“f ”) ) Ahor asihacemos( devuel veelpr i merel ement odel al i st aant er i or ,es cAr( cDrl st ) ) d e c i r( . “c”“d”) Asíque( devuel ve“c”,ol oqueesl omi smo: cAr( cAr( cDrl st ) ) )
devuel ve“c” ( cAADrl st )
Cómoobt ener“d”? •
•
•
•
devuel ve ( cDrl st ) ( ( “c”“d”)( “e”“f ”) ) devuel veelpr i merel ement ode( ,esdeci rdevuel ve(“c” ( cAr( cDrl st ) ) ( “c”“d”)( “e”“f ”) ) “d”) Siahor ahacemos( obt enemos(“d”) ,quenoesl omi smoque“d”.Ya cDr( cAr( cDrl st ) ) ) queset r at adeunal i st acuyopr i merel ement oes“d”. Asíque( devuel ve“d”,ol oqueesl omi smo: cAr( cDr( cAr( cDrl st ) ) ) )
devuel ve“d” ( cADADrl st )
Ycómoobt ener“e”? •
•
devuel ve( ( cDrl st ) ( “c”“d”)( “e”“f ”) ) y( devuel ve( .Oj o!set r at adeunal i st acuyopr i mer( yúni co) cDr( cDrl st ) ) ( “ e”“f ” ) ) el ement oesasuvezot r al i st acondosel ement os.
•
Asíque( devuel ve( ,demodoque cAr( cDr( cDrl st ) ) ) “e”“f”)
•
devuel ve“e”,ol oqueesl omi smo: ( cAr( cAr( cDr( cDrl st ) ) ) )
devuel ve“e” ( cAADDrl st )
Porúl t i mo,veamoscómoseobt i ene“f ”. •
•
•
devuel ve( t alcomosevi oenelej empl oant er i or . ( cAr( cDr( cDrl st ) ) ) “e”“f”) Asíque( devuel ve( ,queosr ecuer doqueset r at adeunal i st a cDr( cAr( cDr( cDrl st ) ) ) ) “ f ” ) yquenoesl omi smoque“f ”. Port ant o( devuel ve“f cAr( cDr( cAr( cDr( cDrl st ) ) ) ) ) ”.
Podr í amospensarque( t ambi éndevuel ve“f oalej ecut arest al í neaAut oCAD cADADDrl st ) ”.Per nosdi cequel af unci óncADADDr noest ádefini da. Yadi j i mosant esquesepuedenagr oaquíest amos uparhast a4f unci onescArycDr,per i nt ent andoagr upar5,yl ógi cament enopodemos.Par aobt ener“f podr í amosescr i bi r ,porej empl o: ” •
( cAr( cDADDrl st ) )
•
( cADADr( cDrl st ) )
( LENGTHl i st a) Enl avar i abl ept t ení amosunal i st aconl ascoor denadasdeunpunt o,per osisol ot r abaj amosen o 2D,l acoor denadaZnonosi nt er esa.Asíquemuchasvecesl ospunt ost ansól ot endr án2 coor denadas( XY) .Per opar aunpr ogr amanoesl omi smoquet enga2que3coor denadas,al o mej orvaabuscarl acoor denadaZynoexi st epr oduci éndoseuner r orennuest r ar ut i na. Asíquenecesi t amosconocerelnúmer odeel ement osquet i enenl asl i st as.Par ael l oseut i l i zal a f unci ónlength,quedevuel veelnúmer odeel ement osdel al i st aquer eci becomoar gument o.Por ej empl o: devuel ve3.ysielpunt opt est uvi er aen2D ( XY)devol ver í a2. ( lengthpt o) o Yquédevol ver í a( ?si endol ver í a3,ya lengthl st ) st= ( ( “a”“b”)( “c”“d”)( “e”“f”) ).Puesdevol quel stesunal i st acon3el ement os,queasuvezsonl i st asdedosel ement oscadauna. Quédevol ver í a( ?Elnúmer odeel ement osdelpr i merel ement odel ,esdec i re l length( carl st ) ) st númer odeel ement osde( “ a”“ b” ) ,quees2.
( LI STel ement o1el ement o2…) Est af unci óndevuel veunal i st af or madaporl osel ement osi ndi cados.Demodoqueseut i l i zapar a crearl i st as.Porej empl o: devuel ve( ( l i st123) 123) devuel ve( ( l i st“pepe”2“Juan“) “pepe”2“Juan”) Veamosquehacel asi gui ent eexpr esi ón:
( l i st( l i st“a”“b“)“c”( l i st“d”“e“)“f “) Recuer daqueenAut oLI SPcuandonosencont r amosconl unasdent r odeot r as, i st asani dadas si empr e seeval úanpr i merol asl i st asi nt eri or es. •
devuel ve( ( l i st“a”“b“) “a”“b”)
•
devuel ve( ( l i st“d”“e“) “d”“e”)
Asíque( devuel vel asi gui ent el i st a( l i st( l i st“a”“b“)“c”( l i st“d”“e“)“f “) ( “a”“b”)“c”( “d”“e”) . “f”)
Ej ecut arcomandosdeAut oCAD Unadel asmayor esvent aj asdel apr ogr amaci ónenAut esl aposi bi l i daddeej ecut ar oLI SP di r ect ament ecomandosdeAut oCADennuest r asr ut i nas.
( COMMAND“comando”[ dat os] ) Est aesl af unci ónquenosper mi t eej ecut arcomandosdeAut oCAD.Haydoscosasat eneren cuent aconest af unci ón: •
•
si empr edevuel veni l l osnombr esdel oscomandosdeAut oCAD,ysusopci ones,sei ndi cancomot ext osporl o quevani ncl ui dosent r ecomi l l as
Di buj ar áunal í neadesdeelor i genal ( command“l i nea”( l i st0. 00. 0)( l i st 100. 0200. 0) ) punt o100,200.Per o,nosf al t aal go:Aldi buj arl í neasenAut oCADsevani ndi candopunt osysi empr e pi de“ ”demodoquepar at er mi narelcomando“ sarI Si gui ent epunt o: LI NEA”hayquepul NTRO. PueseseI nt r ot ambi énhayquepasar l oal af unci óncommand:
( command“l i nea”( l i st0. 00. 0)( l i st100. 0200. 0)“”) Lor eal ment epot ent edeCOMMANDesquepodemosej ecut arcasit odosl oscomandosde Aut oCAD.Cuál esno?Sonmuypocos,porej empl o“ aempezarundi buj onuevo.Per o Nuevo”par t odosl oscomandosdedi buj o,edi ci ón,et c.sepuedenej ecut ar . Losdat osdepender ándelcomandodeAut oCADi ndi cado.Porej empl opar aelcomando“ , ci rcul o“ será: Est odi buj ar áunaci r cunf er enci aderadi o25 concent r oen ( command“ci rcul o”( l i st0. 00. 0)25.0) elor i gen.
Losi di omasdeAut oCAD Supongamosquenodi sponemosdeunaver si ónencast el l anodeAut oCAD,si noqueest áeni ngl és, oenFr ancés,oChi noMandar í n;quépasasiej ecut amosest o:
( command“l i nea”( l i st0. 00. 0)( l i st100. 0200. 0)“”) Aut oCADnoconocer áelcomando“ ,asíquenosdar áuner r or .Porsuer t esepuede l i nea“ sol uci onar ,yaquesi nounpr ogr amar eal i zadopar aAut oCADenFr ancéssól oser vi r í apar al as ver si onesenFr ancés. Aut oCADenr eal i dadno“ habl a”unúni coi di oma,si noqueesbi l i ngüe,di sponedeunal enguaquees l aquemuest r a( quecor r espondeconl aver si óni di omát i cadelpr ogr ama:Cast el l ano,Fr ancés,et c. )y unal enguai nt er na,elI ngl és.
Demodoquel oscomandosdeAut oCAD( ysusopci ones)sepuedenescr i bi renCast el l anooen i ngl és.Per opar adi f er enci arunosdeot r osal oscomandosenl al enguanat i vadeAut oCAD( I ngl és) sel esant eponeungui ónbaj o:
( command“ _ci r cl e”( l i st0. 00. 0)25.0) ( command“ _l i ne”( l i st0. 00. 0)( l i st100. 0200. 0)“”) Lasopci onesdel oscomandost ambi énsedebeni ndi careni ngl ésant eponi endoungui ónbaj o.Por ej empl o: Est al í neadi buj aunaci r cunf er enci adeDi ( command“ _ci r cl e”( l i st0. 00. 0) _ “ d”25.0) ámet r o concent r oenelori gen. 25
ComandosdeAut oCADor i gi nal es Porot r apar t e,yasehadi choant er i or ment equel oscomandosdeAut oCADsepodr í anr edefini r par aquef unci onendef or madi st i nt a.Asísepodr í acambi arelcomando“ aque ci rcul o”par di buj epent ágonosyelcomando“ aquedi buj eci r cunf er enci as. l i nea”par Sir edefini moselcomandol í neapar aquedi buj eci r cunf er enci as,ent oncesdeber í amosi ndi caral go ″ ) s i mi l ara( enl ugarde( .Per o command“l i nea”cent r or adi o) command“l i nea”pt 0pt 1” cómohar í amosent oncespar adi buj arunal í nea? Par aej ecut arl oscomandosor i gi nal esdeAut oCAD,ynol osr edefini dos( sil oest án) debemosant empl o: eponeralnombr edelcomandounpunt o,porej
( command“. ci r cul o”( l i st0. 00. 0)25.0) ( command“. l i nea”( l i st0. 00. 0)( l i st100. 0200. 0)“”) Podemosademási ndi carl oscomandosenI ngl ésant eponi endoungui ónbaj oasíquet ambi én l ospodr í amosescr i bi rasí :
( command“. _ci r cl e”( l i st0. 00. 0)25.0) ( command“ _. ci r cl e”( l i st0. 00. 0)25.0) Dai gualsiseponeant eselpunt ooelgui ónbaj o.
Redefini runcomandodeAut oCAD Par ar edefini runcomandodeAut oCADdebemos: 1.
Ej ecut arelcomando“ EnI ngl és“ )i ndi candoelnombr edel ANULADEF”( undefine“ comandoar edefini r .Deest emodoseel i mi nal adefini ci óndelcomandodeAut oCAD,yl aúni ca f or madeej ecut ar l oser áant eponi endoalnombr edelcomandounpunt o.
2.
Cr earycar garunamacr oenl aqueest édefini dounnuevocomandoconelnombr edel comandoqueacabamosdeanul ar .
Veamosunej empl o: 1.
pr i mer oanul amosl adefini ci óndelcomandol í nea. 1.
Podemoshacer l odesdeAut oCADconelcomando“ Eni ngl és ANULADEF”( “ ) undefine“
2.
2.
odesdeAut oLI SPej ecut ando:( command“anul adef ” “l i nea“)o( command“ _undefine” _ “l i ne“) podemoscompr obarqueelcomandol í neay anof unci ona
1.
2.
Puedest r at ardeej ecut ar l oencast el l ano,eni ngl és,di r ect ament eenAut oCADoen unaexpr esi óndeAut oLI SP l aúni caf or madeej ecut ar l oesant eponi endoasunombr eunpunt o“ . . l i nea“ I ni ci amoseledi t ordeVi sualLI SP:“ Her r .–>Aut oLI SP–>Edi t ordeVi sualLI SP”
3. 1.
Cr eamosl amacr oquesei ndi caacont i nuaci ón,l aguar damosyl acar gamosen Aut oCAD
( defun C: LI NEA() ( setqpt( get poi nt“Cent r odelcí r cul o:“) ) ( setq r ad( getreal“Radi odelcí r cul o“) ) ( command“. _ci r cl e”ptr ad) ) Ahor aelcomando“ buj ar ác í r c ul os . l i nea”di Par ar ecuper arelval oror i gi naldelcomandopodemoshacerdoscosas: 1.
cer r arAut oCADyabr i r l odenuevo,demodoquel amacr oquehemoscr eadosebor r edel a memor i adelor denador
2.
ej ecut arelcomandodeAut oCAD “ EnI ngl ésesi gual ,per oconungui ónbaj o redefine”( del ant e)ei ndi carelnombr edelcomandodelquequer emosr ecuper arsudefini ci ónor i gi nal ,es dec i r“ . l i nea“
Bueno,porúl t i mounej er ci ci o:Cr earunamacr oquedefinaunnuevocomandodeAut oCAD l l amadoCI quedi buj eunaci r cunf er enci ai ndi candosucent r oyl al ongi t uddesuperí met r o. RCPERI
Oper aci onesdecompar aci ón Enest ear t í cul over emosl asf unci onesdeAut oLI SPquenosper mi t enr eal i zarcompar aci ones,por ej empl o,par aversial goesmayorqueal go,omenor ,osiesi gual .
( =expr 1expr 2…) Compar asiexpr 1devuel veelmi smor esul t adoqueexpr 2,encasoafir mat i vodevuel veT yencaso cont r ar i odevuel veni . l devuel veT por que( devuel ve5 ( =5( +14) ) +14) devuel veT aunque( devuel ve5. yno5.Per o5y5. val enl omi smo,no? ( =5( +14. 0) ) +14. 0) 0 0 devuel veT ( =55. 0)
Nosol opodemoseval uarnúmer os,t ambi ént ext os:
( setq t xt 1“CursodeLi sp“) devuel veT ( = t xt 1“CursodeLi sp“) devuel veni .Noesl omi smount ext oenmayúscul asqueenmi núscul as. ( = t xt 1“CursodeLI SP“) l devuel veni ( =“LI SP”“Lisp“) l Est amoscompar andoexpr esi ones,asíque: devuel veT por queambasexpr esi onesdevuel vencomor esul t ado6. ( =( +15 / )(122) ) Laf unci ón= puedeacept armásdedosexpr esi ones: devuel veT,puesl ascuat r oexpr esi onesdevuel ven6o6. ( queval el o ( =6( +15)6. 0( /122) ) 0 mi smo) .
( / =expr 1expr 2…) Esmuysi mi l aral aant er i or .Devuel veT sil asexpr esi onesnodevuel venelmi smoval ory devuel veni sit odasl asexpr esi onesdevuel venelmi smoval or . l devuel veni ,por que6y6. nosondi st i nt os( val enl omi smo) . / (=66. 0) l 0 devuel veT,puesl apr i mer aexpr esi óndevuel ve10 yl asegunda6. / (=( +55 / )(122) ) devuel veT / (=“LI SP”“Lisp“)
(
Elcar áct er“ t i eneasoci adoelcódi go65,l a“B”el66,et c.has t al a“Z”. A”
( >expr 1expr 2…) Supongoqueyaosi magi nái scomof unci ona,no?Compr uebasil asexpr esi onesest ánor denadas demayoramenor . devuel veT ( >53) devuel veni ( >23) l devuel veni ( >523) l devuel veT ( >543) Yahor aconl ost ext os: devuel veni ,pueselcódi goASCI Ide“a” esmenorqueelde“c”. ( >“a”“c“) l
( <=expr 1expr 2…) Compr uebasil asexpr esi onessonmenor esoi gual esquel asant er i or es. devuel veT ( <=122. 03) devuel veni ( <=13. 023) l
( >=expr 1expr 2…) Compr uebasil asexpr esi onessonmayor esoi gual esquel asant er i or es devuel veT ( >=322. 01) devuel veni ( >=31. 021) l devuel veT ( >=3333)
Macr odeej empl o Veamoscómosehar í aelej er ci ci opr opuest oenelart í cul oant er i or :Cr earunnuevocomando l l amadoCI quedi buj eunaci r cunf er enci ai ndi candosucent r oyl al ongi t uddesuperí met r o. RCPERI ¿Quéesl opr i mer oquehayquehacer ?Est ar espuest at i enequeseri nst i nt i va,comounact o r e fl e j o :Elpseudocódi go. Si empr ecomenzar emosnuest r asr ut i nasescr i bi endoelpseudocódi go( ohaci endoundi agr amade fluj o)del oquesepr et endehacer .Bi en,cómopodr í aserelpseudocódi godeest ar ut i na?,vamosa ver: 1.
Pedi ralusuar i oelcent r odel aci r cunf er enci a.
2.
Pedi ralusuar i oelper í met r odel aci r cunf er enci a.
3.
Cal cul arelr adi odel aci r cunf er enci aapart i rdesuper í met r o.
4.
Di buj arl aci r cunf er enci a.
Unavezquet er mi namoselpseudocódi go,yat enemosel80% del ar ut i na.Sielpseudocódi goes cor r ect o,elt r aduci r l oacódi goesdel omássi mpl e.
I ni ci amosenedi eamosuna t ordeVi sualLI SP “ Herr .–>Aut oLI SP–>Edi t ordeVi sualLI SP”ycr nuevamacr o.Pr i mer ohayqueañadi rl adefini ci óndelnuevocomandoCI RCPERI :
( defun C: CI RCPERI() Vamosaverqueesl oquenosi ndi caelpseudocódi go: 1)Pedi ral us uar i oel c ent r odel ac i r c unf er enc i a. Podr í amosescr i bi r( get poi nt “Cent r odel a per ot endr í amosqueal macenarelpunt oi ndi cadoenunavar i abl e,asíque circunferencia”) añadi r emos… ‘ al macenaelpunt ocent r odel aci r cunf er enci a ( setq pt o( get poi nt“Cent r odel aci r cunf erenci a“) ) enl avar i abl ept o. 2)Pedi ral us uar i oel per í met r odel ac i r c unf er enc i a .Por ej empl o( per oalusargetint ,sol oper mi t eobt enernúmer oent er os. setq peri( getint“Per í met r o: “) ) Asíquepodr í amoscambi ar l opor : al macenaelper í met r odel aci r cunf er enci aenl avar i abl eper i ( setq peri( getreal“Per í met r o: “) )‘ 3)Cal c ul arel r adi odel ac i r c unf er enc i aapar t i rdesuper í met r o .Per i=2*pi*r adasíquer ad=Per i/ (2*pi ) .Tr aduci endoest af ór mul aacódi go: c al c ul aelv al ordelr adi odel ac i r cunf er enci a ( setq r ad( / peri( *pi2) ) )‘ 4)Di buj arl ac i r c unf er enc i a di buj al aci r cunf er enci a ( command“ _. ci r cl e”pt or ad)‘ Sól onosf al t aunacosa.Recuer da:Elnúmer odepar ént esi sdeapert ur at i enequeseri gualal númer odepar ént esi sdeci er r e.Asíque:
) Elcódi gocompl et odel ar ut i naser í a:
( defun C: CI RCPERI() ( setq pt o( get poi nt“Cent r odel aci r cunf erenci a“) ) ( setq peri( getreal“Per í met r o: “) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ) Tambi éndeber í asañadi rcoment ar i osalcódi goyunacabecer aconvar i asl í neasdecoment ar i osen elar chi vo. LSPi ndi cando:Elnombr edel ar ut i na,f echa,aut or ,et c. ¿Tedascuent adel ai mpor t anci adelpseudocódi go?Alpr ogr amarnoshagui adopasoapaso.
Oper aci onesl ógi casenAut oLI SP Exi st eunaseri edef unci onesdeAut oLI SPquenosper mi t enr eal i zaroper aci onesl ógi cas.Suel en empl ear seencombi naci ónconl asoper aci onesdecompar aci ón.
( ANDexpr 1expr 2…)
Est af unci óndevuel veT sini ngunadel asexpr esi onesquer eci becomoar gument oes( devuel ve)ni . l Siunasol adel asexpr esi onesdevuel veni ,l af unc i ónAND devol ver áni .Esdeci r ,compr uebaque l l secumpl ant odasl asexpr esi onesquer eci becomoar gument o. devuel veT,por quel asdosexpr esi onesdevuel venT ( and( <34)( =55. 0) ) devuel veni ,por que( devuel veni ( and( >34)( =55. 0) ) l >34) l Enelej empl oant er i or ,comol apr i mer aexpr esi ón( devuel veni ,yanosecont i núaneval uando >34) l elr est odeexpr esi ones.Cómohayunaexpr esi ónquedevuel veni ,AND devol ver áni .Demodo l l quel aexpr esi ón( yanoseeval úa. =55. 0) Vamosacompl i car l ounpoco… Quédevol ver ál asi gui ent eexpr esi ón?
( and( =55. 0)( <34)“Soyunt ext o”5. 8) Pr egunt andodeot r af or ma:¿Al gunadel asexpr esi onesquer eci beANDcomoar gument osesni ? l No,asíqueAND devuel veT.
( setqa“Soyot r ot ext o”b15cTdni l ) devol ver áT ( andab) ver á ( andad)devol ni lporquedesni l devol ver áni ,por quedesni ( and abcd) l l
( ORexpr 1expr 2…) Devuel veni sit odasl asexpr esi onessonni .Encasodequeal gunadel asexpr esi onesno l l devuel vani ,ORdevuel veT.Esdeci r ,compr uebasial gunadel asexpr esi onessecumpl e. l devuel veni ,por queambasexpr esi onessonni ( o / r(=55. 0)( >34) ) l l devuel veT,puesl apr i mer aexpr esi ónsecumpl e ( or( =55. 0)( >34) ) Enelej empl oant er i or ,comol apr i mer aexpr esi ón( devuel veT,yano =55. 0) secont i núaneval uandoelr est odeexpr esi ones.Cómohayunaexpr esi ónque devuel veT,OR devol ver áT.Demodoquel aexpr esi ón( yanoseeval úa. >34)
( setqa“Soyot r ot ext o”b15cTdni l ) devuel veT ( orab) devuel veni ( orcd) l devuel veni ( ordd) l
( EQUALexpr 1expr 2[ pr eci si on] ) Enelt emaant er i orvi mosl af unci óndecompar aci ón= quenossi r vepar adet er mi narsidosnúmer os ot ext ossoni gual es.Per oquepasasiquer emoscompar arot r acosa,porej empl odosl i st as( como dospunt os) .
( setq pt 1( l i st10. 020. 00. 0) pt 2( l i st10.0( *10. 02)0. 0) pt 3( l i st9. 9920. 00. 0) pt 4( l i st9. 9920. 02 0. 0) ) Alcompar arest asl i st as( punt os)conl af unci ón= si empr enosdevuel veni .Aunquept sean l 1ypt 2 i gual es,ymuypar eci dosapt ant o,l af unc i ón= nonosser vi r ápar acompar ar 3ypt 4.Port l i st as.Par acompar ardosl i st asseut i l i zar ál af unci ónEQUAL. devuel veT,ali gualquel af unci ón=,por que5 val el omi smoque5. ( equal55. 0) 0
devuel veT ( equal pt 1pt 2) ademásof r eceunar gument oopci onal …[ .Veamoscómof unci ona: EQUAL precisión] devuel veT,por quecompar a4.99y5 per oconunapr eci si ónde0. ( equal4. 995. 00. 1) 1.Asíque conesapr eci si ón4.99==5. 0 Si nembar go,sisubi mosl apr eci si ón… devuel veni ( equal4. 995. 00. 001) l ¿Yquépasaconl asl i st as?¿Tambi énpodemosi ndi car l eunapr eci si ón?Veamos. . devuel veT,por quecompar al osel ement osdel asl i st as( coor denadas)conl a ( equal pt 1pt 30. 1) pr eci si ónquehemosi ndi cado,0. 1 Sisubi mosl apr eci si ón… devuel veni ( equal pt 1pt 30.001) l devuel veni ( equal pt 1pt 40.01) l devuel veT,por quel apr eci si ónes0.02 queesexact ament el adi f er enci a ( equal pt 1pt 40.02) entre20.02y20 Elut i l i zarunapr eci si ónmuyel evadanoi mpl i caquet odasl ascompar aci onesdevuel vanT,t odo depender ádel osval or esacompar ar : devuel veT ( equal1520100) devuel veni ( equal50004200100) l
( NOTexpr ) Aest af unci ónl egust al l evar l el acont r ar i aal aexpr esi ónquer eci becomoar gument o. •
sil aexpr esi óndevuel veni ,ent oncesNOT devuel veT. l
•
sil aexpr esi óndevuel vecual qui ercosaquenoseani ,ent oncesNOT devuel veni . l l
devuel veni ( not5) l devuel veni ( not“Texto“) l devuel veni ( not( +51) ) l Sihacemos…
( setqa5bni lcTd“Nuevot ext o“) devol ver áT,por quebesni ( notb) l devol ver áni . ( notc) l Veamosquedevuel vel asi gui ent eexpr esi ón:
( and( notc)5) ComocesT,( devuel veni .Alnocumpl i r sel apr i mer aexpresi óndeAND,est adevuel veni notc) l ly nocont i núaeval uando.
Est r uct ur ascondi ci onal essi mpl es Hast aahor anuest r ocódi gohasi docompl et ament el i neal ,l asl í neasdecódi goqueescr i bí amos seej ecut abanunat r asot r aenelmi smoor den.Enest et emaver emosunt i podef unci onesque nosper mi t i r ánbi f ur carelcódi go,demodoqueyanoexi st aunúni cocami nosi nodosomás. Veamosunej empl oenpseudocódi go: 1.
I nt r oduci rell í mi t ei nf er i or
2.
I nt r oduci rell í mi t esuper i or
3.
¿Ell í mi t esuper i oresmenorqueeli nf er i or ? 1.
SI –>Mensaj e“ Ell í mi t esuper i ordebesermayorqueeli nf er i or ”
2.
NO –>i nt er val o=l í mi t esuper i or–l í mi t ei nf er i or
( I Fcondi ci ónexpr _si _cumpl e [ expr _no_cumpl e] ) Laf unci ónI esunadel asmásempl eadasalpr ogr amar .Devuel veelval ordel aúl t i maexpr esi ón F eval uada.Sicondi ci ónesdi st i nt adeni ,ent onceseval úal aexpr ci ón l _si _cumpl e.Sicondi devuel veni eval úal aexpr st eysinoexi st enohacenada.Veamosal gunos l _no_cumpl e,siexi ej empl os:
( i f( =22. 0)( alert“Losnúmer ossoni gual es“) ) Lacondi ci ónaeval uares:( enl aquet enemosunnúmer oent er o2 yunor eal2. osu =22. 0) 0,per val oreselmi smo.Aunqueseandedi st i nt ot i po2y2. val eni gual .Asíquel acondi ci ón 0 devuel veT,eval uándosel acondi ci ónsicumpl equemuest r aunmensaj edeal ert a.La f unci ónI devuel veelval ordel aúl t i maexpr esi óneval uada,esdeci ra ,queesni . F lert l
( i f( =23)( alert“Losnúmer ossoni gual es“) ) Enest ecasol acondi ci óndevuel veni yalnoexi st i rexpr esi ónnocumpl e,nohar í anadamás.¿Qué l val ordevol ver í aI empr e,elval ordel aúl t i maexpr esi óneval uada,queenest ecasoha F?Eldesi si dol apr opi acondi ci ónquedevuel veni .DemodoqueI devol ver áni . l F l
( i f( =23) ( alert“Losnúmer ossoni gual es“) ( alert“Losnúmer ossondi st i nt os“) ) Enest ecasoelcódi gosehaescr i t oenvar i asl í neasyt abul adopar af aci l i t arsucompr ensi ón.Ahor a sit enemosunaexpr esi ónnocumpl e,queser áeval uadayaquel acondi ci óndevuel veni . l Veamoselsi gui ent eej empl o:
( setq l i mi nf( getint \ “nLí mi t ei nf er i or : “) ) ( setq l i msup( geti nt “\ nLí mi t esuper i or : ”) ) ( i f( > l i mi nfl i msup)
( alert“Ell í mi t esuperi ordebesermayorqueeli nf eri or“)( setq l i msup( geti nt \ “nLí mi t e superior: “) )( setq i nt erval o( l i msupl i mi nf ) ) ( setq i nt erval o( l i msupl i mi nf ) ) ) Vi endoelcódi goant er i or ,t alvezpi ensesquesil acondi ci ón( secumpl e,ent onces > l i mi nfl i msup) seeval uar ál al í neasi gui ent edecódi gocompl et a.Per onoesasí ,seeval úal aexpr esi ónsicumpl e, queesl . apr i meraexpr esi ón( alert“Ell í mi t esuperi ordebesermayorqueeli nf eri or“) Sil acondi ci ónnosecumpl e,devuel veni ,seeval uar ál aexpr esi ónnocumpl e,queenest ecaso l será( . setq l i msup( geti nt \ “nLí mi t esuper i or“) )
Tant ol aexpr esi ónsicumpl e,comol anocumpl esol opuedenserunaúni caexpr esi ón .El ej empl odecódi goant er i ornosdar í auner r oryaqueI nopuedet enermásque3expr esi ones: F •
Lacondi ci ón
•
Laexpr esi ónsicumpl e
•
Laexpr esi ónnocumpl e
( PROGNexpr 1expr 2…) Par aquesepuedai ndi carmásdeunaexpr esi ónsicumpl e,onocumpl e,enl af unci ónI sesuel e F empl earl af unci ónPROGN.Elval ordevuel t oporPROGN eseldel aúl t i maexpr esi ónquer eci be comoar gument o.Est af unci ónenr eal i dadnohacenada,t ansol onosper mi t eagr uparunaser i ede expr esi ones. ¿Cómoquedar í aelej empl oant er i or ?
( setq l i mi nf( getint \ “nLí mi t ei nf er i or : “) ) ( setq l i msup( geti nt \ “nLí mi t esuper i or : “) ) ( i f( > l i mi nfl i msup) ( progn ( alert“Ell í mi t esuperi ordebesermayorqueeli nf eri or“) ( setq l i msup( geti nt \ “nLí mi t esuper i or : “) ) ( setq i nt erval o( l i msupl i mi nf ) ) ) ( setq i nt erval o( l i msupl i mi nf ) ) ) Enest ecasol acondi ci ónsicumpl eest odol osi gui ent e:
( progn ( alert“Ell í mi t esuperi ordebesermayorqueeli nf eri or“) ( setq l i msup( geti nt \ “nLí mi t esuper i or : “) ) ( setq i nt erval o( l i msupl i mi nf ) ) )
Sisecumpl el acondi ci ón,seeval úal acondi ci ónsicumpl e,esdeci rel progn.Demodoquesevan eval uandol asexpr esi onescont eni dasenl af unci ónPROGN,quedevuel veelval ordel aúl t i ma expr esi ón( queser áelval ordel avar i abl ei nt er val o. setq i nt erval o( l i msupl i mi nf ) ) , Encasodequel acondi ci ónnosecumpl a,seeval úal acondi ci ónno cumpl e,( quecur i osament et ambi éndevuel veelval ordel avar i abl e setq i nt erval o( l i msupl i mi nf ) ) i n t e r v a l o . Veamosahor aal gunosej empl osmásdeest r uct ur ascondi ci onal es:
( i f( and( =22. 0)( <23) ) ( alert“Lasdoscondi ci onessecumpl en“) ( alert“Almenosunacondi ci ónnosecumpl e“) ) Enest ecasol acondi ci ónes( queenest ecasodevol ver í aT,yaquese and( = 22. 0)( <23) ) ver i ficanl asdosexpr esi onesquer eci bel af unci ónAND.
( i f( not var 1) ( alert“Var i abl enodefini da“) ( alert“Var i abl edefini da“) ) Enest ecasosivar1esni ,( devol ver áT,i ndi candoquel avar i abl enosehadefini do.En l not var 1) casocont r ar i o,( devol ver áni eval uándosel aexpr esi ónnocumpl e.Ot r omét odopar ahacer notvar 1) l l omi smo,ser í a:
( i f var 1 ( alert“Var i abl edefini da“) ( alert“Var i abl enodefini da“) ) Sivar1 esdi st i nt odeni ,seeval úal aexpr esi ónsicumpl e.Encasodequevar1 seani ,se l l eval uar í al aexpr esi ónnocumpl e.
Est r uct ur ascondi ci onal esmúl t i pl es Conl af unci ónI t ansol opodemosi ndi carunacondi ci ónydosopci ones,sicumpl eynocumpl e. F Veamosahor acomosepuedeni ndi carv ar i ascondi ci onesconsusr espect i vasexpr esi onessi cumpl e.
( COND( condi ci on1[ expr 1_1][ expr 1_2] … )[( condi ci on2[ expr 2_1][ expr 2_2]… )] …) Est af unci ónessi mi l araI encuant oaquesei ndi cancondi ci onesyunaser i edeexpr esi onesque F seeval uar ansisever i ficacadacondi ci ón.Enest ecasonoexi st el al i mi t aci óndei ndi cart ansól o
unaúni caexpr esi ónsicumpl e,sepuedeni ndi cart ant ascomosedesee. eval uar ál apr i mer a COND condi ci ónencont r ada,sisever i ficaeval uar ál asexpr esi onessicumpl ededi chacondi ci ón.Encaso dequenosever i fique,eval uar ál asi gui ent eexpresi ón. Porl ot ant o,COND eval uar ál asexpr esi onessicumpl edel apr i mer acondi ci ónquesever i fique.Y devol ver áelr esul t adodeeval uarl aúl t i maexpr esi ónsicumpl e.Pongamosunej empl o:
( cond ( ( =ab) ( alert“AyBsoni gual es“) ( setqb( getreal“I nt r oduzcadenuevoB:“) ) ) ( (
¿Yquésucedesiseponel acondi ci ónT comopr i mer acondi ci ón?Puessucedequel asqueest éna cont i nuaci ónnuncaseeval uar án,yaqueT si empr esecumpl i r á.Sienelej empl o ant er i orhubi ér amospuest o:
( cond ( T ( alert“Anoesi gualaB“) ( alert“AnoesmenorqueC“) ( alert“AnoesmenorqueB“) ) ( ( =ab) ( alert“AyBsoni gual es“) ( setqb( getreal“I nt r oduzcadenuevoB:“) ) ) ( (
Most r art ext osalusuari oenAut oLi sp Hayvar i asf unci onespar amost r art ext osalusuar i oenAut oLi sp.Demoment ovamosaverunparde el l as,per ohabr ámás.
( PROMPTmensaj e) Muest r aelt ext oi ndi cadocomoar gument oenpant al l a,ysi empr edevuel veni . l
( pr ompt“Bi enveni dosalCur so“)
( ALERTmensaj e) Muest r aelt ext oquer eci becomoar gument oenunl et r er o.Tambi éndevuel veni .Seut i l i za l pr i nci pal ment epar aavi saralusuar i oencasodeer r or ,opar amost r aral gunai nf or maci ón i mpor t ant e.
( alert“Er r or :Dat onovál i do“)
( TERPRI )
Enar t í cul ocor r espondi ent eal asOper aci onesdecompar aci ón,cr eamosunnuevocomandopar a Aut oCADdenomi nadoCI .Sihascar gadoyej ecut adoelcomando,habr ásobser vadoque RCPERI l osmensaj espar asol i ci t arelcent r odel aci r cunf er enci aysuper í met r oapar ecenenl ami smal í nea del avent anadecomandosysi nsepar aci ónent r esí ,est ánpegados. Par aquel osmensaj esapar ezcanenl í neasdi st i nt as,sepuedeempl earl af unci ónTERPRI .Est a f unci ónmueveelcur soraunanueval í neaenl avent anadecomandosdeAut oCAD,ydevuel veni . l Elcódi godel ar ut i naquedar í aasí :
( defun C: CI RCPERI() ( setq pt o( get poi nt“Cent r odel aci r cunf erenci a“) )( t erpri ) ( setq peri( getreal“Per í met r o: “) )( t erpri ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ) Asíl osmensaj esdesol i ci t udapar ecer ánenl í neassepar adas.
Loscar act er esdecont r ol Comoyasehacoment adoant er i or ment e,Aut oLI SPnor econoceunaser i edecar act er es.Por ej empl o,ali ndi carl ar ut adeunar chi vonor econoceelcar áct e r“ ”yhayquei ndi car l oasí :“\ “ .Pues \ \ exi st enmáscar act er esdecont r olpredefini dos: •
Equi val ealcar act e r \ \ \
•
Equi val ealcar act er“ \ ”
•
Equi val eaESCape \ e
•
Equi val ealr \ n et or nodecarr o
•
Equi val eapul sarI \ r nt r o
•
Equi val eapul sarl at \ t ecl adelt abul ador
nosper mi t eescr i bi rl ascomi l l asdent r odeunt ext o.Porej empl o: \ ”
( alert“Est osonunpardecomi l l as\ ”ono?“) Laúni cacomi l l aqueset i enequeveresl aqueest áescr i t aas í :” .Lasot r asnosi ndi candonde \ comi enzayt er mi naelt ext o,nadamás.
( alert“Text oenl í nea1\ nText oenl í nea2“) Sepone1\ j unt o.Par aquéponerespaci os? nText ot odo
( alert“Text oenl í nea1\ nText oenl í nea2“) Sil oponemosasí ,añadeunespaci oenbl ancoalpr i nci pi odel asegundal í nea.Poresosepone t odosegui do.
( alert“Text oenl í nea1\ n\ t Text oenl í nea2“) Enest eej empl ol asegundal í neaest át abul ada.
Ent onces,¿cómoquedar í aelcódi godel ar ut i naCI ut i l i zandocar act er esdecont r ol ,enl ugar RCPERI del af unci ón( ? TERPRI )
( defun C: CI RCPERI() ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a“) ) ( setq peri( getreal \ “nPer í met r o: “) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ) Unpardecosasmásconr espect oaest ar ut i na… Cuandosecr eaunar chi voLI SPenelqueest á defini dounnuevocomandoesbast ant eút i lañadi ralfinaldet odoelcódi goal gosi mi l ara…
( pr ompt \ “nNuevocomandoCI RCPERIcar gado“) Est al í neasepondr í adespuésdelpar ént esi sdeci er r ededefun.Esdeci r ,quecuandose ej ecut aCI desdeAut oCADest al í neanoseeval úa.¿Par aquéponer l aent onces?Puesmuy RCPERI senci l l o… par aquecuandosecar gueelar chi voenAut oCADmuest r eenpant al l a: Nuevocomando i osabecualeselnombr edelcomandodefini doenelar chi voque CI RCPERIcar gado.Asíelusuar seacabadecar gar .Demodoqueelmensaj esól osemost r ar áalcar garelar chi vo. Porot r ol ado… sir ecor damosl aest r uct ur adel af unci ónDEFUN:( DEFUNnombr e_f unci ón (ar gument os/vari abl es_l ocal es)expr 1expr 2…) Ver emosqueenl ar ut i naCI nohemosi ndi cadovari abl esl ocal es,asíquet odasl as RCPERI var i abl esser ángl obal es.Esdeci rquealej ecut arCI ydi buj aruncí r cul o,l uegonosquedan RCPERI accesi bl esl osval or esdel asvar i abl espto,periyr desdeAut oCAD,ocupandoymal gast ando ad memor i a.Asíquevamosaponer l ascomol ocal es.Sól ohabr í aquecambi arl asi gui ent el í nea…
( defun C: CI RCPERI / ( pt operir ad) OJO!l abar r ai ncl i nad a hayqueponer l a,si noser í anar gument osynovar i abl esl ocal es. / Elcódi gocompl et odel ar ut i naeselsi gui ent e:
; ; ; ____________________Eduar doMagdal ena____________________; ; ; ; ; ; ______________________CI RCPERI . LSP_________________________; ; ; ; ; ; _______________________Ver si ón1. 1_________________________; ; ; ; ; ; ________________________26/ 02/ 2002_________________________; ; ; ; ; ;Comandopar adi buj arunaci r cunf er enci ai ndi candosucent r oyl al ongi t ud ; ; ;desuperí met r o. ( defun C: CI RCPERI / ( pt operir ad) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a“) ) ( setq peri( getreal \ “nPer í met r o: “) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“)
Lasvar i abl esdesi st emadeAut oCAD Elmodoenquef unci onaelent or nodeAut oCAD,yl af or madet r abaj ardemuchosdesus comandos,sevenaf ect adosporl osval or esasi gnadosal asvar i abl esdesi st ema.Podr í adeci r se quecont r ol ancomot r abaj aAut oCAD.Porl ot ant o,sepuedenmodi ficarl osval or esasi gnadosal as var i abl esdesi st emapar aper sonal i zarAut oCADpar aunusuar i oenconcr et o,par aunt i podet r abaj o det er mi nado,ei ncl usopar aunar chi vodedi buj o.Demodoquenosf aci l i t eelt r abaj o.
Ti posdevar i abl esdesi st ema Lasvar i abl esdesi st emapuedenal macenardi st i nt ost i posdedat os,enf unci óndel ai nf or maci ón quecont engan.Podr í ancl asi ficar sedelsi gui ent emodo: •
i abl esdesi st emasól oadmi t endosopci ones:Act i vada Act i vada/Desact i vada.Muchasvar yDesact i vada.Nor mal ment et i enenasi gnadoelval or“ ándesact i vadas,y“ 1 0”cuandoest cuandoest ánact i vadas.Unej empl odeest et i podevar i abl eses“ . bl i pmode“ ″
•
•
•
•
•
r asvar i abl est i enenmásdedosposi bi l i dades,par al oqueasi gnanun Númer osent er os.Ot númer oent er opar acadaopci ón.Nor mal ment eempl eannúmer oscor r el at i vos,empezando desdeelcer o.Unavar i abl equeut i l i zaest et i podedat oses“ . coords“ gunasvar i abl espuedenempl earvar i asopci onesal avez,par al oque Códi gosbi nar i os.Al suel enempl earcódi gosbi nar i os.Acadaopci ónsel easi gnaelnúmer or esul t ant ede el evar2an.Asi gnandoan númer osent er oscor r el at i vosapar t i rdelcer o.Esdeci r ,l osval or es par al asdi st i nt asopci onesser án:1, 2, 4, 8, 16, 32, et c.Demodoquepar asel ecci onarl apr i mer ay cuar t aopci ones,hayqueasi gnaral avar i abl el asumadesusval or es:1+8=9.Unej empl omuy i nt er esant edeest et i podevar i abl eses“ . osmode“ i abl esqueal macenanval or esdeángul osodi st anci as,por Númer osreal es.Lasvar ej empl o,ut i l i zanest et i podeval or es.Unej empl odeest et i poesl avar i abl e“ . chamf er a“ et i podeent i dadesal macenanl ascoor denadasdeunpunt o,unbuenej empl o Punt os.Est es“ . ucsorg“ ant esvar i abl esqueal macenancadenasdet ext o,como Cadenasdet ext o.Haybast nombr esdear chi vosorut asdedi r ect or i os.Ej empl osdeest et i podevar i abl esson“ ”y acadver “ . acadprefix“
Modi ficarl osval or esdel asvar i abl esde si st ema Podr í amoscl asi ficarl asvar i abl esdesi st emaenf unci óndell ugarenelqueseguar dan: •
•
nf or maci ónasi gnadaaest et i podeent i dadesnoseguar da.Unej empl o Noguar dadas.Lai deest et i podevar i abl eses“ “ . acadver í adel asvar i abl esdesi st emasondeest et i po,demodoquecada Eneldi buj o.Lamayor di buj ot r abaj ar áconunosval or esdet er mi nadospar al asvar i abl esdesi st ema.Est ohace
sumament ei mpor t ant el adefini ci óndel osval oresdel asvar i abl esdesi st emaenl aspl ant i l l as ut i l i zadaspar acr earnuevosdi buj os.Unej empl odevar i abl eguar dadaeneldi buj oes“ . luprec“ •
gunasvar i abl esdesi st emaseguar danenelr egi st r odeWi ndows.Por Enelr egi st r o.Al ej empl o“ . at t di a“
Lamayor í adel asvar i abl esdesi st emadeAut oCADpuedenedi t ar se,modi ficandoelval orque t enganasi gnado.Per oal gunasvar i abl essondesol ol ect ur a,demodoquenosepuedenmodi ficar , t ansol ol eer .Unej empl odevar i abl edesol ol ect ur aes“ . cdate“ Hayvar i osmét odospar amodi ficarl osval or esasi gnadosal asvar i abl esdesi st emadeAut oCAD: •
Tecl eandoelnombr edel avar i abl e,comosif ueseuncomandomásdeAut oCAD.
•
Ej ecut andoelcomando“ ndi candol avar i abl eamodi ficar . MODI VAR”ei
•
•
Al gunoscomandosdeAut oCADper mi t enmodi ficarl osval or esasi gnadosaal gunas var i abl esdesi st ema.Porej empl oelcomando“ t emodi ficarelval orasi gnado MARCAAUX”permi al avar i abl e“ . bl i pmode“ Al gunasvar i abl essemodi ficanalej ecut aral gúncomandodeAut oCAD.Porej empl o “ macenaelr adi odel aúl t i maci r cunf er enci acr eadaconelcomando“ . circlerad”al cí rcul o“
Lasvar i abl esdesi st emaenl os pr ogr amasdeAut oLI SP Lospr ogr amador essuel enl eerymodi ficarelcont eni dodeal gunasvar i abl esdesi st emade Aut oCAD,yaqueest ol esper mi t edefini relmodoenelquedeseanquesecompor t eAut oCADo al gunoscomandosdeAut oCAD. Est opuedeocasi onarcambi osenl osval or esasi gnadosaal gunasdel asvar i abl esdesi st ema.Al pr ogr amardeber í assegui rl ossi gui ent esconsej ospar aqueest onosuceda: •
•
Deber í asguar darl osval or esi ni ci al esdel asvar i abl esdesi st emaquesenecesi t emodi ficar , yasi gnar l essusval or esi ni ci al esalt er mi narelpr ogr ama. Cr earunaf unci óndet r at ami ent odeer r or es,demodoquesisepr oduceal gúner r oral ej ecut arelpr ogr amaser est abl ezcanl osval or esi ni ci al esdel asvar i abl esdesi st ema.La cr eaci óndef unci onesdet r at ami ent odeer r or esl at r at ar emosmásadel ant e.
( GETVARvar i abl e) Est af unci óndevuel veelval orasoci adoal avar i abl equer eci becomoar gument o.Porej empl o:
( getvar“osmode“) ( getvar“bl i pmode“) ( getvar“acadver “)
( SETVARvar i abl enuevo_val or )
Asi gnaal avar i abl ei ndi cadaunnuevoval or ,ydevuel vedi choval or .
( setvar“bl i pmode”0) ( setvar“osmode”32) Veamosunej empl ocombi nandol asf unci onesGETVARySETVAR.Escr i bel osi gui ent eenl al í nea decomandosdeAut oCAD:
( getvar“luprec“) ( setvar“luprec”2) ( getvar“luprec“)
Funci onesdeconver si óndedat osenAut oLI SP Vamosaverunaser i edef unci onesquenosper mi t i r ánpasarunent er oar eal ,aunt ext ooal revés…
( I TOAent er o) Convi ert eunent er oenunt ext o.I nt egerTO At om. devuel ve“ ( i t oa24) 24”
( ATOIt ext o) Hacej ust ol ocont r ar i oquel af unci ónant er i or .Convi er t eunt ext oenunnúmer o.At om TO I nt eger devuel ve24 ( atoi“24“) devuel ve( atoi“7“) 7 Yquepasasihacemos… ( puesquedevuel ve0.Si empr equeescr i besal go atoi“soyunt ext o“) quenoseaunnúmer odevuel vecer o. devuel ve15 ( atoi“15.3“) devuel ve15 ( atoi“15. 99999“)
( FLOATnumer o) Convi er t eunnúmer oenr eal ,asíquel ol ógi coesquer eci baunent er ocomoar gument o. devuel ve5. ( float5) 0 per ot ambi énpodemospasarunnúmer or ealcomoar gument o… ( quedevuel ve5.36l o float5. 36) cualser í aunat ont er í apor queenesecasol af unci ónfloat nohacenada.
( ATOFt ext o) Convi er t eunt ext oenr eal .
devuel ve15.7 ( atof“15.7“) devuel ve15.0 ( atof“15“) devuel ve( atof“1 5 . 7“) 1 5 . 7 devuel ve0. ( atof“soyunt ext o“) 0
( RTOSnumer o[ modo[ pr eci si on] ] ) Laúl t i maf unci óndeest et i poquevamosaveresal gomáscompl i cada,per onomucho.Convi ert e unr ealent ext o.RealTO St r i ng. devuel ve“ ( rt os2. 5) 2. 5” devuel ve“ ( rt os2) 2”yno“ 2. 0” Veamospar aquési r venl osar gument osopci onal es[ modo[ pr eci si ón] ] . mi t ei ndi carunt i po Modo,per par aexpresarl osnúmer os,esdeci r ,per mi t esel ecci onarel par al osnúmer os.Hay f or mat out i l i zado 5opci ones: •
Format oci ent í fico.
•
Deci mal .Eselqueseusahabi t ual ment e.
•
Pi esypul gadas.
•
Pi esypul gadasenf r acci ones.
•
Fr acci ones.
Porej empl o… devuel ve“ ( rt os2. 55) 21/ 2” devuel ve“ ( rt os2. 51) 2. 5000E+00” Pr eci si ónnosper mi t edefini relnúmer odedeci mal esquedeseamos,porej empl o: devuel ve1.235 asíquer edondeaelnúmer opar aquet enga3deci mal es. ( rt os1. 2345678923) devuel ve10 ( rt os9. 9920)
Obt enerdi st anci asyángul osdelusuar i o Hemosvi st ocomoseobt i enennúmer os,punt osyt ext osdelusuar i o.Ahor al evamosasol i ci t ar di r ect ament eunadi st anci aounángul o.
( GETDI ST[ pt o_base][ mensaj e] ) Sol i ci t aunadi st anci aydevuel veesadi st anci acomounnúmer or eal .Elusuari opodr ái ndi carl a di st anci apormedi odeunnúmer ooi ndi cando2punt osenpant al l a.
( getdist“Di st anci adedespl azami ent o:“)
Elmensaj eesopci onal ,per ocasisi empr eseut i l i za.Tambi énpodemosasi gnarelr esul t adoauna v a r i a b l e :
( setq di st 1( getdist“Di st anci adedespl azami ent o:“) ) Enmuchasocasi onessepueder eempl azaral af unci ónGETREAL porGETDI sil oquesepi de ST sepueder el aci onarconal gunadi st anci adeldi buj o.Porej empl o,ennuest r a r u t i n aCI podr í amosdi buj arunaci r cunf er enci adeper í met r ol al ongi t uddeunar ect a. RCPERI Elar gument oopci onal[ pt o_base]f unci onademodosi mi l aracomol ohace enGETPOI per mi t i endoi ndi carl adi st anci aapar t i rdeunpunt odeor i genyapr edefini do: NT
( setq pt o( get poi nt“Punt obase“) ) ( setq di st 1( getdist pt o“Di st anci adedespl azami ent o:“) )
( GETANGLE[ pt o_base][ mensaj e] ) Sol i ci t aunángul oalusuar i oquepuedeescr i bi r l oodesi gnar l opormedi odedospunt os.Devuel veel ángul oenr adi anes,aunqueelusuar i ol oescr i bi r í aenl asuni dadesact ual es( gener al ment egr ados deci mal es) .Porej empl o,al aexpr esi ón:
( getangle“Ángul o:“) elusuar i or esponde… 180.0 ygetangle,devuel vepi . Est af unci ónt omacomoori gendeángul oselact ual ,quesuel ecoi nci di rconelsent i doposi t i vodel ej eXdelSCU( osi empr econsi der ar ácomosent i do Si st emadeCoor denadasUni ver sal ).Per posi t i vodel osángul osel ant i horari o. Elpar ámet r oopci onal[ pt o_base]per mi t ei ndi carunpunt oapar t i rdelcuali ndi carelángul o.
( GETORI ENT[ pt o_base][ mensaj e] ) Escasii gualaGETANGLE,yt ambi énseut i l i zapar asol i ci t arunángul oalusuar i o.Laúni ca di f er enci aesqueelor i gendeángul ossi empr eeseldelsent i doposi t i vodelej eXdelSCU( Si st ema deCoor denadasUni ver sal ) .
( getangle“Ángul o:“)
Añadi ral gunoscambi osanuest r amacr o CI RCPERI Vamosahor aamodi ficarunpocol amacr oCI .Tení amoselsi gui ent ecódi go: RCPERI
( defun C: CI RCPERI / ( pt operir ad) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( setq peri( getr eal \ “nPer í met r o:“) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“)
Sisust i t ui mosl af unci óngetreal porgetdist ademásdepoderescr i bi runper í met r odi r ect ament e, t ambi énpodr emosi ndi car l omedi ant edospunt os.
Ecodemensaj esenl asmacr osdeAut oLI SP Porot r apar t e,Sihabéi sej ecut adoelcomandoCI ver éi squel odel osmensaj esqueda RCPERI mej orquealpr i nci pi oper ot ampocoesper f ect oyaqueapar ecenunost ext osenl avent anade comandosquenosesabededóndesal en:
Cent r odel aci r cunf erenci a: Per í met r o:Desi gnesegundopunt o:_. ci r cl ePr eci sepunt ocent r alparací r cul oo [ 3P/ 2P/ Tt r( t angent et angent er adi o) ] : Pr eci ser adi odecí r cul oo[ Di ámet r o] :23. 00636765228087 Est oquedabast ant ef eoycomohayqueserpr of esi onal es,vamosaponer l obi en.Hemosvi st ol as f unci onesGETVARySETVAR quenosper mi t enaccederal asvar i abl esdesi st emadeAut oCAD. Pueshayunavar i abl equecont r ol ael“ ,esdeci r ,elqueapar ezcanesos ecodemensaj es“ mensaj esenpant al l a.Lavar i abl esel l amaCMDECHO ysol oadmi t edosval or esposi bl es: •
0Desact i vada
•
1Act i vada
Pordef ect odeber í aest aract i vada( 1)asíquesever í anl osmensaj esr ar osdeant es. ¿Cómoevi t amosqueapar ezcanest osmensaj es?Puesdesact i vandol avar i abl e. Per onoconvi enemodi ficarl osval or esdel asvar i abl esdesi st ema,por quet alvezelusuari ol os qui er amant enercomoest aban.Demodoquesedesact i var ámoment áneament eelval ordel a var i abl eenmedi odel amacr oyalt er mi narl ar ut i nasedej ar áconsuval ori ni ci al ,esdeci rt alcomo estaba. Est oesmásbi enunafil osof í adevi da:“ Sialent r arenunsi t i o,l apuert aestabacerr ada,vuel vea cerrarla” Asíquenuest r ocódi goquedar í a…
( defun C: CI RCPERI / ( pt operir ad) ( setvar“cmdecho”0);Desact i vaelecodemensaj es ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( setq peri( getdist \ “nPer í met r o:“) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ( setvar“cmdecho”1);Vuel veaact i varelecodemensaj es ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“) Ef ect i vament el osmensaj esr ar osdesapar ecen,per o… ¿Quépasasialent r arenunahabi t aci ón,l a puer t ayaest abaabi er t a?¿l acer r amosol adej amosabi er t adenuevo?.Lomej oresquet odoquede “ t alcomol oencont r amos” .Asínadi enosdi r á… “ ¿Porquécer r ast el apuer t a?” .Ysil odi ce,l e r espondes:“ Per dona,per omimacr o,dej al ascosast alycomoest aban,asíqueoyaest abacer r ada ant esol acer r ar ondespués” .
Sicmdechoest ái ni ci al ment edesact i vadanuest r ar ut i nal adesact i va,ol oi nt ent a,yl uegol aact i vaal finaldel amacr o.Quedandoporl ot ant ocmdecho act i vada.Asíquevamosamodi ficarelcódi go par aquecmdecho quedeconelval orquet ení aant esdeej ecut arl amacr o… Lopr i mer oquet enemosquesaberessil apuert aest ácer r ada,siest ácer r adal aabr i mosysiya est áabi er t anohacemosnada,si mpl ement epasamos. medi r ásicmdecho est áact i vadaodesact i vada.Veamosqueesl oquehay ( getvar“cmdecho“) quehacer : 1.
Sil apuer t aest ácer r ada,l aabr o.Esdeci r ,si est áact i vada,l adesact i vo. cmdecho
2.
Aquímet emoselcódi godel amacr oCI RCPERI
3.
Siant esdeent r arl apuer t aest abacer r ada,ent oncesl aci er r o.Esdeci r ,si est aba cmdecho act i vada,ent oncesl avuel voaact i var .
Elpunt o1suenacl ar ament eaunaest r uct ur acondi ci onalsi mpl e, asíqueempl ear emosl a f unci ónI F:
( i f( =( getvar“cmdecho“)1) ( setvar“cmdecho”0) ) ¿Ycómohar í amosalfinaldel ar ut i naenelpunt o3?Ser í aot r ocondi ci onal ,per onecesi t amos conocerelval orquet ení ai ni ci al ment el avar i abl ecmdecho par asabersiest abaact i vadao desact i vada.Demodoquehayquemodi ficarelcódi goant er i orpar aqueenelpunt o1seal macene elval ordecmdecho.
( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) Deest emodol avar i abl ecmd0 al macenaelval ori ni ci aldecmdecho.Esbast ant ehabi t ual al macenarl osval or esi ni ci al esenvar i abl escuyonombr eseadelt i pocmd0,osm0obl i p0puesel0 nosi ndi caqueal macenaelval ori ni ci al . Ahor ayapodemosponerelcódi godelpunt o3.Podr í amoshacer l odedosf or mas:
( setvar“cmdecho”cmd0) Est al í neadecódi goasi gnarí aacmdecho elval orquet ení ai ni ci al ment e.
( i f( = cmd01) ( setvar “cmdecho”1) ) Enest ecaso,sicmdecho est abai ni ci al ment eact i vadaent oncesl aact i va.Sinoest abai ni ci al ment e act i vada,esdeci rest abadesact i vada,ent oncesnohacenadapor quecmdecho yaest á desact i vada,ali gualquealpr i nci pi o. Elcódi goquedar í aasí :
( defun C: CI RCPERI / ( pt oper ir adcmd0) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0)
) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( setq peri( getdist \ “nPer í met r o:“) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“)
Sal i dal i mpi adel asmacr osdeAut oLI SP Alej ecut arahor al arut i nal osmensaj essonmásl i mpi os.Si nembar goalfinalmuest r aelval or devuel t oporl aúl t i maexpr esi óneval uadadel af unci ón: •
•
Sil av ar i abl ecmdecho i ni ci al ment ees0.Lacondi ci óndeli fdevuel veni ,set er mi nal a l f unci ónysemuest r aenl apant al l ani l Sil av ar i abl ecmdecho i ni ci al ment ees1.Lacondi ci óndeli fdevuel veT,seeval úal a condi ci ónsi cumpl edeli f quedevuel ve1,set er mi nal af unci ónyse ( setvar“cmdecho”1) muest r aenl apant al l a1
Par aquel asal i dadenuest r asmacr ossea“ l i mpi a”añadi r emosalfinaldelcódi gounaf unci ónque devuel vaunacadenadet i bi r ánada. ext ovací a,asínoescr Podr í amospensarenut i l i zarl aexpr esi ón( er mi narnuest r asmacr os.Si nembar gol a pr ompt“”)alt expr esi ónant er i ornodevuel veunacadenadet ext ovací asi noquedevuel ve ni l . Suel enempl ear sel asf unci ones( queaúnnohemosvi st o,per oquedevuel princ)o( prin1) venuna cadenadet ext ovací a. Fi nal ment eelcódi gor esul t ant eser á:
( defun C: CI RCPERI / ( pt oper ir adcmd0) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( setq peri( getdist \ “nPer í met r o:“) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( prin1)
) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“)
Elcomandodeshacerenl asr ut i nasdeAut oLI SP Enest ear t í cul onovamosaverni ngunaf unci óndeAut oLI SP.Vamosacr earunnuevocomandoya r epasarunpocol amacr odeCI . RCPERI Comenzar emoscr eandounnuevocomandopar adi buj arar andel asen2D: •
Elpr ogr amasol i ci t ar áalusuar i oelcent r odel aar andel a,eldi ámet r oi nt er i oryelext er i or
•
Sedi buj ar ándosci r cunf er enci asconcéncr i casconl osdi ámet r osi ndi cados
Recuer da,ant esdeponer seaescr i bi rcódi gohayque:escr i bi relpseudocódi go.Veamos, podí amoshaceral goasí : 1.
Obt enerelcent r odel aci r cunf er enci a
2.
Obt enerelr adi odel aci r cunf er enci ai nt er i or
3.
Di buj arl aci r cunf er enci ai nt er i or
4.
Obt enerelr adi odel aci r cunf er enci aext er i or
5.
Di buj arl aci r cunf er enci aext er i or
Aut oCADyat i eneuncomandoquesel l amaarandela ( eni ngl ésdonuts)asíquebuscar emosot r o nombr epar anuest r ar ut i na,porej empl oARAND.Esmej orut i l i zarnombr esmásbi encor t osyque evoquenal af unci ónquet i eneelcomando. Lapr i mer al í neadecódi goesl adefini ci óndel af unci ón:
( defun C: ARAND() Másadel ant epodremosañadi rl asvar i abl esl ocal es,siesqueexi st en. 1)Obt enerelcent r odel aci r cunf er enci a.Podr í aseral goasí :
( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) 2)Obt enerelr adi odel aci r cunf er enci ai nt er i or :
( setq radi( getreal \ “nRadi oi nt er i or :“) ) 3)Di buj arelci r cul oi nt er i or
( command“ _. ci r cl e”pt or adi ) 4)Obt enerelr adi odelcí r cul oext er i or :
( setq r ade( getreal \ “nRadi oext er i or :“) ) 5)Di buj are lc i r c ul oext er i or
( command“ _. ci r cl e”pt or ade)
Yporúl t i mocer r amoselpar ént esi sdel af unci óndefun
) Elcódi gocompl et oquedaasí :
( defun C: ARAND() ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( setq radi( getreal \ “nRadi oi nt er i or :“) ) ( command“ _. ci r cl e”pt or adi ) ( setq r ade( getreal \ “nRadi oext er i or :“) ) ( command“ _. ci r cl e”pt or ade) ) Ahor avamosar et ocarunpocoelcomando,l eañadi r emosl assi gui ent esmej or as: •
Desact i varelecodemensaj es,esdeci rdesact i varl avar i abl ecmdecho ali ni ci arl ar ut i na.
•
Recuper arelval ori ni ci aldecmdecho alt er mi narl amacr o.
•
Añadi runal í neaalfinaldelcódi gopar aquemuest r eunmensaj ei ndi candoelnombr edel nuevocomandoalcar garl af unci ón. Ponerl asvar i abl escomol ocal es.
•
•
Enl ugardeut i l i z arGETREAL par aobt enerelr adi o,usar emosGETDI conelcent r ode ST l asci r cunf er enci ascomopunt obase.
•
Añadi runal í neaalfinaldel af unci ónpar aquel asal i dadelpr ogr amaseal i mpi a.
Elcódi godespuésder eal i zarl asmej or asant er i or esser í a:
( defun C: ARAND( / pt or adcmd0) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( setq r ad( getdist pt o \ “nRadi oi nt er i or :“) ) ( command“ _. ci r cl e”pt or ad) ( setq r ad( getdist pt o \ “nRadi oext er i or :“) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( princ) )
( pr ompt \ “nNuevocomandoARANDcar gado“) Ademásdel asmej or asi ndi cadasant er i or ment e,ahor al avar i abl er adseut i l i zat ant opar a al macenarelr adi odel aci r cunf er enci ai nt er i orcomoeldel aext er i or .¿Puededarl ugarest oaal gún pr obl ema?Veamos: Enpr i merl ugarobt enemoselcent r odel aci r cunf er enci ayl aasi gnamosal avar i abl ept o.
( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) Sol i ci t amoselr adi odel aci r cunf er enci ai nt er i oryl oasi gnamosal avar i abl er ad.
( setq r ad( getdist pt o \ “nRadi oi nt er i or :“) ) ydi buj amosl aci r cunf er enci ai nt er i or
( command“ _. ci r cl e”pt or ad) Elr adi odel aci r cunf er enci ai nt er i ornol ovamosavol veraut i l i zarennuest r ar ut i na,demodoque podemosreut i l i zaresavar i abl eyasi gnar l eot r oval or ,elr adi odel aci r cunf er enci aext er i or .
( setq r ad( getdist pt o \ “nRadi oext er i or :“) ) Ahor al avar i abl er al macenaelr adi odel aci r cunf er enci aext er i orypt elcent r odel asdos ad o ci r cunf er enci as,demodoquedi buj amosl aci r cunf er enci aext er i or .
( command“ _. ci r cl e”pt or ad) Deest emodoahor r amosunavar i abl e.Asíquer ecuer da:
Siesposi bl e,convi enereut i l i zarl asvar i abl es. Sicar gamosl amacr oyej ecut amoselcomandoARAND di buj ar emosunaar andel af or madapordos ci r cunf er enci as.¿Per oquépasasidespuésdedi buj arl aci r cunf er enci aej ecut amoselcomando“ H” ( oCAD?Puesque“ deshacer)deAut deshaceelúl t i mocomandoej ecut ado”queno esARAND si no( demodoquedeshacel aci r cunf er enci aext er i or . command“ _. ci r cl e”pt or ad) Per ol ai nt er i orno.
Cont r oldedeshacercomandos Elcomando“ oCADesdi st i nt oalcomando“ .Enr eal i dad,“ ón DESHACER”deAut H“ H”esunaopci de“ .Alej ecut arest ecomando,Aut oCADmuest r aelsi gui ent emensaj e:“ DESHACER“ I ndi queel .Veamos númer odeoper aci onesadeshacero[ Aut o/ Cont r ol / I ni ci o/ Fi n/ Mar ca/ Ret or no]<1>:“ comof unci onanest asopci ones:
“Númer odeoper aci onesadeshacer ” Laopci ónpordef ect oesi ndi carelnúmer odeoper aci onesadeshacer ,quepordef ect ot i eneelval or 1.Est aopci ónf unci onaexact ament ei gualqueelcomando“ .Per o,podemosi ndi car l eunnúmer o H“ deoper aci onessuper i ora1( cual qui ernúmer oent er oent r e1y32. 767) .Est aopci ónesút i lpar a deshacerl oscambi osr eal i zadosporl osúl t i mos“ n”comandos.
“Cont r ol ” Alsel ecci onar“ ”nosof r ecel assi gui ent esposi bi l i dades:“ Cont r ol I ndi queunaopci óndecont r ol DESHACER[ Todas/ Ni nguna/ Una]:” •
Conl aopci ón“ ecci onada( esl aopci ónpordef ect o) ,Aut oCADal macenaenel Todas”sel ar chi vot empor al“ UNDO. ac$”l ai nf or maci ónsobr el oscomandosej ecut adoseneldi buj oact ual yport ant oquesepuedendeshacer .Tambi énal macenaenelar chi vot empor al“ REDO. ac$”l a i nf or maci ónsobr el oscomandosdeldi buj oact ualquesehandeshecho.Est osar chi vosse
al macenaneneldi r ect or i ot empor aldelsi st emaoper at i vo.Est aopci ónpermi t edeshacert odos l oscomandosr eal i zadoseneldi buj odur ant el asesi ónact ual . •
•
Sisesel ecci onal aopci ón“ ,t ansól osepodr ádeshacerelúl t i mocomandoej ecut ado. Una“ Quedandodesact i vadast odasl asopci onesdelcomando“ o“ ”e DESHACER”except Cont r ol “ I ndi queelnúmer odeoper aci onesadeshacer<1>:“ Sel ecci onandol aopci ón“ i mi nal acapaci dadder evocardel oscomandos“ Ni nguna”seel H” y“ ,quedandoest osdesact i vados.Yyanoseut i l i zanl osar chi vost empor al es DESHACER“ ant er i or ment eci t ados.
Lor ecomendabl eest enersi empr eact i vadal aopci ón“ . Todas“
“Mar cayRet or no” Est asdosopci onesf unci onanenpar ej a.Supongamosquevamosaej ecut arunaser i edecomandos eneldi buj oact ual ,per onosabemossielr esul t adoobt eni doser áeldeseado.Enest ecaso,ant es decomenzarpuedesej ecut arelcomando“ ecci onarl aopci ón“ .Deest e DESHACER”ysel Mar ca“ modoact i vasunamar ca,al aquepodr ásvol verencual qui ermoment oej ecut ando“ DESHACER” conl aopci ón“ .Alencont r arunamar caAut oCADmost r ar áelmensaj e“ Ret or no“ Mar ca . encontrada“ Sienl ugardevol veral amar cal oquequi er esesdeshacerunnúmer odet er mi nadodecomandos, puedesej ecut arelcomando“ ndi candoelnúmer odecomandosadeshacer . H”o“ DESHACER”i Además,puedesdefini rt ant asmar cascomodesees,ycadavezqueej ecut es“ a DESHACER”conl opci ón“ ver ásal amar caant er i or .Sinoexi st enmásmar cas,osinosehadefini do Ret or no”vol ni ngunamar ca,Aut oCADpr egunt ar ásisedeseadeshacert odo.
“ Aut o” Al gunoscomandosdeAut oCAD,est ánf or madasporungr upodeór denes.Demodoqueel comando“ ar í at odoelgr upodecomandosej ecut ados,si nosól oelúl t i mo.Act i vandoest a H”noanul opci ónseagr upanest oscomandosenunosól o,aef ect osdel aapl i caci óndel oscomandos“ H”y “ . DESHACER“
“I ni ci oyFi n” Est asdosopci onest ambi énf unci onanj unt as.Conel l aspodemosagr uparunaser i edecomandos, demodoqueseant r at adoscomounosol oalej ecut ar“ . H”o“ DESHACER“ •
•
Si“ aopci ón“ áact i vada,Aut oCADcol ocaaut omát i cament eun DESHACER”conl Aut o”est “ nci pi oyfinaldel asopci onesdel osmenús, DESHACER”“ I ni ci o”yun“ DESHACER”“ Fi n”alpri ydej ai nut i l i zadasest asopci onesdef ormamanual . Conl aopci ón“ i vada,l asopci ones“ ecut andef or ma Aut o”desact I ni ci o”y“ Fi n”seej anál ogaacomosehacecon“ .Sisevuel veaej ecut arl aopci ón“ i n Mar ca”y“ Ret orno“ I ni ci o”s haberej ecut adol aopci ón“ acer r arungr upoant er i or ,Aut oCADent i endequesequi er e Fi n”par cer r arelgr upoant er i oryabr i runonuevo.
Elcomandodeshacerenl asr ut i nasde Aut oLI SP
Ut i l i zandol asopci onesant er i or esdelcomandodeshacer ,sepuedel ogr arquet odoelcódi gode nuest r asr ut i nasf unci onecomosiset r at asedeunúni cocomando. Añadi r emosali ni ci odenuest r ar ut i na“ ar ut i na“ . deshacer”“ i ni ci o”yalfinaldel deshacer”“ fin“ Veamos:
( defun C: ARAND( / pt or adcmd0) ( command“ _. undo” _ “ begi n“) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( setq r ad( getdist pt o \ “nRadi oi nt er i or :“) ) ( command“ _. ci r cl e”pt or ad) ( setq r ad( getdist pt o \ “nRadi oext er i or :“) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( command“ _undo” _ “ end“) ( princ) ) ( pr ompt \ “nNuevocomandoARANDcar gado“) ¿Deber í amosañadi rest asdosl í neasenl amacr oCI ?Puesnoesnecesar i o,puest oque RCPERI enCI t ansol out i l i zamosuncomando.AsíqueelcomandodeAut oCAD“ H”vaadeshacer RCPERI esecomando.Encambi oenARAND sedi buj andosci r cunf er enci ascondoscomandosde Aut oCAD.
Funci onesdet r at ami ent odeer r or esenAut oLI SP Lasr ut i nasquehemoscr eado( ánt er mi nadast odaví a.Par at er mi nar l as CI RCPERIyARAND)noest debemosr eal i zardosmodi ficaci ones: •
•
Cont r ol arl oquehacel ar ut i naencasodequesepr oduzcauner r ordur ant esuej ecuci ón. I mpedi rqueelusuar i oi nt r oduzcadat oser r óneos.Porej empl o,quei ndi quecer ocomor adi o deunaci r cunf er enci a.
Enest ear t í cul oset r at ar áelpr i mer odel osdospunt osant er i or es,yenelsi gui ent esever áel segundopunt o. Sinosfij amosenelcódi godel amacr oARAND:¿Quésucedesielusuar i ocomor espuest aal a pet i c i óndelr adi oi nt er i orp ul s aI gnaal avar i abl er elv al orni .Demodoque nt r o?Puesqueseasi ad l
sepr oduci r áuner r oraleval uarl asi gui ent el í neadecódi go: ( command _ “. ci r cl e”pt or ad) .Enel si gui ent et emaver emoscómosepuedeevi t arqueelusuar i oi nt r oduzcadat oser r óneos.Por ej empl o,evi t arquecomor espuest aal apet i ci óndelr adi oi nt er i orsei nt r oduzcaI nt r o. Per ounacosaest ácl ar a,nosi empr evamosapodercont r ol art odosl osposi bl eser r or esennuest r as macr os.Demodoquenecesi t amosunaf unci óndet r at ami ent odeer r or esquei nf or mealusuar i odel t i podeer r orquesepr oduce.Porej empl o,i ndi car l ealusuar i oquehai nt r oduci doundat o i ncor r ect o.Aut oCADenest ecasonosdi ce:“ ;err or :t i podear gument oer r óneo:number p:ni l ” Aut oLI SPdi sponedeunaf unci óndet r at ami ent odeer r or espordef ect o.Di chaf unci ónse l l ama*err yr eci becomoar gument ounacadenadet ext oconl adescr i pci óndeler r orqueseha or* pr oduci do. Podemosr edefini rl af unci óndet r at ami ent odeer r or esqueof r eceAut oLI SP,demodoquesepuede per sonal i zaranuest r ogust oenf unci óndenuest r osi nt er eses.Asípues,vamosacr earunaf unci ón det r at ami ent odeer r or esal aquel l amar emosERRORES:
( defun ERRORES( mens) ( i f( = mens“qui t ar/sal i rabandonar“) ( princ) ( princ( strcat \ “nEr r or : ”mens”“) ) ) ( princ) ) Nonospar emosdemasi adoaquíyal over emosbi enmásadel ant e.Hemoscr eadounaf unci ón l l amadaERRORES par aelt r at ami ent odeer r or esennuest r asr ut i nas.Ahor ahabr í aquedeci r l eal comandoARAND queut i l i ceest anuevaf unci óndet r at ami ent odeer r or es. Per oant es,convi eneexpl i carcómosepuedenr edefini rl asf unci onesdeAut oLI SP.Haydos mét odos: 1.
Cr earunaf unci ónconelmi smonombr e.Porej empl o, Est or edefini r ál a ( defun SI N… f unci ónSI deAut oLI SP. N
2.
Asi gnar l eunval ordi st i nt omedi ant esetq.Porej empl o,sihacemos( a setq si ncos)l f unci ónSI deAut oLI SPpasar áaf unci onarcomol af unci ónCOS,devol vi endoelcosenodeun N ángul oenl ugardeelseno.( ahor adevol ver í a1. enl ugarde0. si n0. 0) 0
Veamosahor aelcódi godel af unci ónARANDyamodi ficada:
( defun C: ARAND( / pt or adcmd0er r or0) ( command“ _. undo” _ “ begi n“) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( setq er r or 0* er r or ** er r or *ERRORES) ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( setq r ad( getdist pt o \ “nRadi oi nt er i or :“) ) ( command“ _. ci r cl e”pt or ad)
( setq r ad( getdist pt o \ “nRadi oext er i or :“) ) ( command“ _. ci r cl e”pt or ad) ( setq *err or*err or0) ( i f( =cmd01) ( setvar“cmdecho”1) ) ( command“ _. undo” _ “ end“) ( princ) ) ( pr ompt \ “nNuevocomandoARANDcar gado“) Enl al í nea( seasi gnaal avar i abl eer l aant i guaf unci ón setq er r or 0* er r or ** er r or *ERRORES) r or 0 det r at ami ent odeer r or es,*err .Ysedefinel af unci óndet r at ami ent odeer r or escomonuest r a or* f unci ónERRORES. Porsupuest o,l edeci mosqueusenuest r af unci óndet r at ami ent odeer r or esalpri nci pi odelcódi go. Per osi empr edespuésdedesact i varelecodemensaj es. Hemosr edefini dol af unci óndet r at ami ent odeer r or es,per oalt er mi narl ar ut i nadebemosdej arl o t odocomoest abaant es.Asíquer ecuper amosl af unci óndet r at ami ent odeer r or esi ni ci al ,l aque of r eceAut oLI SPpordef ect o.Loharí amosconl asi gui ent el í nea: quesedebe ( setq*err or*err o0) ponerant esdevol veraact i varelecodemensaj es. Par apr obarl af unci óndet r at ami ent odeer r or esdebemoscar gar l aenAut oCAD. Enl ar ut i naCI har í amosexact ament el omi smo: RCPERI
( defun C: CI RCPERI / ( pt oper ir adcmd0er r or 0) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( setq er r or 0* er r or ** er r or *ERRORES) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( setq peri( getdist \ “nPer í met r o:“) ) ( setq r ad( / peri( *pi2) ) ) ( command“ _. ci r cl e”pt or ad) ( setq *err or*err or0) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( princ) ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“)
Repasemosunpocoelf unci onami ent odel ar ut i naCI :Lopr i mer oquehacemoses RCPERI desact i varelecodemensaj es,acont i nuaci ónr edefini mosl af unci óndet r at ami ent odeerr or es, despuésvi eneelcódi godel af unci ón,ser est i t uyel af unci óndet r at ami ent odeerr or esdeAut oLI SP yser ecuper aelval ori ni ci alde“ quecont r ol aelecodemensaj es). cmdecho”( ¿Quédi f er enci aexi st eent r enuest r af unci óndet r at ami ent odeer r or esyl aof r eci dapordef ect opor Aut oLI SP? Puescasini nguna,demoment ot ansól osedi f er enci aenquesieler r orquesehapr oduci dot i ene pordescr i pci ón“ ,queequi val eapul sarl at ecl adeESCape, nohacenada. qui t ar/sal i rabandonar“ Sieler r ornosehapr oduci doporpul sarESC,si noporot r acausa,ent oncesmost r ar áunmensaj e i ndi cando:“ .Un“ gr an”cambi o,no?Buenol oscambi osvamosa Er r or :Descri pci óndelerr or“ hacer l osahor aqueyasabemoscomof unci onal af unci ónERRORES. Cadat i podeer r orof r eceunadescr i pci ónespecí ficayademásexi st euncódi gonumér i coasoci adoa l avar i abl edesi st emaERRNO enl aqueseal macenaelcódi gocor r espondi ent ealúl t i moer r orque sehapr oduci do.Puedesverenest eenl aceunal i st adel oscódi gosymensaj esdeer r orde Aut oLI SP. ¿Quésucedesielusuari oi nt r oduceundat oi ncor r ect oalsol i ci t ar l eelper í met r o?Enesecaso,enl a si gui ent el í nea( sepr oduci r í auner r or ,i ni ci ándosel af unci óndet r at ami ent o setq r ad( / peri( *pi2) ) ) deer r or es.Cuandosepr oduceeler r or ,yasehaeval uadol al í nea ( setq er ror0*err or** err or* ,demodoquehemosr edefini dol af unci óndet r at ami ent odeer r or es.Así ERRORES)enCI RCPERI queseej ecut al af unci ónERRORES,quemuest r al adescr i pci óndeler r orquesepr oduj o.Per o, sal i mosdel af unci ónERRORES ynohemosr ecuper adoelval ordel af unci óndet r at ami ent ode er r or esquenosof r ecepordef ect oAut oLI SP.Yt ambi énsehadesact i vadoelecodemensaj es,per o nor ecuper amossuval ori ni ci al . Demodoquevamosamodi ficarl af unci ónERRORESpar aañadi rest ospequeñoscambi os:
( defun ERRORES( mens) ( setq * err or*err or0) ( i f( = mens“qui t ar/sal i rabandonar“) ( princ) ( princ( strcat \ “nEr r or : ”mens”“) ) ) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( princ) ) Ahor anuest r af unci ónERRORES r est i t uyeelval ori ni ci aldelecodemensaj esyl af unci ónde t r at ami ent odeer r or esi ni ci al .Puedeext r añarqueseut i l i cenl asvar i abl escmd0yer dent r ode ror0 l af unci ónERRORES,yaqueest abandefini dascomovar i abl esl ocal esenCI . RCPERI Cuandodefini mosunavar i abl el ocalenunaf unci ón,est avar i abl esepuedeut i l i zarsól odent r ode esaf unci ón.Per o,sidesdeCI “ l l amamos”aot r af unci ón,porej empl oERRORES,en RCPERI r eal i dadest amosdent r odeERRORES,queest ádent r odeCI .Asíquesegui mosdent r o RCPERI deCI . RCPERI Ot r adel aspr i nci pal esapl i caci onesder edefini rl af unci óndet r at ami ent odeer r or est i enequever conelt emaant er i or ,l oscomandosdeshacerenl asr ut i nasdeAut oLI SP.
Sinosfij amosenelcódi godel ar ut i naARAND,vemosquel apr i mer al í nea es( Quésuceder í asisepr oduceuner r ordespuésdedi buj arel command“ _. undo” _ “ begi n“) segundocí r cul o?Darí auner r or ,yt er mi narí aelcomandosi nej ecut arl al í nea( command _ “. undo” .Conl ocualpar adeshacerl aar andel adeber í amosej ecut arelcomando“ deshacer )dos _ “ end“) H”( veces,unaporcadací r cul o.Esmás,i magi naquenuest r ar ut i nanodi buj a2ci r cunf er enci assi no120 yqueeler r orsepr oducealdi buj arl aci r cunf er enci aenési ma… Podr í amosent oncesmodi ficarl af unci óndet r at ami ent odeer r or esyañadi rl al í neadecódi go:
( command“ _. undo” _ “ end“) Ahor a,bast ar í aconej ecut arelcomandodeshacer unaúni cavezpar aquesedeshagat odol oque hi zoelcomandoARAND. Podemosi ncl usodeci r l eal af unci ónERRORES quesisepr oduceuner r or ,ej ecut eelcomando deshacerdi r ect ament e:
( defun ERRORES( mens) ( setq *err or*err or0) ( i f( = mens“qui t ar/sal i rabandonar“) ( princ) ( princ( strcat \ “nEr r or : ”mens”“) ) ) ( command“ _. undo” _ “ end“) ( command“ _. undo”“”) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( princ) ) Enest ecasosisepr oduceuner r ornisi qui er ahacef al t aej ecut arelcomandodeshacer ,l a f unci ónERRORES yal ohacepornosot r os. Par at er mi narest eart í cul o,vamosaañadi runanuevaopci ónaCI .Set r at adequeof r ezca RCPERI pordef ect oelper í met r odel aúl t i maci r cunf er enci adi buj ada.Podr í amoshacerl osi gui ent e:
( defun C: CI RCPERI / ( pt oper icmd0) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( i f( notr ad) ( pr ompt \ “nPer í met r o:“) ( progn ( pr ompt \ “nPer í met r o<“) ( pr ompt( rt os( * r ad2pi )22) )
( pr ompt“>:“) ) ) ( i f( setq peri( getdist ) ) ( setq r ad( / peri( *2pi ) ) ) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( princ) ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“) Ponemosl avar i abl er adcomogl obal ,asísepueder ecuper arelval orquet ení aenl aant er i or ej ecuci óndeCI .Veamosahor acómof unci onaelsi gui ent et r ozodecódi go: RCPERI
( i f( notr ad) ( pr ompt \ “nPer í met r o:“) ( progn ( pr ompt \ “nPer í met r o<“) ( pr ompt( rt os( * r ad2pi )22) ) ( pr ompt“>:“) ) ) Sir esi gualani ,nosehadefini do,si gni ficaqueesl apr i mer avezqueseej ecut ael ad l comandoCI eneldi buj oact ual .Enest ecasosemuest r aunmensaj esol i ci t andoel RCPERI per í met r odelcí r cul o. Sinoesl apr i mer avezqueseej ecut aCI ,l av ar i abl er t endr áasoci adounval or , RCPERI ad cor r espondi ent ealr adi odelci r cul ocr eadoenl aúl t i maej ecuci óndeCI .Tambi énmuest r aun RCPERI mensaj esol i ci t andoelper í met r o,per oent r el oscar act er es“ <”y“ >”sei ndi caademáselval ordel a var i abl egl obalr ad.
( i f( setq peri( getdist ) ) ( setq r ad( / peri( *2pi ) ) ) ) Acont i nuaci ónsesol i ci t aunadi st anci a.Nosehai ndi cadoni ngúnmensaj eenl af unci óngetdist ,ya queelmensaj edesol i ci t udsemuest r aenl asl í neasant er i or es.Sisei ndi caunperí met r o,yaseapor medi odedospunt osoescr i bi éndol odi r ect ament e,ent oncessecal cul asur adi o.Sicomor espuest a agetdist sepul saI nt r o,al avar i abl eperi seasi gnaelval orni ,queesdevuel t oporsetq.Demodo l queenest ecasonohacenada,porl ot ant ol avar i abl er si gueal macenandoelr adi odelúl t i mo ad cí r cul ocr eadoconCI . RCPERI
( command“ _. ci r cl e”pt or ad) Porúl t i modi buj aelcí r cul o. Aut oCADdi sponedeunavar i abl edesi st emal l amadaCI enl aqueal macenaelval ordel RCLERAD úl t i moci r cul odi buj ado.Asíquepodemosut i l i zarest avar i abl edesi st emapar aobt enerelr adi odel úl t i mocí r c ul o,enl ugard eut i l i z arl av ar i abl er comogl obal .Elcódi goser í aelsi gui ent e: ad
( defun C: CI RCPERI / ( pt or adper icmd0) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( i f( =( getvar“circlerad“)0. 0) ( pr ompt \ “nPer í met r o:“) ( progn ( pr ompt \ “nPer í met r o<“) ( pr ompt( rt os( *( getvar“circlerad“)2pi )22) ) ( pr ompt“>:“) ) ) ( i f( setq peri( getdist ) ) ( setq r ad( / peri( *2pi ) ) ) ( setq r ad( getvar“circlerad“) ) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( princ) ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“) Ahor aof r ecer ápordef ect oelper í met r odelúl t i mocí r cul odi buj adoenAut oCAD,i ndependi ent ement e desidi chocí r cul osecr eoconl ar ut i naCI ,conelcomandoCI oporcual qui erot r o RCPERI RCULO medi o.Veamoscomof unci onanl oscambi osquehemosr eal i zado:
( i f( =( getvar“circlerad“)0. 0) ( pr ompt \ “nPer í met r o:“) ( progn ( pr ompt \ “nPer í met r o<“) ( pr ompt( rt os( *( getvar“circlerad“)2pi )22) )
( pr ompt“>:“) ) ) Siaúnnosehacr eadoni ngúncí r cul oeneldi buj o,l avar i abl ec t endr áasoci adoelval or0. irclerad 0. Enest ecasosol i ci t aelper í met r osi nof r ecerni ngúnval orpordef ect o,yencasocont r ar i oof r ecepor def ect oelper í met r odelúl t i mocí r cul ocr eado.
( i f( setq peri( getdist ) ) ( setq r ad( / peri( *2pi ) ) ) ( setq r ad( getvar“circlerad“) ) ) Sisei nt r oduceunper í met r o,pormedi odedospunt osoescr i bi éndol osecal cul aelr adi o cor r espondi ent e.Encasodequesepul seI nt r o,seasoci aal avar i abl er elr adi odelúl t i moc í r c ul o ad di buj ado.
Li mi t arl asr espuest asdel osusuar i os Enelar t í cul oant er i orvi mosl asf unci onesdet r at ami ent odeer r or es,quenosper mi t encont r ol arl o quesucedecuandosepr oduceuner r orennuest r asmacr os.Enest aocasi óni nt ent ar emosqueno sepr oduzcanal gunodel osposi bl eser r or esenl asmacr os. Loser r or espuedendeber seaqueelcódi gonof unci onabi enporquesehaempl eadomalal guna f unci óndeAut oLI SPosehaej ecut adoi ncor r ect ament euncomandodeAut oCAD,porej empl o,per o est osnosonl ost i posdeer r or esquecor r egi r emosenest et ema.Másadel ant ever emosmét odosde depur aci óndenuest r asr ut i nasycorr egi r emosl oserr or esdebi dosauncódi gof uent ei ncor r ect o. Ahor at r at ar emosot r ot i podeer r or es,l osquesepr oducencuandoelusuar i oi nt r oduce dat oserr óneos Porej empl o,cuandosesol i ci t aunnúmer oposi t i voyelusuar i oi ndi cacer ooun númer onegat i vo.
( I NI TGET[ modo][ pal abr as_cl ave] ) Est af unci ónseut i l i zapar amodi ficarelf unci onami ent odeot r asf unci onesdeAut oLI SP,enconcr et o aquel l asf unci onesenl asquesesol i ci t andat osalusuar i o.Por ej empl o:GETpoi ,GETr ,GETi ,… casit odascomi enzanporGET asíquesesuel en nt eal nt denomi nar f unci onesdet i poGET. si empr edevuel veni .Ysisei ndi casol o,si nar gument os,nohacenada.Tansol o I ni t get l devuel veni .Asíquevamosaverpar aquesi r venl osar gument osdeI ni t get : l
“modo” Esunnúmer oent er oquenospermi t i r ál i mi t arl osdat osquesepuedani nt r oduci renl asi gui ent e sol i ci t uddedat osalusuar i o.I NUNCAf unci onaporsisol a,si empr eseut i l i zapar amodi ficarel ni t get f unci onami ent odeot r af unci ón. Elar gument omodoesenr eal i daduncódi gobi nar i o,quepuedet enerl ossi gui ent esval or es: •
1–>Noadmi t eval or esnul os,esdeci rquesei ndi queI nt r ocomor espuest a
•
2–>Noadmi t eel0comor espuest a
•
4–>Noadmi t eval or esnegat i voscomor espuest a
•
8–>Per mi t ei ndi carunpunt of uer adel osl í mi t esdeldi buj o.Aúncuandoest osest án act i vados.
•
16–>Est eval ornoseut i l i zaact ual ment e
•
32–>Di buj al al í neaor ect ángul oel ást i cosconl í neasdi scont í nuasenl ugardecont í nuas
•
•
64–>HacequeGETdi stdevuel val adi st anci aen2D.Escomosipr oyect asel adi st anci a r ealsobr eelpl anoXY. 128–>Per mi t ei nt r oduci rcomor espuest aunaexpr esi óndeAut oLI SP.
Bi en,veamoscomoseut i l i zai .Porej empl o,siquer emosqueelusuar i oi nt r oduzcaunnúmer o ni t get ent er oyquenopuedapul sarI nt r ocomor espuest a,har í amosl osi gui ent e:
( i ni t get1) ( setq numer o( getint \ “nNúmer oent er o:“) ) modi ficaal asi gui ent ef unci óndesol i ci t uddedat os,esdeci r , . I ni t get geti nt Siademásquer emosquenopuedai ndi car0 comor espuest a,ent oncessumamossusr espect i vos códi gos,el1 par aquenosepuedai ndi carI comor espuest ayel2 par aquenosepueda nt r o i n d i c a r0.
( i ni t get( +12) ) ( setq numer o( getint \ “nNúmer oent er o:“) ) Tambi énpodemosi ndi cardi r ect ament e( enl ugarde( .Sielus uar i oi ndi c a i ni t get3) i ni t get( +12) ) comor espuest a0oI Aut oCADl edi r áqueesedat onoesvál i doyquei nt r oduzcaundat o nt ro, correcto. Siquer emosqueademássei ndi queunnúmer oposi t i vo,ent oncesdeber í amosponer :
( i ni t get7) ( setq numer o( getint \ “nNúmer oent er o:“) ) Yaque7=1+2+4 Veamosahor acomof unci onaelcódi go8comoar gument omododeI . ni t get •
8–>Per mi t ei ndi carunpunt of uer adel osl í mi t esdeldi buj o.Aúncuandoest osest án act i vados.
Supongamosquet enemosl osl í mi t esdeldi buj odeAut oCADact i vados( comandoLI MI TES)enese casonopodemosi ndi carpunt osf uer adeesosl í mi t es.Demodoquesisesol i ci t aunpunt oal usuar i oconGETPOI deber ái ndi car l odent r odel osl í mi t esdeldi buj o.Per osiant esdesol i ci t arel NT punt oseej ecut a( ent oncessinosdej ar í a. i ni t get8) •
•
Elcódi go16noseut i l i za. Elcódi go32seut i l i zaenf unci onesdesol i ci t udenl asquesei ndi caunpunt obase,por ej empl o:
( get poi nt pt o \ “nI ndi carpunt o: “) ( getcorner pt o \ “nI ndi carpunt o: “) Enest oscasosapar eceunal í nea,ounr ect ángul o,el ást i coconor i genenelpunt obasept as o.Est l í neasyr ect ángul osel ást i cossemuest r anconl í neacont i nua.Per osiant esdel af unci ónde sol i ci t udseañade( semost r ar anconl í neasdi scont i nuas.Porej empl o: i ni t get32)
( setq pt 1( get poi nt \ “nPunt obase:“) ) ( i ni t get32) ( setq pt 2( get poi nt pt 1 \ “nSegundopunt o:“) ) Enest eej empl oapar eceunal í neadi scont i nua.Yenelsi gui ent eunr ect ángul oconl í neas di scont i nuas.
( setq pt 1( get poi nt \ “nPunt obase:“) ) ( i ni t get32) ( setqpt 2( getcorner pt 1 \ “nSegundopunt o:“) ) Veamosahor acomof unci onaelcódi go64 •
64–>HacequeGETdi devuel val adi st anci aen2D.Escomosipr oyect asel adi st anci a st r ealsobr eelpl anoXY.
sol i ci t aunadi st anci a,quesepuedeescr i bi rdi r ect ament e,osepuedeni ndi cardospunt os Get di st enpant al l a.Enest ecaso,getdist devol ver ál adi st anci ar ealent r eesosdospunt os.Sil oquenos i nt er esaobt eneresl adi st anci adesuspr oyecci onessobr eelpl anoXYact ualse añadi r á( ant esdel aej ecut argetdist .Porej empl o: i ni t get64)
( setq pt 1( get poi nt \ “nPunt obase:“) ) ( i ni t get64) ( setq di st 12( getdist pt 1 \ “nSegundopunt o:“) ) Porúl t i mo,elcódi go128per mi t ei ndi carunaexpr esi óndeAut oLI SPcomor espuest a.Porej empl o, podemosut i l i zarnuest r ar ut i naRAG( Radi anesAGr adosdeci mal es)par ai ndi carunángul oen gr adosdeci mal escuandonosot r osl ot enemosenr adi anes.
( i ni t get128) ( setq ang( getreal \ “nI nt r oduci rángul o:“) ) Enest ecasoelusuar i opodr í ai ndi carcomor espuest aal asol i ci t uddelángul o: ( RAG( /pi4) )Es deci r ,unángul ode45º . Puesl l egadosaest epunt o,ant esdeverelsegundoar gument ode( I NI TGET[ modo] r ,l aspal abr ascl ave.Vamosamodi ficarnuest r as [palabras_clave]),esdeci r u t i n a sARANDyCI . RCPERI Sir evi samoselcódi godel amacr oCI r ar emosl asi gui ent el í nea: RCPERIencont
( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ¿deber í amosañadi ral gunal i mi t aci óncomor espuest adelusuar i o?Veamos: •
Sielusuar i opul saI nt r ocomor espuest aal avar i abl ept sel easoci aelval orni ,queesl o o l quedevol ver í aGet nt ent ardi buj arelcí r cul o( poi nt.Despuésali command“ _. ci r cl e”pt or ad)se pr oduci r í auner r or .Asíquedebemosi mpedi rqueelusuari oi nt r oduzcaI nt r ocomor espuest a,de modoqueañadi r í amos( ant esdel af unci ónget . i ni t get1) poi nt
Comoest amossol i ci t andounpunt o,elcódi go2not i enesent i doyl omi smosucedeconel
•
4. •
Elcódi go8per mi t ei ndi carunpunt of uer adel osl í mi t esdeldi buj o,aúncuandoest osest án act i vados.Est ecódi gosipodr í amosut i l i zar l o,aunquesielusuar i ot r abaj aconl osl í mi t es act i vados,est ánact i vadosyyaest á.Siqui er equel osdesact i veél ,no?Por quesupongoquel os t endr áact i vadosporal gúnmot i vo.Asíquenol eañadi mosai elcódi go8. ni t get
•
Elcódi go32not i enesent i doaquí ,puesnoapar ecel al í neabase.
•
Yelcódi go64t ampocoyaqueest amossol i ci t andounpunt o,nounadi st anci a.
•
Elcódi go128per mi t ei nt r oduci rcomor espuest aunaexpr esi óndeAut oLI SP.Est ecódi go t ambi énsepodr í ai ndi car ,per ol ohabi t ualesnohacer l o.Sepodr í aut i l i zarencasosenl osque elusuar i opudi er aut i l i zarunaexpresi óndeAut oLI SPpar acal cul areldat o.Comoenelej empl o quevi mosant es,sit i eneunángul oenr adi anesyl ot i enequei ndi carengr ados deci mal es.Aquínospi deunpunt o,asíquenot i enedemasi adosent i do.
Defini t i vament eelcódi goquedar í a:
( i ni t get1) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) Si gamosmodi ficandol ar ut i naCI RCPERI :Unasl í neasdespuésdel asol i ci t uddelcent r odel a ci r cunf er enci a,sesol i ci t asuper í met r o:
( i f( setq peri( getdist ) ) ( setq r ad( / peri( *2pi ) ) ) ( setq r ad( getvar“circlerad“) ) ) ¿Deber í amosañadi rl af unci óni conelcódi go1ant esdel af unci óngetdist ? ni t get Veamoscomof unci onaest apar t edelcódi go:Sielusuar i oi nt r oduceunadi st anci a,seeval úal a condi ci ónsicumpl edelI esdeci r : F
( setq r ad( / peri( *2pi ) ) ) Ysielusuar i opul saI gnaaperi elv al orni yeval úal acondi ci ónnocumpl edel nt r o,seasi l I F,es d e c i r :
( setq r ad( getvar“circlerad“) ) •
•
•
Siañadi mosant esdelgetdist l aexpr esi ón( ,elusuar i onopodr ái ndi carI i ni t get1) nt r o,así quenuncaseej ecut ar í al aexpr esi ónnocumpl e.Port ant onoañadi moselcódi go1aI . ni t get Elper í met r odelcí r cul onopuedesernicer oniunnúmer onegat i vo,demodoquepodemos añadi rai l oscódi gos2y4. ni t get Tambi énpodr í amosañadi relcódi go64par aqueGETdi devuel val adi st anci aen2D.Per o st nor mal ment enoconvi eneañadi rest ecódi go,except ocuandol adi st anci a“ debaser ”si empr e seren2D.
Unaúl t i manot asobr eCI RCPERI :Cuandoej ecut amosl amacr oporpr i mer avezenundi buj oenel quenosehadi buj adoni ngúncí r cul o,l avar i abl edesi st ema“ i eneelv al or0. e circlerad”t 0.Enest
caso,noof r ecemosl aopci óndesel ecci onarelr adi odelúl t i mocí r cul odi buj adopul sandoI nt r o,ya quenoexi st eni ngúncí r cul odi buj adopr evi ament e.Enest ecaso,nodeber í amosi ndi carelmodo6a I ni t get ,si noel7par aquet ampocoper mi t aalusuar i oi ndi carI nt r ocomor espuest a.Veamoscomose sol uci onaenelcódi gocompl et odel arut i na:
( defun C: CI RCPERI / ( pt or adper icmd0) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( i ni t get1) ( setq pt o( get poi nt \ “nCent r odel aci r cunf er enci a:“) ) ( i f( =( getvar“circlerad“)0. 0) ( progn ( pr ompt \ “nPer í met r o:“) ( i ni t get7) ) ( progn ( pr ompt \ “nPer í met r o<“) ( pr ompt( rt os( *( getvar“circlerad“)2pi )22) ) ( pr ompt“>:“) ( i ni t get6) ) ) ( i f( setq peri( getdist ) ) ( setq r ad( / peri( *2pi ) ) ) ( setq r ad( getvar“circlerad“) ) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( princ) ) ( pr ompt \ “nNuevocomandoCI RCPERIcar gado“) Vamosahor aamodi ficarl ar ut i naARAND.Lapr i mer asol i ci t udquet enemosenARAND esl adel cent r odel aar andel a.Pr áct i cament eesi gualquel asol i ci t uddelcent r odelcí r cul oenCI , RCPERI asíquel eañadi most ambi énelcódi go1aI : ni t get
( i ni t get1)
( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) Acont i nuaci ónsol i ci t al osr adi osi nt er i oryext er i ordel aar andel a.Enl osquepodemosevi t arqueel usuar i oi ndi quecomor espuest aI nt r o,0ounnúmer onegat i vo.Porl ot ant oañadi r emosI con ni t get elmodo7.Veamoselcódi gocompl et o:
( defun C: ARAND / ( pt or adcmd0) ( command“ _. undo” _ “ begi n“) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( i ni t get1) ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( i ni t get7) ( setq r ad( getdist pt o \ “nRadi oi nt er i or :“) ) ( command“ _. ci r cl e”pt or ad) ( i ni t get7) ( setq r ad( getdist pt o \ “nRadi oext er i or :“) ) ( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( command“ _undo” _ “ end“) ( princ) ) ( pr ompt \ “nNuevocomandoARANDcar gado“)
Li mi t arl asr espuest asdel osusuar i os( I I )
( i ni t get[ modo][ pal abr as_cl ave] ) Enelúl t i moart í cul odelcur socomenzamosaverl af unci ónI yvi moscomof unci onabael NI TGET ar gument o[ ahor avamoscon[palabras_clave]: modo] nosper mi t ei ndi carunaser i edet ext os( pal abr as)quet ambi énser ánacept ados [palabras_clave] comor espuest aenl asi gui ent ef unci óndesol i ci t uddedat os.Porej empl o:
( i ni t get7“Di ámet r oPer í met r o“) ( setq r ad( getdist \ “nRadi odelci r cul o/Di ámet r o/Per í met r o:“) )
comor espuest aagetdist podemosi ndi carunadi st anci a,yaseaescr i bi endounval ornumér i coo medi ant edospunt os,per oahor at ambi énacept ar ácomor espuest a“ .El Di ámet r o”y“ Perí met r o“ modo7i mpi dequesei ndi quecomor espuest aI nt r o,cer oounnúmer onegat i vo. •
•
•
Sii ndi camoscomorespuest aunadi st anci a,asoci aesadi st anci aal avar i bl er ad. Sii ndi camoscomor espuest a“ ,as oc i aal av ar i abl er l acadenadet ext o Di ámet r o“ ad “ . Di ámet r o“ Sii ndi camoscomor espuest a“ ,as oc i aal av ar i abl er l acadenadet ext o Perí met r o“ ad “ . Perí met r o“
En[ pal abr as_cl ave]i ndi camosunaser i edepal abr as,separ adasporespaci os,queservi r áncomo r espuest aal asi gui ent ef unci óndesol i ci t uddedat os. Nohacef al t aescr i bi relnombr ecompl et odel apal abr a,comohi ci mosant es,bast aconqueel usuar i oi nt r oduzcacomor espuest al r ,l aD ol aP. asl et r asqueapar ecenenmayúscul as.Esdeci Enelsi gui ent eej empl o:
( i ni t get7“Di ámet r odesHacer“) ( setq r ad( getdist \ “nRadi odelci r cul o/Di ámet r o/desHacer :“) ) Par asel ecci onarl aopci ón“ áqueescr i bi ralmenosl aD.Per opar asel ecci onar Di ámet r o”habr “ áqueescr i bi r énacept ar í a“ aeldi ámet r oy“ a desHacer”almenoshabr H.Tambi di á”par desh”par deshacer . Si nembar gonoacept ar á“ asel ecci onar“ .Fí j at equealmenosdeben de”ni“ des”par desHacer“ i ndi car sel asl et r asenmayúscul as. Porot r apar t e,acept ar át ant o“ nt i l depar asel ecci onar“ . di á”como“ di a”si Di ámet r o“ Supongamosquet enemoselsi gui ent ecódi go:
( i ni t get7“Di ámet r odesHacer“) ( setq r ad( getdist \ “nRadi odelci r cul o:“) ) Enest ecasogetdist acept ar ácomor espuest asal apet i ci óndelr adi odel aci r cunf er enci a “ .Per oalnoi ndi carest asopci onesenelmensaj edegetdist ,elusuar i ono Di ámet r o”y“ desHacer“ sabr áqueexi st en.Demodoqueesr ecomendabl ei ndi caralusuar i ol asopci onesquepuede sel ecci onar :
( i ni t get7“Di ámet r odesHacer“) ( setq r ad( getdist \ “nRadi odelci r cul o/Di ámet r o/desHacer:“) ) Comomej orseveesconunej empl oasíque,vamosamodi ficarl ar ut i naARAND añadi endouna opci ónpar ai ndi careldi ámet r oenl ugardelr adi o.Tenemosquemodi ficarl assi gui ent esl í neas:
( i ni t get7) ( setq r ad( getreal \ “nRadi oi nt er i or :“) ) Pr i mer oañadi mos“ Di ámet r o”al al i st adepal abr ascl avedei : ni t get
( i ni t get7“Di ámet r o“) Yacont i nuaci ónl edeci mosalusuar i oqueexi st eunaopci ónl l amada“ Di ámet r o”quepuede sel ecci onarcomor espuest a:
( setqr ad( getreal \ “nRadi oi nt er i or/Di amet r o:“) )
Deest af or mayahemosañadi dol aopci ón“ Di ámet r o” Per o,¿quésucedesielusuar i oi ndi cacomor espuest al aopci ón“ ?Puesqueasi gnamos Di ámet r o“ al avar i abl er l acadenadet ext o“ asi gui ent el í nea( ad Di ámet r o”yenl command“ _. ci r cl e”pt o ali nt ent ardi buj arl aci r cunf er enci a,nosdauner r or . r ad) Asíquehayquemodi ficarl ar ut i naañadi endoacont i nuaci ónal gopar eci doa: •
Sielusuar i osel ecci onal aopci ón“ egunt amosporeldi ámet r o. Di ámet r o”–>Pr
Puesest oenAut oLI SP,ser í a:
( i f( = r ad“Di ámet r o“) ( setq r ad( getreal \ “nDi ámet r oi nt er i or :“) ) ) Hayquet enerespeci alcui dadoconl acondi ci óndel yaquehayquei ndi carl a I F( = r ad“Di ámet r o“) pal abr acl avet alycomoapar eceenl al i st adepal abr ascl avedei . ni t get Esdeci r ,nof unci onar í asiponemos( yaqueenelpr i mer = r ad“di ámet r o“)o( = r ad“Di amet r o“) casonoponemosl a“ D”enmayúscul asyenelsegundonohemost i l dadol a“ a” . Fí j at eenl oquehaceelcódi goant er i or : •
•
•
Sielusuar i oi ndi caunadi st anci al aasi gnaal avar i abl er yl uego( ad i f( = r ad“Di ámet r o“) … devuel veni ,puest oquer esdi st i nt ode“ . l ad Di ámet r o“ Sielusuar i oi ndi caDoDi oncesasi gnaal avar i abl er l acadenade am,odi ámet r o,ent ad t ext o“ .Luegoalent r arenel devuel veT asíqueeval úal a Di ámet r o“ I F,( = r ad“Di amet r o“) expr esi ónsicumpl e( quepi deundi ámet r oalusuar i o setq r ad( getreal \ “nDi ámet r oi nt er i or :“) ) yl oasi gnaal avar i abl er ad. Peror vi enederadi o,por queenest avar i abl eal macenamoselr adi odel aci r cunf er enci a ad ynoeldi ámet r o.Asíquealdi buj arl aci r cunf er enci a( di buj ar í a command“ _. ci r cl e”pt or ad) unaci r cunf er enci adeldobl edeldi ámet r odel oquehadi choelusuar i o.
Elcódi godeber í aser :
( i ni t get7“Di ámet r o“) ( setq r ad( getreal \ “nRadi oi nt er i or/Di ámet r o:“) ) ( i f( = r ad“Di ámet r o“) ( setq r ad( /( getreal \ “nDi ámet r oi nt er i or :“)2. 0) ) ) Per o,¿Quépasasielusuar i ohacel osi gui ent e? •
I ndi caD comor espuest aalr adi oi nt er i or .
•
I ndi cacomodi ámet r o. 50o0
Puesqueasi gnar í aal avar i abl er elr es ul t adodedi v i di rent r e2. ant ot endr í amos ad 50o0 0.Port unaci r cunf er enci aconr adi onegat i voocer o.
Recuer daquei sol ot i eneef ect osobrel asi gui ent ef unci óndesol i ci t uddedat os,demodoque ni t get t enemosqueañadi rdenuevol af unci ónI ant esdepr egunt arporeldi ámet r o: ni t get
( i ni t get7“Di ámet r o“) ( setq r ad( getreal \ “nRadi oi nt er i or/Di ámet r o:“) ) ( i f( = r ad“Di ámet r o“) ( progn ( i ni t get7) ( setq r ad( /( getreal \ “nDi ámet r oi nt er i or :“)2. 0) ) ) ) Sehaañadi dol af unci ónProgn yaquesi no,sol osepuedeej ecut arunaexpr esi óncomocondi ci ón si cumpl edelI F. Par aelr adi oodi ámet r oext er i orseharí aexact ament el omi smo.Port ant oelcódi gocompl et oser á:
( defun C: ARAND( / pt or adcmd0) ( command“ _. undo” _ “ begi n“) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( i ni t get1) ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( i ni t get7“Di ámet r o“) ( setq r ad( getdist pt o \ ”nRadi oi nt er i or/Di ámet r o:“) ) ( i f( = r ad“Di ámet r o“) ( progn ( i ni t get7) ( setq r ad( /( getreal \ “nDi ámet r oi nt er i or :“)2. 0) ) ) ) ( command“ _. ci r cl e”pt or ad) ( i ni t get7“Di ámet r o“) ( setq r ad( getdist pt o \ “nRadi oext er i or/Di ámet r o:“) ) ( i f( = r ad“Di ámet r o“) ( progn ( i ni t get7) ( setq r ad( /( getreal \ “nDi ámet r oext er i or :“)2. 0) ) ) )
( command“ _. ci r cl e”pt or ad) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( command“ _undo” _ “ end“) ( princ) ) ( pr ompt \ “nNuevocomandoARANDcar gado“)
( GETKWORD[ mensaj e] ) Est af unci óndeAut oLI SPseut i l i zapar aobt enerunaopci óni ndi cadaporelusuar i o.Seut i l i zaen combi naci ónconI empl o: NI TGET,porej
( i ni t get“DEShacerNuevoRepet i r“) ( setq opc( get kword“ \ nDEShacer/Nuevo/Repet i r :“) ) Enest ecasoelusuar i ot ansól opodr ái ndi carcomor espuest aunadel aspal abr ascl avedel a f unci ónI ysel aasi gnaal avar i abl eopc. ni t get Nohemosi ndi cadoelmodoenI ni t get ,t alsol ol aspal abr ascl ave.Enl ar ut i naARAND nos i nt er esabaqueapar eci er aelmodo7par aquenosei ndi quecomor espuest aI ounnúmer o nt r o,0 negat i vo.Per onoesobl i gat or i oi ndi carsi empr eunmodo. Unej empl obast ant ehabi t ualenl asmacr oseselsi gui ent e:
( i ni t get“DEShacerNuevoRepet i r“) ( setq opc( get kword“ \ nDEShacer/Nuevo/Repet i r :“) ) ( cond ( ( = opc“DEShacer “) ( alert“Hassel ecci onadol aopci ónDEShacer“) ) ( ( = opc“Nuevo“) ( alert“Hassel ecci onadol aopci ónNuevo“) ) ( T ( alert“Hassel ecci onadol aopci ónRepet i r“) ) ) Asíenf unci óndel aopci ónquei ndi queelusuar i osehaceunacosauot r a.
Est r uct ur asr epet i t i vas:Bucl es
Hast ahacepocot ansól opodí amoscr earpr ogr amascuyaej ecuci ónf uer al i neal : •
Hazest o
•
Ahor aest oot r o
•
…
Luegovi mosl asest r uct ur ascondi ci onal esI queyanosper mi t enj ugarunpocomásy FyCOND hacerquenuest r ospr ogr amasnof uer ant anl i neal es.Ahor avamosaverf unci onesquenos per mi t i r ácr earr epet i ci onesdecódi goyal goquet alvezt esuene,l osbucl es,queseut i l i zanmucho enpr ogr amaci ón.
( WHI LEcondi ci ón[ expr 1][ expr 2]…) Laf unci ónwhi ej ecut al asexpr esi onesi ndi cadasMI secumpl al acondi ci ón,ydevuel ve l e ENTRAS elval ordel aúl t i maexpresi óneval uada.Porej empl o:
( setqi0) ( whi l e(
( setqi10) ( whi l e(
Lasexpr esi onesenWhi sonopci onal es,demodoquepodemoscr earunbucl eenelquesol ose l e i ndi quel acondi ci ón:
( whi l e( not( setqpt( get poi nt \ “nPunt oi ni ci al :“) ) ) ) Enest ecasol acondi ci ónes( esdeci r ,pi deunpunt oal not( setqpt( get poi nt \ “nPunt oi ni ci al :“) ) ) usuari oyl oal macenaenl avar i abl ept . •
•
Sielusuar i oi ndi caunpunt o,pt =( XYZ)queesdi st i nt o deni ,( devol ver áni ysal dr ádel af unci ónWhi l not( setqpt( get poi nt \ “nPunt oi ni ci al :“) ) ) l l e. Sielusuar i oi ndi c aI nt r o,get devol ver áni yl oal macenar áenl avar i abl ept ,demodo poi nt l que( devol ver áT,ypr egunt ar ádenuevoporun not( setqpt( get poi nt \ “nPunt oi ni ci al :“) ) ) punt o.
Porl ot ant o,mi ent r asnosei ndi caunpunt o,si guepr egunt ando. Ot r oej empl ot í pi codebucl esesenelqueseut i l i zanal gunasvar i abl escomoflags( banderaso par ai ndi carsial goest áact i vadoodesact i vadoopar acont r ol ardi st i nt osval or es. banderillas) Veamosunej empl o,supongamosqueayb sondosvar i abl esqueal macenandosnúmer osr eal es:
( i f(
Sia esmenorqueb–>flag1=ni l
•
Sia NO esmenorqueb–>flag1=T
Luegol af unci ónWhi eval úal acondi ci ónflag1 quedevol ver ásuval orni l e loT. •
•
Siesflag1=ni esmenorqueb)noeval úal asexpr esi onespuesnosever i fical a l( a condi ci ón. Siesflag1=T( NO esmenorqueb)sever i fical acondi ci ónasíqueseej ecut anl as a expr esi ones.Pr i mer onosdi cequea noesmenorqueb,nosvuel veapedi relval ordeby compr uebasia esmenorqueelnuevoval ordeb encuyocasoasi gnaal abander i l l aflag1el v a l o rni par asal i rdelbucl e. l
Esdeci r ,mi ent asa NO seamenorqueb,nospedi r áunnuevoval ordeb.
Enl af unci ónWhi gualquevi mosconI ci ónpodemosut i l i zar l e,ali FyCOND,comocondi expr esi onesl ógi cas.Porej empl o:
( whi l e( or(
( REPEATcant i dad[ expr 1][ expr 2] ) Laf unci ónrepeat ej ecut al asexpr esi onesi ndi cadaselnúmer odevecesquesei ndi que encant veelr esul t adodel aúl t i maexpr esi óneval uada. i dadydevuel
( repeat10( pr ompt \ “nEst ecur soesdemasi adof áci lpar ami“) ) Tambi énpodr í amosasi gnarl acant i dadar epet i raunavar i abl e:
( setq Bar t _Si mpson( getint \ “nNúmer oder epet i ci onespar aBar t :“) ) ( repeat Bar t _Si mpson( pr ompt \ “nNohacef al t af uegoenunsi mul acr odei ncendi o“) ) Enest ecasoescr i bi r í aenl api zar r a,esdeci rl avent anadecomandosdeAut oCAD,esaf r aset ant as vecescomol ei ndi quemos. Tambi énpodemosobt enerl acant i dadpormedi odeunaf unci óndeAut oLI SP,comor esul t adode unaoper aci ón:
( repeat( +45)( pr ompt“Est ecur somepar ecemuysenci l l o“) ) osuponi endoquel asvar i abl esayb t enganasi gnadosdosnúmer osent er os:
( pr ompt“I nspect orGadget ,est emensaj eseaut odest r ui r áen… “) ( setqi0) ( repeat( +ab) ( pr ompt \ “t “) ( pr ompt( i t oai ) ) ( setqi( 1+i ) ) ) ¿Per oquésucedesiaob sonunnúmer or ealynounent er o?¿r epet i r ál asexpr esi ones2. 5veces? Puesno,nosdar áuner r or .Poresohayqueest arbi ensegur osdequel acant i dadi ndi cadaesun númer oent er oynounr eal .I ncl usosicomocant i dadi ndi camosunnúmer oent er osi ndeci mal es, como2. 0,dar áuner r or . Vamosamodi ficarl ar ut i naARAND par ahacerqueelsegundor adi osi empr eseamayorqueel pr i mer o.Elcódi gocor r espondi ent ealcí r cul oext er i orer aelsi gui ent e:
( i ni t get7“Di ámet r o“) ( setq r ad( getdist pt o \ “nRadi oext er i or/Di ámet r o:“) ) ( i f( = r ad“Di ámet r o“) ( progn ( i ni t get7)
( setq r ad( d / (( getreal \ “nDi ámet r oext er i or :“)2. 0) ) ) ) ( comm mmand“ d _ “. ci r cl e”pt or ad) Lopr i mer oquevamo mosacambi areselnombr edel asvar i abl es.Enl ugardeut i l i zarl a v a r i a b l er t ant opar aelr adi oi nt er i orcomopar aelext er i or ,vamosaut i l i zarl avar i abl eradi par ael ad r adi oi nt er i oryl av ar i abl erade par aelext er i or .Asípodr emoscompar arsi esma mayorqueradi . rade Podr í amossust i t ui relcódi goant er i orporelsi gui ent e:
( whi l e( or( not r ade)( not( < r adir ade) ) ) ( i ni t get7“Di áme met r o“) ( setq r ade( getreal \ “nRadi oext er i or/Di ámet r o:“) ) ( i f( = r ade“Di áme met r o“) ( progn ( i ni t get7) ( setq r ade / (( getreal \ “nDi ámet r oext er i or :“)2. 0) ) ) ) ) ( comm mmand “_. ci r cl e”pt or ade) Lapr i mer avezqueseeval úal acondi ci óndelbucl e,nosehaasi gnadoaúnni ngúnval oralr adi o ext er i or .Demo modoquerade=ni devol ver áT. ly( not rade) Como mo( comp mpr uebaquealmenossever i fiqueunadel asdos or( not r ade)( not( < r adir ade) ) ) condi ci ones,alver i ficar sel apr i mer acondi ci ón( l asegundanisi qui er aseeval úa( por not r ade) suert e,puest oquealnoest ardefini darade nosdar í auner r or ) .Lacondi ci ónsever i ficayej ecut al as expr esi onesqueest ánacont i nuaci ón,quenospi denunval orpar aelr adi oext er i or . Esdeci r ,mi ent r asnosei ndi queelr adi oext er i oroest eseamenorqueelr adi oi nt er i orseej ecut ael bucl e,quenospi deunnuevoval orpar aelr adi oext er i or .Alsal i rdelbucl eyat enemosunr adi o ext er i orvál i doasíquedi buj amosl aci r cunf er enci aext er i or .Elcódi gocompl et oser í a:
( defun C: ARAND / ( pt or adir adecmd md0) 0) ( comm mmand“ d _ “. undo” _ “ begi n“) ( i f( =( setq cmd0( 0( getvar“cmd mdecho“) )1) ( setvar“cmd mdecho”0) ) ( i ni t get1) ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( i ni t get7“Di áme met r o“) ( setq radi( getdist pt o \ “nRadi oi nt er i or/Di ámet r o:“) ) ( i f( = radi“Di áme met r o“)
( progn ( i ni t get7) ( setq rad / i(( getreal \ “nDi ámet r oi nt er i or :“)2. 0) ) ) ) ( comm mmand“ d _ “. ci r cl e”pt or adi ) ( whi l e( or( not r ade)( not( < r adir ade) ) ) ( i ni t get7“Di áme met r o“) ( setq r ade( getdist pt o \ “nRadi oext er i or/Di ámet r o:“) ) ( i f( = r ade“Di áme met r o“) ( progn ( i ni t get7) ( setq r ade / (( getreal \ “nDi ámet r oext er i or :“)2. 0) ) ) ) ) ( comm mmand“ d _ “. ci r cl e”pt or ade) ( i f( = cmd01 01) ( setvar“cmd mdecho”1) ) ( comm mmand“ d _ “. undo” _ “ end“) ( princ) ) ( pr omp mpt \ “nNuevocomandoARANDcar gado“)
Est r uct ur asr epet i t i vas:Bucl es Hast ahacepocot ansól opodí amo moscr earpr ogr ama mascuyaej ecuci ónf uer al i neal : •
Hazest o
•
Ahor aest oot r o
•
…
Luegovi mosl asest r uct ur ascondi ci onal esI queyanosper mi t enj ugarunpocomá másy FyCOND hacerquenuest r ospr ogr ama masnof uer ant anl i neal es.Ahor avamosaverf unci onesquenos per mi t i r ácr earr epet i ci onesdecódi goyal goquet alvezt esuene,l osbucl es,queseut i l i zanmucho enpr ogr ama maci ón.
( WHI LEcondi ci ón[ expr 1][ expr 2]…) Laf unci ónwhi ej ecut al asexpr esi onesi ndi cadasMI secumpl al acondi ci ón,ydevuel ve l e ENTRAS elval ordel aúl t i maexpresi óneval uada.Porej empl o:
( setqi qi0) ( whi l e(
( setqi qi10) ( whi l e(
( whi l e( not( setqp qpt( get poi nt \ “nPunt oi ni ci al :“) ) ) ) Enest ecasol acondi ci ónes( esdeci r ,pi deunpunt oal not( setqp qpt( get poi nt \ “nPunt oi ni ci al :“) ) ) usuari oyl oal macenaenl avar i abl ept . •
•
Sielusuar i oi ndi caunpunt o,pt =( XYZ)queesdi st i nt o deni ,( devol ver áni ysal dr ádel af unci ónWhi l not( setqp qpt( get poi nt \ “nPunt oi ni ci al :“) ) ) l l e. Sielusuar i oi ndi c aI nt r o,get devol ver áni yl oal macenar áenl avar i abl ept ,demo modo poi nt l que( devol ver áT,ypr egunt ar ádenuevoporun not( setqp qpt( get poi nt \ “nPunt oi ni ci al :“) ) ) punt o.
Porl ot ant o,mi ent r asnosei ndi caunpunt o,si guepr egunt ando. Ot r oej empl ot í pi codebucl esesenelqueseut i l i zanal gunasvar i abl escomoflags( banderaso par ai ndi carsial goest áact i vadoodesact i vadoopar acont r ol ardi st i nt osval or es. banderillas) Veamosunej empl o,supongamosqueayb sondosvar i abl esqueal macenandosnúmer osr eal es:
( i f(
Sia esmenorqueb–>flag1=ni l
•
Sia NO esmenorqueb–>flag1=T
Luegol af unci ónWhi eval úal acondi ci ónflag1 quedevol ver ásuval orni l e loT. •
•
Siesflag1=ni esmenorqueb)noeval úal asexpr esi onespuesnosever i fical a l( a condi ci ón. Siesflag1=T( NO esmenorqueb)sever i fical acondi ci ónasíqueseej ecut anl as a expr esi ones.Pr i mer onosdi cequea noesmenorqueb,nosvuel veapedi relval ordeby compr uebasia esmenorqueelnuevoval ordeb encuyocasoasi gnaal abander i l l aflag1el v a l o rni par asal i rdelbucl e. l
Esdeci r ,mi ent asa NO seamenorqueb,nospedi r áunnuevoval ordeb. Enl af unci ónWhi gualquevi mosconI ci ónpodemosut i l i zar l e,ali FyCOND,comocondi expr esi onesl ógi cas.Porej empl o:
( whi l e( or(
( REPEATcant i dad[ expr 1][ expr 2] )
Laf unci ónrepeat ej ecut al asexpr esi onesi ndi cadaselnúmer odevecesquesei ndi que encant veelr esul t adodel aúl t i maexpr esi óneval uada. i dadydevuel
( repeat10( pr ompt \ “nEst ecur soesdemasi adof áci lpar ami“) ) Tambi énpodr í amosasi gnarl acant i dadar epet i raunavar i abl e:
( setq Bar t _Si mpson( getint \ “nNúmer oder epet i ci onespar aBar t :“) ) ( repeat Bar t _Si mpson( pr ompt \ “nNohacef al t af uegoenunsi mul acr odei ncendi o“) ) Enest ecasoescr i bi r í aenl api zar r a,esdeci rl avent anadecomandosdeAut oCAD,esaf r aset ant as vecescomol ei ndi quemos. Tambi énpodemosobt enerl acant i dadpormedi odeunaf unci óndeAut oLI SP,comor esul t adode unaoper aci ón:
( repeat( +45)( pr ompt“Est ecur somepar ecemuysenci l l o“) ) osuponi endoquel asvar i abl esayb t enganasi gnadosdosnúmer osent er os:
( pr ompt“I nspect orGadget ,est emensaj eseaut odest r ui r áen… “) ( setqi0) ( repeat( +ab) ( pr ompt \ “t “) ( pr ompt( i t oai ) ) ( setqi( 1+i ) ) ) ¿Per oquésucedesiaob sonunnúmer or ealynounent er o?¿r epet i r ál asexpr esi ones2. 5veces? Puesno,nosdar áuner r or .Poresohayqueest arbi ensegur osdequel acant i dadi ndi cadaesun númer oent er oynounr eal .I ncl usosicomocant i dadi ndi camosunnúmer oent er osi ndeci mal es, como2. 0,dar áuner r or . Vamosamodi ficarl ar ut i naARAND par ahacerqueelsegundor adi osi empr eseamayorqueel pr i mer o.Elcódi gocor r espondi ent ealcí r cul oext er i orer aelsi gui ent e:
( i ni t get7“Di ámet r o“) ( setq r ad( getdist pt o \ “nRadi oext er i or/Di ámet r o:“) ) ( i f( = r ad“Di ámet r o“) ( progn ( i ni t get7) ( setq r ad( /( getreal \ “nDi ámet r oext er i or :“)2. 0) ) ) ) ( command“ _. ci r cl e”pt or ad) Lopr i mer oquevamosacambi areselnombr edel asvar i abl es.Enl ugardeut i l i zarl a v a r i a b l er t ant opar aelr adi oi nt er i orcomopar aelext er i or ,vamosaut i l i zarl avar i abl eradi par ael ad r adi oi nt er i oryl av ar i abl erade par aelext er i or .Asípodr emoscompar arsi esmayorqueradi . rade Podr í amossust i t ui relcódi goant er i orporelsi gui ent e:
( whi l e( or( not r ade)( not( < r adir ade) ) )
( i ni t get7“Di ámet r o“) ( setq r ade( getreal \ “nRadi oext er i or/Di ámet r o:“) ) ( i f( = r ade“Di ámet r o“) ( progn ( i ni t get7) ( setq r ade( /( getreal \ “nDi ámet r oext er i or :“)2. 0) ) ) ) ) ( command “_. ci r cl e”pt or ade) Lapr i mer avezqueseeval úal acondi ci óndelbucl e,nosehaasi gnadoaúnni ngúnval oralr adi o ext er i or .Demodoquerade=ni devol ver áT. ly( not rade) Como( compr uebaquealmenossever i fiqueunadel asdos or( not r ade)( not( < r adir ade) ) ) condi ci ones,alver i ficar sel apr i mer acondi ci ón( l asegundanisi qui er aseeval úa( por not r ade) suert e,puest oquealnoest ardefini darade nosdar í auner r or ) .Lacondi ci ónsever i ficayej ecut al as expr esi onesqueest ánacont i nuaci ón,quenospi denunval orpar aelr adi oext er i or . Esdeci r ,mi ent r asnosei ndi queelr adi oext er i oroest eseamenorqueelr adi oi nt er i orseej ecut ael bucl e,quenospi deunnuevoval orpar aelr adi oext er i or .Alsal i rdelbucl eyat enemosunr adi o ext er i orvál i doasíquedi buj amosl aci r cunf er enci aext er i or .Elcódi gocompl et oser í a:
( defun C: ARAND( / pt or adir adecmd0) ( command“ _. undo” _ “ begi n“) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( i ni t get1) ( setq pt o( get poi nt \ “nCent r odel aar andel a:“) ) ( i ni t get7“Di ámet r o“) ( setq radi( getdist pt o \ “nRadi oi nt er i or/Di ámet r o:“) ) ( i f( = radi“Di ámet r o“) ( progn ( i ni t get7) ( setq rad / i(( getreal \ “nDi ámet r oi nt er i or :“)2. 0) ) ) ) ( command“ _. ci r cl e”pt or adi ) ( whi l e( or( not r ade)( not( < r adir ade) ) ) ( i ni t get7“Di ámet r o“) ( setq r ade( getdist pt o \ “nRadi oext er i or/Di ámet r o:“) )
( i f( = r ade“Di ámet r o“) ( progn ( i ni t get7) ( setq r ade( /( getreal \ “nDi ámet r oext er i or :“)2. 0) ) ) ) ) ( command“ _. ci r cl e”pt or ade) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( command“ _. undo” _ “ end“) ( princ) )
Funci onespar amani pul arcadenasdet ext o Enest ear t í cul over emosl asf unci onesquei ncor por aAut oLI SPpar amani pul arcadenasdet ext o.
( CHRent er o) Est af unci óndevuel veelcar áct eralquel ecor r espondeelcódi goASCI Ii ndi cado.Porej empl o: devuel ve“ ( chr65) A” devuel ve“ ( chr97) a”
( ASCI It ext o) Devuel veelcódi goASCI I( unnúmer oent er o)corr espondi ent ealpr i mercar áct erdel acadenade t ext oi ndi cada. devuel ve65 ( ascii“Abcde“) t ambi éndevuel ve65 por quel oúni coquei mpor t aeselpr i mercar áct erdel acadenade ( ascii“A“) t e x t o .
( STRLENt ext o1[ t ext o2]…) Est af unci óndevuel vel al ongi t ud( númer odecar act er es)del acadenadet ext oquer eci becomo ar gument o. devuel ve8 ( s t r l e n“Aut oLI SP“) Tambi énpodemosasi gnarunacadenadet ext oaunavar i abl eycompr obardespuéssul ongi t ud cons t r l e n:
( setq t xt 1“Aut oLI SP“) ( s t r l e n t xt 1) Sisei ndi camásdeunacadenadet ext o,devol ver ál asumadesusl ongi t udes: devuel ve15 ( s t r l e n“Aut oLI SP”“Aut oCAD“)
( STRCASEt ext o[ modo] ) Seut i l i zapar aconver t i runt ext oenmayúscul asomi núscul as.Porej empl o: devuel ve“ ( strcase“Aut oLI SP“) AUTOLI SP” Sisei ndi caelar gument oopci onal conunval ordi st i nt odeni ,ent oncesdevuel veelt ext oen [ modo] l mi núscul as. devuel ve“ ( strcase“Aut oLI SP”T) aut ol i sp”
( STRCATt ext o1[ t ext o2]…) Est af unci ónconcat ena( une)var i ascadenasdet ext o. devol ver í a“ ( strcat“Hol a”“Mundo“) Hol aMundo” Par aquel asdospal abr asant er i or esapar ezcansepar adassepuedenhacerdoscosas: •
Añadi relespaci oenunadel aspal abr as:( strcat“Hol a”“Mundo“)
•
Añadi relespaci ocomoot r acadenadet ext o:( strcat“Hol a”””“Mundo“)
Est af unci ónseut i l i zamuchopar aconcat enarl osmensaj esquesemuest r analusuar i o.Por ej empl o:
( setqi10) ( setq r ad( getreal( strcat \ “nRadi o<”( i t oai )“>:“) ) ) Pedi r áunnúmer or ealalusuar i oymost r ar áelsi gui ent emensaj eenl avent anadeAut oCAD: Radi o <10>:
( SUBSTRt ext opos_i ni ci al[ l ongi t ud] ) Est af unci óndevuel vepart edel acadenadet ext oquer eci becomoar gument o,apart i rdel a posi ci óni ni ci alquesei ndi que. devuel veelt ext oapart i rdelqui nt ocar áct er ,esdeci r“ . ( substr“Aut oLI SP”5) LI SP“ devuel veelt ext oent er o“ ( substr“Aut oLI SP”1) Aut oLI SP”. devuel ve“” esdeci r ,unacadenadet ext ovací apuest oqueelt ext o ( substr“Aut oLI SP”15) i ndi cadot i enemenosde15car act er es. Tambi énsepuedei ndi carl al ongi t ud,esdeci relnúmer odecar act er esquesedeseanobt ener . devuel ve“ “ .Apar t i rdelqui nt ocar áct erdevuel ve2car act er es. ( substr“Aut oLI SP”52) LI devol ver á“ ,por quet ansól ot enemos4car act er esmás,apar t i rdel ( substr“Aut oLI SP”510) LI SP“ qui nt o,ynodi ez.
( WCMATCHcadenapat r ón) Est af unci ónseut i l i zapar acompar arsiunacadenadet ext over i ficaocumpl eunpat r ón,encasode quel over i fiquedevuel veT ysinol over i ficadevuel veni . l devol ver áT yaquecompr uebasi“ enzapor“ . ( wcmat ch“Aut oLI SP”“A* “) Aut oLI SP”comi A“ devol ver áni ,puest oque“ s t i nt ode“ . ( wcmat ch“Aut oLI SP”“a* “) l A”esdi a“ Lospat r onessoncadenasdet ext oenl asquesepuedenempl eardet er mi nadossí mbol oscomodí n: •
Equi val eaundí gi t o. #
•
Equi val eaunal et r a. @
•
Equi val eauncar áct erquenoseaal f anumér i co( nil et r asninúmer os) . .
•
Equi val eaunacadenadecar act er es. *
•
Equi val eauncar áct ercual qui er a. ?
•
Equi val eaunanegaci ón. ~ Porej empl o( compr uebaqueelt ext onoempi ezapor wcmat ch“Aut oLI SP”“~B* “)
o
“ . B“ Nosper mi t ei ndi carvar i oscar act er es. [ . . . ]
•
o
o
Porej empl o( compr uebasielt ext ocomi enzapor wcmat ch“Aut oLI SP”“[ AB] * “) “ . A”opor“ B“ Tambi énpodr í amosi ndi carunr ango:( compr ueba wcmat ch“Aut oLI SP”“[ AF] * “) sielt ext ocomi enzapor“ ,“ ,“ ,… hast al a“ . A“ B“ C“ F“
I ncl usopodemoscompr obarcondospat r onesdi st i nt os,separ adosporuna coma:( devol ver í aT. wcmat ch“Aut oLI SP”“A* , * LI SP“) ¿Per ocómohacemosent oncespar asabersiunt ext ot i eneunacoma?nopodemoshacerl os s i g u i e n t e :( yaqueenest ecasol eest amosi ndi candodos wcmat ch“Curso,deAut oLI SP”“* , * ”) pat r ones,comoenelej empl oant er i or . Tendr emosquehacer l oasí :( alant eponerel wcmat ch“Curso,deAut oLI SP”“* ’ , * “) apóstrofo‘ del ant edeunodel oscar act er escomodi nesdel ospat r ones,l eest amosdi ci endoque quer emosusare ,esdeci r ,l oqueponemosacont i nuaci ónt alcualest á. ll i t eral Puest emavi st o.Asíquepodemosahor amodi ficarl amacr oCI .Tení amosl assi gui ent es RCPERI l í neasenl amacr o:
( pr ompt \ “nPer í met r o<“) ( pr ompt( rt os( *( getvar“circlerad“) 2pi )22) ) ( pr ompt“>:“) Podr í amosconcat enarl ascadenasdet ext oyej ecut arunaúni cavezl af unci ónpr : ompt
( pr ompt( strcat \ “nPer í met r o<”( rt os( *( getvar“circlerad“)2pi )22)“>:“) )
Vamosahor aacr earunnuevocomandol l amadoCI quenosper mi t i r ádi buj armúl t i pl es RCULOM ci r cunf er enci asconcént r i cas.Ycomenzar emoscomosi empr eporelpseudocódi go.Podr í aseral go así: 1.
Pedi relcent r odel asci r cunf er enci as.
2.
Mi ent r assei ndi queunpunt oor adi o. 1.
Di buj aruncí r cul o.
Alescr i bi relcódi go,l opri mer oesdefini relnuevocomando:
( defun C: CI RCULOM / () Demoment onoponemosl asvar queaúnnot enemosnivar i abl esninada.Las i abl esl ocal es,por añadi r emosalt er mi narl amacr o. 1.Pedi relcent r odel oscí r cul os.Porej empl oasí :
( setq pt o( get poi nt \ “nCent r o:“) ) Talvezpi enses… ¿nodeber í amosponerant esunI ament e,per ononos NI TGET?Puessegur par emosahor aconeso.Pr i mer oaversihacemosquef unci onel ar ut i na,despuésyanos pr eocupar emosdequef unci onebi en. 2.Mi ent r assei ndi queunpunt oor adi o.Est ol opodemoshacerconWhi l e:
( whi l e( setq r ad( getdist pt o \ “nRadi o[ I nt r opar at er mi nar ] :“) ) Pi depunt osodi st anci as,par ausar l ascomor adi o,hast aquesepul seI nt r o.Fí j at equenoseha cer r adoelwhi queaúnt enemosqueañadi rl asexpr esi onesquevandent r o. l e,por Ynosf al t asol odi buj arl aci r cunf er enci a.Asídesenci l l o:
( command“ _. ci r cl e”pt or ad) nosf al t andoscosaspar at er mi nar :Elpar ént esi sdeci er r edeWhi yeldel af unci ón.Elcódi go l e compl et oquedaasí :
( defun C: CI RCULOM / () ( setq pt o( get poi nt \ “nCent r o:“) ) ( whi l e( setq r ad( getdist pt o \ “nRadi o[ I nt r opar at er mi nar ] :“) ) ( command“ _. ci r cl e”pt or ad) ) ) Ahor aescuandovamosai nt r oduci rl asmej or asyar et ocarelcódi go.Vamosacomenzarl i mi t ando l asposi bl esr espuest asdel osusuar i osconI : ni t get •
Añadi mos( ant esdel asol i ci t udGet ,par aqueelusuar i onopuedai ndi car i ni t get1) poi nt I nt r ocomor espuest a. Yañadi mos( esdegetdist par aquenoper mi t anicer oniunnúmer onegat i vo. i ni t get6)ant
•
o
Obser vaque( sevuel veaponerot r avezdent r odelbucl eWhi l e.Sino i ni t get6) l ohi ci ér amos ali ndi carelpr i merr adi onopermi t i r í aresponderconcer oniconunnúmer o negat i vo.Si nembar go,par aelsegundor adi oyt odosl ossi gui ent essiquenosdej ar í a.Par a
quenol oper mi t a,hayquei ncl ui rl af unci ónI ant esdequeseej ecut ede ni t get nuevoGet ,demodoqueseañadedent r odelbucl eWhi di st l e. Ot r asmej or asser í an: •
Añadi rl asvar i abl esal al i st adevar i abl esl ocal esdel af unci ón.
•
Desact i varelecodemensaj es.
•
Añadi runasal i dal i mpi aal af unci ón.
•
Añadi runal í neaf uer adel af unci ónpar aquei ndi queelnombr edelcomandoalcar garl a macr o.
•
Añadi relcomandoDeshacerI ni ci oalpr i nci pi odel ar ut i nayDeshacerFi nalt er mi nar l a.
Elcódi godel amacr oquedaasí :
( defun C: CI RCULOM / ( pt or adcmd0) ( command“ _. undo” _ “ begi n“) ( i f( =( setq cmd0( getvar“cmdecho“) )1) ( setvar“cmdecho”0) ) ( i ni t get1) ( setq pt o( get poi nt \ “nCent r o:“) ) ( i ni t get6) ( whi l e( setq r ad( getdist pt o \ “nRadi o[ I nt r opar at er mi nar ] :“) ) ( command“ _. ci r cl e”pt or ad) ( i ni t get6) ) ( i f( = cmd01) ( setvar“cmdecho”1) ) ( command“ _. undo” _ “ end“) ( princ) ) ( pr ompt \ “nNuevocomandoCI RCULOM car gado“)
Tr abaj arconángul osydi st anci as Aut oLI SPpr opor ci onaunaseri edef unci onespar at r abaj arconángul osydi st anci as,comenzar emos vi endol osángul os:
( ANGLEpt 1pt 2) Est af unci óndevuel veelángul of or madoporl al í neaquevadesdept hast apt i gende 1 2.Elor ángul osser áelej eXyelsent i doant i hor ar i oseconsi der aposi t i vo.Porej empl o:
( setq pt 1( get poi nt \ “nPunt o1:“) ) ( setq pt 2( get poi nt pt 1 \ “nPunt o2:“) ) ( setq ang( angl e pt 1pt 2) ) Hayquefij ar seencualeselpunt oquesei ndi capr i mer oenl af unci ónangl quesihacemos: e,por
( setq ang2( angl e pt 2pt 1) ) Obt endr emosunángul odi st i nt o,elant er i ormáspi omenospi .Porl ot ant o:Noesl omi smoel ángul odept queelángul odept 1apt 2 2apt 1. Sil ospunt osest ánen3D,l ospr oyect asobr eelpl anoXYydevuel veelángul of or madoporsus pr oyecci ones
( DI STANCEpt 1pt 2) Devuel vel adi st anci aen3D ent r el ospunt ospt ospunt osest áen2D,esdeci rno 1ypt 2.Siunodel t i enecoor denadaZ,sei gnor al acoor denadaZdelot r opunt odevol vi endol adi st anci aen2D.
( setq pt 1( get poi nt \ “nPunt o1:“) ) ( setq pt 2( get poi nt pt 1 \ “nPunt o2:“) ) ( setq di st 12( di st ance pt 1pt 2) ) Enest ecaso,( ser í ai gualadi adi st anci adel setq di st 21( di st ance pt 2pt 1) ) st 12.Yaquel punt opt esi gualquel adi st anci adelpunt opt 1alpt 2 2alpt 1.
( POLARpt obaseangdi st ) Est af unci ónseut i l i zapar aobt enerunpunt opormedi odecoor denadaspol ar esapart i rdeunpunt o base.Porej empl o:
( setq pt 1( get poi nt \ “nPunt o1:“) ) ( setq pt 2( pol ar pt 10. 050. 0) ) Est oasi gnar í aal avar i abl ept unpunt oqueest áa50 uni dadesenl adi r ecci óndelej eXapar t i rdel 2 punt obasept ci ér amos: 1.Sihi
( command“ _. l i ne”pt 1pt 2“”) Di buj ar í amosunal í neahor i zont alde50uni dades,desdept hast apt 1 2. Hayqueobservarqueen( sei ndi capr i mer oelpunt obase,l uegounángul oen pol ar pt 10. 050. 0) r adi anesyporúl t i mounadi st anci a.Demodoque:
( setq pt 2( pol ar pt 1( /pi2. 0)50.0) ) Devol ver áunpunt oqueest áa50uni dadesenl adi r ecci óndelej eYapart i rdelpunt obasept 1.Ya queenest ecasosehai ndi cadounángul ode esdeci r ,90º . / (pi2. 0)
Funci onesavanzadaspar amanej arl i st as Yahemosvi st oal gunasf unci onespar amanej arl i st as: per ohaymuchasmás.En CAR,CDR,LI ST est et emaver emosal gunasdel asquenosf al t an.
( LASTl i st a) Est af unci óndevuel veelúl t i moel ement odel al i st aquer eci becomoar gument o.Demodoquesi hacemos:
( setq pt o( get poi nt \ “nPunt odei nser ci ón:“) ) ( setqz( lastpt o) ) Enl avar i abl ez al macenamosl acoor denadaZdelpunt opt empr equeelpunt oest éen3D o,si por quesiest áen2D al macenar í al acoor denadaY.Lospunt ossonl i st asdelt i po( . 10. 020. 00. 0)
( NTHnumer ol i st a) Elej empl oant er i ornoser í amuyút i lpar aobt enerl acoor denadaY,yaquesii ndi camosunpunt oen 3D devol ver ál acoor denadaZ.Ent onces,¿cómopodemosobt enerl acoor denadaY?yavi mosun mét odo:
( CADRpt o) Per osupongamosquet enemosunal i st ade27el ement os,yquer emosobt enerelel ement o22. ¿Cómol ohar í amos?Nopodemosut i l i zar( cADDD…. . DDDrpt o)yaquesól onosper mi t eagr upar4 f unci onescArycDr .Demodoquet endr í amosquehacer( cADDD( cDDDD( cDDDDr…. .pt o) .Per o hacerl oasíesbast ant eengor r oso. Devuel veelel ement ocuyonúmer odeor densei ndi cadel al i st a. devol ver ál acoor denadaY,no?Puesno! .Losel ement osdeunal i st aseempi ezana ( nt h2pt o) numer ardesdecer o. Porej empl o: •
devol ver ál acoordenadaX delpunt opt ( nt h0pt o) o.
•
devol ver ál acoordenadaY delpunt opt ( nt h1pt o) o.
•
devol ver ál acoordenadaZ delpunt opt st eysinoexi st edevol ver áni . ( nt h2pt o) o,siexi l
( MEMBERel ement ol i st a) Supongamosquet enemosunal i st acomol asi gui ent e:
( setq l st( l i st“peras”“mel ones”“sandi as”“perros”“pl át anos“) ) par acompr obarsi“ t eneceal al i st al s eut i l i zal af unci ónMEMBER. perros”per st Conest af unci ón,sielel ement oi ndi cadoper t eneceal al i st adevol ver ál al i st aapar t i rdeese el ement o.Porej empl o: devol ver á( ( member“perros”l st ) “perr os”“pl át anos”) Sielel ement onoper t eneceal al i st a,devol ver áni . l
devuel veni ( member“gatos”l st ) l
( SUBSTel em_nuevoel em_ant i guol i st a) Est af unci ónr eempl azaunel ement odeunal i st aporsunuevoval or .Porej empl o,par ar eempl azar “ : perros”por“ naranjas“ devuel vel al i st aconelel ement oquesehamodi ficado(“peras” ( subst“naranj as”“perros”l st ) ol avar i abl el si gueal macenandol al i st a “mel ones”“sandi as”“nar anj as”“pl át anos”).Per st ant er i or( “per as”“mel ones”“sandi as”“per r os”“pl át anos”). Par amodi ficarl al i st aal macenadaenl avar i abl el t enemosqueasi gnar l eelval ordevuel t o st porSUBST:
( setq l st( subst“naranjas”“perros”l st ) )
( CONSel ement ol i st a) Supongamosquequer emosañadi runnuevoel ement o“ asi gui ent el i st a: l i mones”al
( setq l st( l i st“peras”“naranjas”“manz anas“) ) Podr í amoshacer l oconl ,per oserí aal gocompl i cado: i st
( setq l st( l i st“l i mones”( carl st )( cadrl st )( caddrl st ) ) ) Par aunal i st ade3el ement ossepuedehacer ,per o… ¿Ysit enemos30el ement os? Laf unci óncons añadeunel ement oal al i st ai ndi cada.Elnuevoel ement osesi t úaenelpr i mer l ugar .Esdeci r : devol ver á( ( cons“l i mones”l st ) “l i mones”“peras”“nar anj as”“manzanas”) Yali gualquesucedí aconSUBST,sisól ohacemos( noest amosasi gnandol a cons“l i mones”l st ) l i st ar es ul t ant eal av ar i abl el .Deber í amoshacer l oasí : st
( setq l st( cons“l i mones”l st ) ) Per o… ysil oquequer emosesañadi runel ement oalfinaldel al i st a?Ant esdevercomoser í a, veamosot r af unci ón:
( REVERSEl i st a) Devuel vel al i st aquer eci becomoar gument oper oenor deni nver so. devol ver á( ( reversel st ) “manzanas”“naranj as”“peras”“l i mones”) Bi en,puespar aañadi runel ement oalfinaldeunal i st apodemosut i l i zar consyreverse:
( setq l st( reverse( cons“plátanos”( reversel st ) ) ) ) Veamoscomof unci onal al í neadecódi goant er i or : •
•
•
devuel vel al i st aenor deni nver so ( reversel st ) añade“ i merel ement odel al i st a ( cons“plátanos”( reversel st ) ) plátanos”comopr i nver t i da porúl t i movol vemosai nver t i relor dendel al i st ayl oasi gnamosal a v a r i a b l el :( st setq l st( reverse( cons“platanos”( reversel st ) ) ) )
( ACAD_STRLSORTl i st a) Est af unci óndevuel veunal i st aconsusel ement os,quedeber ánsercadenasdet ext o,or denados al f abét i cament e.Porej empl o: devol ver á ( acad_strlsortl st ) ( “l i mones”“manzanas”“nar anj as”“per as”“pl át anos”)
( APPENDl i st a1[ l i st a2]…) Est af unci ónunedosomásl i st asydevuel vel al i st ar esul t ant e.Sit enemosdosl i st as:
( setq l st 1( l i st“peras”“nar anj as”“manzanas“) ) ( setq l st 2( l i st“fresas”“l i mones“) ) yquequer emosuni r l as… devol ver á( ( append l st 1l st 2) “per as”“nar anj as”“manzanas”“f r esas”“l i mones”)
Apl i carf unci onesal osel ement osdeunal i st a Supongamosquet enemosunal i st adepunt os:
( setq l st pt os( l i st( l i st0. 00. 0)( l i st10. 00. 0)( l i st10. 010. 0)( l i st0. 010. 0) ) ) Esdeci r ,l esunal i st aconcuat r oel ement oscor r espondi ent esal osvért i cesdeuncuadr ado st pt os del ado10.Supongamosquequer emosdi buj aruncí r cul oencadaunodel ospunt osdel st pt os. Hast aahor apodí amoshacer l oasí :
( setqi0 nent( length l st pt os) ) ( whi l e( < inent ) ( setqpt( nt h il st pt os) ) ( command“ _. ci r cl e”pt1. 0) ( setqi( 1+i ) ) ) Lavar i abl ei nosser vi r ácomoí ndi ceocont adorenelbucl eWhi easi gnamos l e,poresol i ni ci al ment eelv al ori ni ci al quel osel ement osdeunal i st asenumer anempezandodesdecer o. 0,por Esbast ant ehabi t ualquel osnombr esdel asvar i abl esut i l i zadascomocont ador esseanijk… Tambi énasi gnamosanent elnúmer odeel ement osdel al i st al quesi nonosabr emos st pt os,por comosal i rdelbucl enihast aqueel ement ol l egar . Elbucl eseej ecut ar ámi ent r aselcont adorseamenorquenent esdeci r ,seej ecut ar ápar acada el ement odel i mer al í neadecódi godent r odelbucl e( obt i eneel st pt os.Lapr setqpt( nt h il st pt os) ) el ement onúmer oidel o,yacont i nuaci óndi buj aunaci r cunf er enci aenélde st pt os,queesunpunt radio1. nal ment eaument amoselcont adorpar aquepasealsi gui ent epunt o( .Est a 0.Fi setqi( 1+i ) ) úl t i mal í neaesmuyi mpor t ant e,sinoest uvi er al avar i abl ei ser í asi empr ei gualacer oyelbucl eno t endr í afin.Porl oquedi buj ar í ai nfini t oscí r cul osenelpr i merpunt odel ydar í al ugaraun st pt os er r or . Veamosot r omét odopar adi buj arl oscí r cul osenl osvér t i cesdel st pt os:
( whi l e l st pt os
( setqpt( car l st pt os) ) ( command“ _. ci r cl e”pt1. 0) ( setq l st pt os( cdr l st pt os) ) ) Enest ecaso,elbucl eseej ecut ar ámi ent r ast engamospunt osenl al i st aesdeci r , mi ent r asl seadi st i nt odeni .Sedefinept comoelpr i merpunt odel al i st al buj a st pt os l st pt os,sedi unaci r cunf er enci ader adi o1. 0concent r oenpt yporúl t i mosemueveelcont ador .Per o,¿qué cont ador ?Sinoexi st e!Pues,( el i mi namoselpr i merel ement odel a setq l st pt os( cdr l st pt os) ) l i st al di endounel ement o( punt o)cadavezqueseej ecut ael st pt os.Demodoquel st pt osvaper bucl e.Ll egaunmoment oenelquel yal st pt os=( ( 0. 010. 0) ) eval uar se( seasi gnar áal elval ordevuel t oporCDR,esdeci rni . setq l st pt os( cdr l st pt os) ) st pt os l Conl ocualdej adeej ecut ar seelbucl e. Eli nconveni ent edeest esegundomét odoesquesevar í aelval orasi gnadoal avar i abl el st pt os, quefinal ment eval dr áni .Porl oquel al i st adepunt osi ni ci alseper der á. l Bi en,per oAut oLI SPesunexcel ent el enguaj edepr ogr amaci ónpar at r abaj arconl i st as.Demodo quet enemosal gunosmét odosquesonmej or es,yesoesl oquevamosaverenest ear t í cul o.
( FOREACHvar i abl el i st aexpr esi on) Est af unci ónper mi t eapl i carunaexpr esi ónpar acadael ement odel al i st aquer eci becomo ar gument o.Lavar i abl esi mbol i zaaunel ement odedi chal i st a,porl oquesesuel eut i l i zarenl a expr esi ón.Porej empl o:
( foreach pl st pt os( command“ _. ci r cl e”p1. 0) ) Lal í neadecódi goant er i orr epr esent aelt er cermét odopar adi buj arl oscí r cul osenl ospunt os del avar i abl el al l amamosp yl aexpr esi ónaej ecut arpar acadael ement odel al i st a st pt os.Al es:( dóndep esunel ement odel al i st a. command“ _. ci r cl e”p1. 0) Encasodet enerunal i st adecadenasdet ext o,podr i ahacer sel osi gui ent e:
( setq l st t xt( l i st“Cur so”“de”“Aut oLI SP“) ) ( foreach pl st t xt( pr omptp) ) Conl ocual ,escr i bi r í at odosl ost ext osenl avent anadecomandosdeAut oCAD.Sehaut i l i zadoel mi smonombr edevar i abl ep,per opodr í ahaber secambi ado:
( foreach pepel stt xt( princ pepe) ) Supongamosahor aquet enemosunal i st adenúmer os:
( setq l st( l i st5. 01. 52. 63. 89. 7) ) Par asumarl osnúmer ospodr í amoshacerl osi gui ent e:
( setqi0 nent( lengthl st ) t ot al0. 0) ( whi l e( < inent ) ( setq num ( nt h il st ) ) ( setq t ot al( + t ot alnum) ) ( setqi( 1+i ) ) )
I ni ci al ment edefini mosl avar i abl et como0. eseej ecut ar ápar acadael ement odel ot al 0,elbucl sty sedefinenum comoelnúmer oqueest áenl aposi ci óni esenúmer oymovemos .Sumamosat ot al elcont ador .Cuandoseent r aporpri mer avezenelbucl e,num =5. 0demodoquet ot al=0. 0+5. 0. Alvol veraent r arenelbucl enum =1. 5demodoquet ot al=5. 0+( 1. 5)yasíhast aquesel l egaal úl t i moel ement odel . st Tambi énpodr í ahacer sesi nempl earcont ador es,comohi ci mosant es.Yt ambi énpodemoshacer l o conFOREACH,veamos:
( foreach pl st( setq t ot al( + t ot alp) ) ) Todol oqueant esponí amosenunbucl eseponeahor aenunasol al í neadecódi go.
( APPLYnombr e_f unci ónl i st a) Apl i cal af unci ónquer eci becomoar gument oat odosl osel ement osdel al i st a.Elnombr edel a f unc i ónaut i l i z arenAPPLY sei ndi car ápr ecedi daporelsí mbol o‘ par aqueAut oCADi nt er pr et eque l eest amospasandoeset ext ot alcual .Elej empl oant er i orser í a:
( setq t ot al( appl y ‘ +l st ) ) En( est amosapl i candol af unci ón+ at odosl osel ement odel ,equi val ea( appl y ‘ +l st ) st +5. 01. 5 ,yelr esul t adosel oasi gnamosal avar i abl et . 2. 63. 89. 7) ot al Di gamosque‘ eselnombr equeut i l i zamosenAut oLI SPpar ahacerr ef er enci aal af unci ón+,ya + que+ esl af unci ónpr opi ament eynosunombr e.Pr uebal osi gui ent eenl avent anadecomandode Aut oCAD: yf í j at eenl oquedevuel ve( ( l i st“pepe”+5. 0) “pepe”#5. 0) Yahor apr uebaconell i t er al ,esdeci rconelcar áct er‘del ant edel + devuel ve( ( l i st“pepe”‘ +5. 0) “pepe”+5. 0) ¿Ent i endesahor apor queponemos‘ aquenoeval úel af unci ón,yaquedevol ver í a#
( setq l st t xt( l i st“Cur so”“de”“Aut oLI SP“) ) par auni rl ost ext os:
( setq t xt( appl y‘ strcat l st t xt ) ) Demodoquet odoj unt o. xt=“ Cur sodeAut oLI SP”t
( MAPCARnombr e_f unci ónl i st a1[ l i st a2] …) Est af unci ónapl i cal af unci óndeAut oLI SPquer eci becomoar gument oal osel ement osdel asl i st as. Comoasínosevaaent enderveamosal gunosej empl os: Supongamosquet enemosdospunt os:
( setq pt 1( get poi nt \ “nPunt o1:“) )
( setq pt 2( get poi nt pt 1 \ “nPunt o2:“) ) Lospunt ossonl i st ascon2o3el ement os,enf unci óndesit i enen2o3coor denadas. Vamosadet er mi narelvect orconor i genenpt yfinalenpt cul arl as 1 2.Tenemosquecal coor denadasXYZdelvect or ,quesonelr esul t adoder est arl asr espect i vascoor denadasXYZ dept al asdept enerelvect orasí : 1 2.Podemosobt
( setq vect or ( l i st( -( carpt 2)( carpt 1) ) ( -( cadrpt 2)( cadrpt 1) ) ( -( caddrpt 2)( caddrpt 1) ) ) ) Si endo: •
l acoor denadaX( -( carpt 2)( carpt 1) )
•
l acoor denadaY( -( cadrpt 2)( cadrpt 1) )
•
l acoor denadaZ( -( caddrpt 2)( caddrpt 1) )
Bi en,puesest omi smol opodemoshacerconMAPCAR
( setq vect or( mapcar‘ pt 2pt 1) ) Laf unci ónquer eci bemapcares yl oquehaceesapl i carl aal osel ement osdept 2ypt 1,demodo quer est asuscoor denadasX,l asYyl asZ.
APPLYdevuel veunel ement oyMAPCARunal i st a.
Cál cul odelmódul odeunvect or Vamosacompl i carunpocoelt ema.Siqui si ér amosobt enerel módul odeun t endr í amosquecal cul arl ar aí zcuadr adadel asumadesuscoor denadasalcuadr ado: vector 1.
devol ver áunal i st aconl ascoor denadasdelvect oralcuadr ado, ( mapcar‘ * vect orvect or) yaquel asest amosmul t i pl i candoporsimi smas.
2.
Par asumar l asut i l i zamosAPPLY( appl y‘ +( mapcar‘ * vect orvect or) )
3.
Par at er mi narsol onosf al t ahacerl ar aí zcuadr adadel oant er i or
( setq modul o( sqrt( appl y‘ +( mapcar‘ * vect orvect or) ) ) )
Cál cul odelpr oduct oescal ardedos vectores Veamosot r oej empl oenelquesecombi nanAPPLYyMAPCAR.Seanv1yv2 dosvect or esvamos acal cul arsupr oduct oescal ar.
( setqv1( l i st10. 010. 00. 0) )
( setqv2( l i st5. 00. 00. 0) ) Elpr oduct oescal ardel osvect or esv1yv2 esl asumadel ospr oduct osdel ascoor denadas dev1 porl asdev2.Podr í amoshacer l oasí :
( setq pescal ar ( + ( *( carv1)( carv2) ) ( *( cadrv1)( cadrv2) ) ( *( cadrv1)( cadrv2) ) ) ) Per or esul t amássenci l l out i l i zandoMAPCARyAPPLY: 1.
Pr i mer omul t i pl i camosl ascoor denadasdeambosv ect or es( mapcar‘ * v1v2)
2.
yl uegol assumamos,demodoque…
( setq pescal ar( appl y‘ +( mapcar‘ * v1v2) ) )
( LAMBDA( l i st a_ar gument os/ var i abl es_l ocal es)expr esi ón1 [ expr esi ón2]…) Talvezelf or mat odel af unci ónLAMBDA r ecuer deal goaDEFUN. t ambi énseut i l i zapar adefini runaf unci ón,per oadi f er enci adeDEFUN l af unci ónnose LAMBDA al macenaenni ngúnl ugar ,enest ecasoest .Port ant osol empor al osepuedeej ecut ardondese af unci óncr eadanot i enenombr e,porl oquet ampocopodr í amosl l amar l adesde defina.Ademásl ot r apar t edenuest r ocódi go.
Ut i l i zar l asol asi nAPPLYoMAPCARnot i enesent i do. Supongamosquequer emosobt enerelpunt omedi odedospunt os:
( setq pt 1( get poi nt \ “nPunt o1:“) ) ( setq pt 2( get poi nt pt 1 \ “nPunt o2:“) ) Lascoor denadasdelpunt omedi oser ánl ascoor denadasdept másl asdept di vi di daspor2. 0. 1 2 Par asumarsuscoor denadas:( mapcar‘ + pt 1pt 2) Bi en… per oahor a,¿Cómol asdi vi di mospor2. 0?Podemoshacerl osi gui ent e:
( mapca / r‘( mapcar‘ + pt 1pt 2)( l i st2. 02. 02. 0) ) Dondecr eamosunal i st a( ydi vi di mosl osel ement osde( ent r e l i st2. 02. 02. 0) mapcar‘ + pt 1pt 2) l osel ement osdel al i st aant er i or( . 2. 02. 02. 0) Recor demos… ( devuel vel asumadel ascoor denadasdept mapcar‘ +pt 1pt 2) 1ypt 2.Si necesi t amosdi vi di r l apor2. 0.podemoscr earunaf unci ónquer eci baunnúmer oyl odi vi dapor2. 0 devol vi endoelr esul t ado:
( defun2/( num / )( num 2. 0) ) Yahor apasaraMAPCAR l anuevaf unci ón2/ par aquedi vi dacadael ement ode( mapcar‘ + pt 1 por2. 0 pt 2)
( mapcar ’ 2/( mapcar‘ + pt 1pt 2) ) Per ot ambi énpodemoshacer l odeot r af or ma,ut i l i zandol af unci ónLAMBDA enl ugardeDEFUN. Pr i mer oveamoscomoser í anuest r af unci óndefini damedi ant eLAMDA:
( l ambda( num / )( num 2. 0) ) Esmuypar eci doal oquehi ci mosconDEFUN.Per ol af unci óndefini damedi ant eLAMBDAnot i ene nombr eynoseal macenaenni ngúnsi t i o,est empor al ,demodoquenopodemosl l amar l a.¿Dónde debemosut i l i zarLAMBDA?Puesdi r ect ament eenMAPCAR,dondehayquei ndi carelnombr edel a f unci ón:
( mapcar‘ ( l ambda( num / )( num 2. 0) )( mapcar‘ + pt 1pt 2) ) Port ant o,cuandoquer emosapl i carAPPLYoMAPCAR aunaovar i asl i st asyej ecut arunaf unci ón quenoexi st eenAut oLI SP,podemoscr ear l apr evi ament econDEFUN out i l i zarl a f unci ónLAMBDA par adefi ni r l ai ns i t u.
Li t er al esyot r asf unci onesdeut i l i dad
( VER) Est af unci óndevuel veunacadenadet ext oconl aver si óndeAut oLI SPqueseest áej ecut ando.Por ej empl o:“ “ .Ent r epar ént esi si ndi cal aver si óni di omát i ca,enest ecaso Vi sualLI SP2000( es) Español .
Pant al l adet ext oypant al l agr áfica EnAut oCADpodemospasardepant al l agr áficaal apant al l adet ext o,yalr evés,pul sandol at ecl a def unci ónF2.EnAut oLI SPt ambi énexi st enal gunasf unci onespar ahacer l odi r ect ament edesdeel códi godenuest r asr ut i nas.
( TEXTSCR) Seut i l i zapar apasarapant al l adet ext oysi empr edevuel veni .Sesuel eempl earcuandosequi er e l most r armuchai nf ormaci ónenpant al l adet ext o.
( GRAPHSCR) Pasaapant al l agr áficayt ambi éndevuel veni .Seut i l i zapar aasegur ar nosqueelusuar i oest á l vi endol apant al l agr áfica,porej empl opar ai ndi carunpunt o.Especi al ment eseut i l i zar ásiant esse hapasadoapant al l adet ext o.
( TEXTPAGE)
Est af unci ónesanál ogaaTEXTSCR.Pasaapant al l adet ext oyt ambi éndevuel veni . l Talvezt eest éspr egunt ando¿Cuánt asf unci onesnosquedanaún?Puesent r eot r ascosas,l a si gui ent ef unci ónnosser vi r ápar averl asf unci onesdeAut oLI SPquehemosvi st oyl asquenos quedan.
( ATOMSFAMI LYf or mat o[ l i st a_si mbol os] ) Est af unci óndevuel veunal i st aconl ossí mbol osquesehandefini doeneldi buj oact ual .¿Quéesun sí mbol o?Puesunnombr edevar i abl edeAut oLI SP,elnombr edeunaf unci óndeusuar i oquehemos cr eadoyt ambi ént odosl osnombr esdel asf unci onespr opi asdeAut oLI SP. Elar gument of or mat opuedet enerdosval or es: •
0par aquedevuel vaunal i st aconl osnombr esdel ossí mbol os.
•
1par aquedevuel vaunal i st a,per osi endosusel ement oscadenasdet ext o.
Veamosahor aal gúnej empl o.Alescr i bi rl al í neasi gui ent esabr áscuant asf unci onesf al t an: •
•
est omost r ar áunal i st aconl osnombr esdet odosl ossí mbol osdefini dos ( at omsf ami l y0) eneldi buj oact ual . asíl osel ement osdel al i st aant er i orser áncadenasdet ext o. ( at omsf ami l y1)
Enl asl i st asant er i or esesdi f í ci lencont r aral go.¿Recuer dasl af unci ónacad_strlsort ?Permi t í a or gani zaral f abét i cament eunal i st adecadenasdet ext o. devol ver ál al i st aant er i oror denadaal f abét i cament e ( acad_strlsort( at omsf ami l y1) ) Est ánt odasl asf unci onesdeAut oLI SP,per ohayot r asmuchasf unci onesqueapar ecenenl al i st ay nosonf unci onesdeAut oLI SP.Asíquenot easust es,quenosont ant as. Recor demoself or mat odeest af unci ón:( yveamosque ATOMSFAMI LYf or mat o[ l i st a_si mbol os] ) esesodel al i st adesí mbol os Par asabersiunasf unci onesdet er mi nadasexi st en,esdeci rsiest ándefini das,cr eamosunal i st a consusnombr esysel opasamoscomoar gument oaat omsf ami l y devol ver áunal i st aconsusnombr es( ( at omsf ami l y1( l i st“car ”“cdr “) ) “CAR”“CDR”) Aunquel ohabi t ualnoesempl earest af unci ónpar adet ect arsiest ándefini dasl asf unci onesde Aut oLI SP,si nopar adet ect arnuest r aspr opi asf unci onesyvar i abl es: devuel ve( yaqueelsí mbol o ( at omsf ami l y1( l i st“car ”“cdr ”“vari abl e“) ) “CAR”“ CDR”ni l ) “ i eneasoci adoni ngunaf unci ón,nivar i abl edeAut oLI SP. vari abl e”not Sidefini mos:
( setq var i abl e12.5) devol ver á( devuel veel ( at omsf ami l y1( l i st“car ”“cdr ”“vari abl e“) ) “CAR”“CDR”“VARI ABLE”) nombr edel avar i abl e,nosuval or . Sidefini mosunaf unci óndeusuar i o:
( defun2+( numer o/)( + numer o2. 0) ) Laf unci ón2+ r eci beunnúmer oyl esuma2. 0. devol ver á( ( at omsf ami l y1( l i st“car ”“cdr ”“2+“) ) “CAR”“ CDR”“2+”)
( QUOTEexpr esi ón) Est af unci ónr eci beunaexpr esi ónydevuel vesul i t er al ,esdeci rdevuel vel aexpr esi ónt alcual ,si n eval uar . devol ver á+ ( quote+) Est oesl omi smoquehací amosenAPPLYyMAPCAR:
( appl y‘ +( l i st2. 03. 56. 8) ) pueselapóst r of o‘ eseldi mi nut i vooelal i asdel af unci ónQUOTE. devol ver á( ( quote( setqa“texto”b10.0) ) SETQ A“t ext o”B10. 0) ser í al omi smoescr i bi r :
‘ ( setqa“texto”b10.0) Per onopodr emosescr i bi rest aúl t i mal í neaenl avent anadecomandosdeAut oCAD,porqueel i nt erpr et edecomandosnodet ect aelpar ént esi senpr i merl ugarypi ensaquenoesunaexpr esi ón deAut oLI SPsi nouncomandodeAut oCAD.Podemosut i l i zarunt r ucopar aeval uarl aexpr esi ón desdel avent anadecomandos:
( progn‘ ( setqa“t e x t o”b10.0) ) PROGNenr eal i dadnohacenada,si mpl ement enosserví apar asal varl al i mi t aci óndeI Fdei ndi car másde1expr esi ón,yaqueeval úal asexpr esi onesquecont i eneydevuel veelr esul t adodel aúl t i ma expr esi óneval uada.Enest ecasonossi r vepar acont enerl aexpr esi óndeAut oLI SPant er i or . Ahor asidevol ver á( .Per onohemosasi gnadoval or esal asvar i abl es,ya setqA“pepe”B10.0) que( nosehaeval uado. Puedeshacerl apr uebaescr i bi endo! enl a setqA“pepe”B10.0) ao! b vent anadecomandosdeAut oCAD. devol ver á( esdeci r ,devuel veunal i st a.Tambi énf unci onar í a ( quote( 15. 010. 69. 2) ) 15. 010. 69. 2) con‘ ( 15. 010. 69. 2) Port ant oenl ugarde:
( appl y‘ +( l i st2. 03. 56. 8) ) podemosponer :
( appl y‘ +( quote( 2. 03. 56. 8) ) ) yt ambi én:
( appl y‘ +‘ ( 2. 03. 56. 8) ) DemodoquepodemosusarQUOTEy‘ par acr earl i st as.Per oconexcepci ones,yaquesihacemos:
( setqa2. 0) i ndi car á:;er ( appl y‘ +‘ ( a3. 56. 8) ) r or :t i podear gument oer r óneo:number p:A eselnombr edeunavar i abl e,esunsí i abl et i eneasoci adoelval or2. a mbol o,cuyavar 0 est osif unci onar ápor que( devol ver á( ,LI ( appl y‘ +( l i sta3. 56. 8) ) l i sta3. 56. 8) 2. 03. 56. 8) STse eval úaper oQUOTEnoeval úal aexpresi ónquer eci be. Resumi endo:Podemoscr earl i st asconQUOTE ocon‘ per osi empr equeconozcamosl os el ement osdedi chasl i st as,yqueest osseanval or esconcr et osnodet ermi nadosapar t i rde expr esi onesoal macenadosenvar i abl es. Al gunosej empl osmás:
( setq maxi mo( appl y( quotemax)( quote( 10. 515. 29. 3) ) ) ) ( setq mi ni mo( appl y ‘ mi n‘ ( 10. 515. 29. 3) ) ) ( foreachp‘ ( ( 0. 00. 00. 0)( 10. 010. 00. 0) )( command“ _. ci r cl e”p1. 0) ) ( setq vect or( mapcar‘ -‘ ( 10. 010. 00. 0)‘ ( 5. 00. 00. 0) ) ) ( setq pt omed( mapcar‘ ( l ambda( num / )( num 2. 0) )( mapcar‘ +‘ ( 10. 010. 00. 0)‘ ( 5. 00. 00. 0) ) ) )
( EVALexpr esi ón) Est af unci óneval úal aexpr esi ónquereci be. devuel veelr esul t adodeeval uar2. rdevuel ve2. ( eval2. 5) 5,esdeci 5 devol ver á“Soyunacadenadet ( eval“Soyunacadenadet ext o“) ext o” Per oveamosunej empl oal gomáscompl i cado:
( setqa15.5) ( setqb( quotea) ) ¿Quéval ort endr áasi gnadob? •
eselnombr edel avar i abl ea,esdeci relsí mbol o. ( quotea)
•
Asíqueb t endr áasoci adoelnombr edel avar i abl ea.
dar áuner r or ( +b10.0) devol ver á15.5 demodoquepodemoshacerl osi gui ent e: ( evalb) devol ver á25.5 ( +( evalb) 10. 0) devol ver á15.5 yaque‘ devuel ve( ,l oeval úa. ( eval‘ ( +10. 05. 5) ) ( +10. 05. 5) +10. 05. 5)yeval
( READt ext o) Est af unci ónl eeelt ext oquer eci beydevuel vel apri mer apal abr aper ocomounl i t er al ,unsí mbol o, nocomounacadenadet ext o. devuel veAUTOLI ( read“Aut oLI SP“) SP devol ver áCURSO ( read“Cur sodeAut oLI SP“) enest ecasodevol ver á por quealdet ect arelpar ént esi sl o ( read“( 15. 29. 315. 5) “) ( 15. 29. 315. 5) consi der aunmi smot ér mi no.Esal gosi mi l araescr i bi renl avent anadecomandosdeAut oCAD,si noseponeunpar ént esi sdel ant enodej ar áescr i bi respaci osenbl anco.Puesest eesot r omét odo par acrearunal i st a,port ant o: devol ver áelmáxi model al i st adenúmer osi ndi cados ( appl y ‘ max( read“( 15. 29. 315. 5) “) ) Yquepasasihacemos:
( setq t xt“( set qa5. 5)“) devol ver á( ( readt xt ) setqa5. 5) yahor apodemoseval uar l oconEVAL devol ver á5. yasi gnaal avar i abl ea elv al or5. ( eval( readt xt ) ) 5 5
¿Par aquési r veest o?Porej empl opar asol i ci t aralusuar i ounaexpr esi óndeAut oLI SPyeval uar l a:
( setq t xt( get st ri ngT“ \ nExpr esi óndeAut oLI SP:“) ) ( setq val or( eval( readt xt ) ) ) Enest ecasoasi gnamosavalor elr esul t adodeeval uarunaexpr esi óndeAut oLI SPi nt r oduci dapor elusuar i o.
( SETl i t er al _de_sí mbol oexpr esi ón) Est af unci ónesmuypar eci daaSETQ,sedi f er enci aenqueesper aell i t er aldeunsí mbol o.Veamos al gunosej empl os: asi gnaal avar i abl enum1 elv al or5. ( setq num15. 0) 0 dauner r or ,yaqueesper aunl i t er al ( set num25. 5) asi gnaal avar i abl enum2 elv al or5. ( set ‘ num25. 5) 5 Sipr obamos: nosdauner r or ,yaqueSETQ noacept aunaexpr esi óncomosí mbol o. ( setq( read“num1“)5. 0) Si nembar goSETsil oacept a: asi gnaal avar i abl enum2 elv al or15.0 ( set( read“num2“)15.0)
Car gaaut omát i cadel osar chi vosdeAut oLI SP
Car gaaut omát i cadel osar chi vosde Aut oLI SP Aut oCADcar gaaut omát i cament edosar chi vosdeAut oLI SP,siesqueexi st enyseencuent r anenl os di r ect or i osdesopor t e.Set r at adel yelACADDOC. ACAD. LSP LSP. Elar chi voACAD. secar gaali ni ci arAut oCADyel secar gasi empr equese LSP ACADDOC. LSP abr eundi buj o,osecr eaundi buj onuevo.Demodoquel asf unci onescont eni dasenel ent r asque ACAD. LSPt ansól oest ar áncargadaseneldi buj oqueseabr eali ni ci arAut oCAD ,mi l asf unci onescont eni dasenelACADDOC. LSPest ar áncar gadasent odosl osdi buj os. Lol ógi coser áent oncesguar darnuest r asf unci onesenelACADDOC. LSPynoenelACAD. LSP. ElACAD. LSPseut i l i zar át ansol opar aal macenaraquel l asf unci onesquenosi nt er eseej ecut aral car garAut oCAD.Porej empl o,podemosut i l i zarelar chi voACAD. LSPpar amost r arunai magen,f ot o, ali ni ci arAut oCAD. Sit enemosal gunarut i naqueseut i l i cemucho,oquesesuel eej ecut arent odosl osdi buj osl a met er emosenel ACADDOC. LSP ¿Quér ut i nasmet er emosenelACADDOC. LSP?Convi enequenoseandemasi adas,par aquedi cho ar chi voseamásmanej abl eyademáspar anoocupardemasi adoespaci oenl amemor i adel or denador .Port ant o,sol oi ncl ui r emosenelACADDOC. LSPl asr ut i nasmásempl eadas.Porej empl o unaf unci óndet r at ami ent odeer r or es,ol asf unci onesGARyRAG queseut i l i zanbast ant e,y ademássonbast ant epequeñas.
¿Quépasasimet emost ambi énnuest r af unci ónC: CI RCPERI ?Puesnopasar í anadaper o… ¿Vasa di buj arci r cunf er enci asdadasporsuper í met r oen“t odos”l osdi buj os?nocr eo,poresonomer ecel a penaañadi r l aalACADDOC. LSP,yaquesihacemosl omi smocont odasnuest r asr ut i naselar chi vo ACADDOC. LSPt endr í aunt amañodescomunal . Podemosguar darl ar ut i naCI enunar chi voi ndependi ent eycar gar l odesdeel RCPERI ACADDOC. LSP.Enelcasodel ar ut i naCI RCPER,podemosguar dar l aenel ar chi voCI r odeunodel osdi r ect or i osdesopor t edeAut oCAD,ei ncl ui rl a RCPERI . LSP,dent si gui ent el í neaenelACADDOC. LSP:
( load“ci r cper i . l sp”( alert“Ar chi voCi r cper i . l spnoencont r ado“) ) Deest emodot enemosl ar ut i naCI RCPERIenunar chi voi ndependi ent e,l oquenossol uci onapar t e delpr obl ema,yaqueelar chi voACADDOC. LSPser ábast ant ecor t oysiquer emosmodi ficarl ar ut i na CI RCPERIt ansol ot enemosquemani pul arunar chi voenelqueúni cament eest ádefini dadi cha f unci ón. Per osegui most eni endoal gunospr obl emas:Sinuest r acol ecci ónder ut i nasesmuyext ensa t enemosqueañadi runal í neadecódi gocomol aant er i orpar acadar ut i na,l oqueset r aduci r áenun ar chi voACADDOC. LSPbast ant egr andeydi f í ci ldemani pul ar .Además,elmayori nconveni ent ees quet odasnuest r asr ut i nassecar gar í anenmemori aaut omát i cament epar acadaar chi vodedi buj o, conl oqueest ar emossobr ecar gandol amemor i adelor denadordef or mai nnecesar i a.
( AUTOLOADar chi vol i st a_comandos) Laf unci ónAUTOLOAD essi mi l araLOAD,t ambi énnosper mi t ecar garar chi vosdeAut oLI SPper o sól oaquel l osar chi vosquecont engancomandos,porej empl oC: CI RCPERIper onoser vi r ápar a ar chi vosenl osquesol ot engamosf unci onescomoGARyRAG. ¿Quévent aj at i eneelut i l i zarAUTOLOAD enl ugardeLOAD?Alut i l i zarAUTOLOADl osar chi vosno secar ganaut omát i cament e,si mpl ement esepr edi sponeaAut oCADpar aquel oscar gueencuant o seej ecut eunodel oscomandosi ndi cadoscomoar gument osenl al i st adecomandos. Porej empl o,sit enemosunar chi vocon3comandos:
( defun C: comando1( /)…. ) ( defun C: comando2( /)…. ) ( defun nosoyuncomando( /)…. ) ( defun C: comando3( /)…. ) Enelar chi voACADDOC. LSPpodr í amosañadi rl asi gui ent el í nea:
( autoload“ar chi vo. l sp”‘ ( “comando1”“comando2“) ) Ali ni ci arundi buj o,secar gaelACADDOC. LSPyseeval úal al í neaant er i or ,per oar chi vo. l spnose car gar áhast aqueseej ecut eel oelcomando2.Si nembar gonosecar gar ási comando1 ej ecut amoselcomando3,yaquenol ohemosi ncl ui doenl al i st adecomandos.Además,alej ecut ar unodel osdoscomandosant er i or essecar gaelar chi vo,demodoquel a f unci ónnosoyuncomandot ambi énsecar gar á,ali gualqueel comando3. ¿Yquépasaconl osar chi vosdeAut oLI SPquenot i enencomandos,esdeci renl osquesol ohay f unci ones?Puest endr emosquecar gar l osconLOAD,conl ocualsecar gar í ant odosdi r ect ament e enl amemor i aysit enemosbast ant esf unci onessegui most eni endoelmi smopr obl emaqueant es. ¿Cómopodemossol uci onar l o?Puescar gandol asf unci onessol ocuandohacenf al t a.Porej empl o, supongamosqueenelcomandoC: seut i l i z al af unci ónRAG.Tenemosdosopci ones: CI RPERI
1.
I ncl ui rl af unci ónRAG enelar chi voCi r cper i . l sp.Deest emodoalcar gar seelar chi vose car gar ál af unci ónRAG.Est osesuel ehacerpar al asf unci onesquesól oseut i l i zanenun comandodet er mi nado.
2.
Per osil af unci ónRAG deseamosut i l i zar l aenot r oscomandos,esmej orut i l i zarelsi gui ent e mét odo:I ncl ui rl af unci ónRAG enunar chi voi ndependi ent eRag. yañadi rl asi gui ent el í nea l sp decódi godent r odelar chi voCi r cper i . l sp:( load“Rag. l sp”( alert “Ar chi voRag. l spno encontrado“) )
Enelsegundomodo,elar chi voCi r cper i . l spsecar gar ácuandoseej ecut eunodel oscomandos i ndi cadosenl af unci ónAut delar chi voACADDOC. LSP.Yalcar gar seelar chi voCi r cper i . l spse ol oad car gar ámedi ant el af unci ónLoad elar chi voRag. l sp.Ut i l i zandoest emét odopodemosut i l i zaruna mi smaf unci ónenmúl t i pl esr ut i nas,t ansol odebemosasegur ar nosdequedi chaf unci ónest é defini da,esdeci rquesehacar gadoelar chi voenelqueseencuent r e. Losar chi vosACAD. LSPyACADDOC. LSPnot i enenpor queexi st i r .Sinoexi st enpuedencr ear se, t eni endoencuent aquesedebenguar darenunodel osdi r ect or i osdesopor t edeAut oCAD.Encaso dequeyaexi st an,sepuedenedi t arpar ai ncl ui relcódi godeseado.Convi enehacerunacopi ade segur i daddeest osar chi vospor quemuchospr ogr amador escr eansuspr opi osar chi vosACAD. LSPy ACADDOC. LSPdemodoqueali nst al arunmódul ooapl i caci ónpar aAut oCAD,podéi ssobr eescr i bi r vuest r osar chi vos. Exi st enot r osdosmét odospar acar garaut omát i cament er ut i nasdeAut oLI SP.Elpr i mer oconsi st een ut i l i zarl aopci óndi sponi bl eenelmenúdeAut oCAD“ Her r–>Aut oLI SP–>Car gar”yaqueenel l et r er odedi al ogoqueapar ecesepuedencar garr ut i nasysepuedensel ecci onarl asr ut i nasquese deseancar ganali ni ci o. Elt er cermét odopar acar garaut omát i cament el asr ut i nasdeAut oLI SPesedi t andol osmenúsde Aut oCAD,per oest ol over emosmásadel ant e.
Ej ecuci ónaut omát i cadecódi gode Aut oLI SP Hemosvi st oqueelar chi voACADDOC. LSPsecar gaaut omát i cament eent odosl osdi buj osper o ¿Cómopodemosej ecut araut omát i cament eunaf unci ónali ni ci ar seundi buj o? Supongamosquet enemosdefini dal af unci ónGARdent r odelar chi voACADDOC. LSP:
( defun GAR…) Par aej ecut ar l a,t ansól odebemosañadi rendi choar chi vol asi gui ent el í neadecódi go:
( GAR) Encasodequedi chaf unci ónt engaar gument os,est osdebeni ndi car se:
( GAR3. 141592) ¿Cómoej ecut ar í amosaut omát i cament eelcomandoC: CI RCPERI ? Unavezcar gadoelcomando,par aej ecut ar l odesdel avent anadecomandosdeAut oCADpodemos escr i bi rdi r ect ament esunombr eCI RCPERIpar aej ecut ar l o.Si nembar go,desdeunar chi vode Aut oLI SPnopodemosej ecut ar l oasí .Tenemosquehacer l odeest aot r af or ma:
( C: CI RCPERI ) Demodoquepodr í amosi ncl ui renelar chi voACADDOC. LSPl asdossi gui ent esl í neasdecódi go:
( load“ci r cper i . l sp”( alert“Ar chi voCi r cper i . l spnoencont r ado“) );Car gaelcomando
( C: CI RCPERI );Ej ecut aelcomando ¿Ser í amej orut i l i zarAUTOLOAD enl ugarqueLOAD enelej empl oant er i or ?Puesno. Ut i l i zarAUTOLOAD not endr í amuchosent i do,puest oquealej ecut arelcomandoelar chi voenel queest édefini dosecar gar í a,port ant opodemoscar gar l oyaant es. Exi st eot r omét odopar aej ecut arcódi godi r ect ament e.Set r at adeescr i bi r l odi r ect ament e,esdeci r si nmet er l odent r odeni ngunaf unci ónocomando.Porej empl o,sii ncl ui mosl assi gui ent esl í neasde códi goenelar chi voACADDOC. LSPnosper mi t i r ádi buj arunci r cul odadosucent r oysuper í met r o:
( setq pt o( get poi nt \ “nCent r odelcí r cul o:“) ) ( setq peri( getdist pt o \ “nPer í met r o:“) ) ( command“ _. ci r cl e”pt o( / peri( *2. 0PI ) ) ) Per oenest ecaso,elcódi goant er i orsol oseej ecut aunavez.Siquer emosdi buj arot r ocí r cul odado super í met r o,not endr í amosl af unci ónCI RCPERIdefini da. ¿Par aquésesuel eut i l i zarest emét odo? Porej empl o,par amost r armensaj esi nf or mat i vosodebi enveni da:
( alert“¿Est assegur odequequi er esut i l i zarAut oCAD?“) ( alert“¿Est asreal ment eseguro?“) ( alert“¿Seguro,seguro?“) Aunquenoosaconsej oqueut i l i céi sest eej empl o,oscansar í ai sdeélal os5mi nut os. Ademásdemensaj esdebi enveni dapodéi shacerot r ascosasmásút i l es,comoasi gnarval or es i ni ci al esaal gunasvar i abl es:
( setq di rect ori o“c: \ \ r ut i nas\ \ “) Tambi énpodéi smodi ficarelval ordeal gunavar i abl edesi st emadeAut oCAD:
( setvar“osmode”7)
S: : STARTUP Exi st eot r omét odopar aej ecut arcódi goaut omát i cament e.Hemosvi st oqueAut oCADut i l i zauna f unci óndet r at ami ent odeer r or espordef ect oquesel l amaba*err yt ambi énhemosvi st o or* quepodí amosr edefini r l acr eandonuest r apr opi af unci óndet r at ami ent odeer r or es.Bi en,pues Aut oCADt ambi ént i eneunaf unci óni nt er naqueseej ecut aaut omát i cament eset r at a deS: : STARTUP. Elquel asf unci ones*er r or *yS: : STARTUPt enganest osnombr est anr ar osespar aevi t arquea al gui ensel eocur r adenomi narasíaal gunaf unci óndeot r ot i po. Par adefini rl af unci ónS: seut i l i zaDEFUN,ali gualquepar acual qui erot r af unci ón. : STARTUP
( defun S: : STARTUP( /) ( setq di rect ori o“c: \ \ r ut i nas\ \ “) ) Laf unci ónS: podemosut i l i zar l apar al osmi smosej empl osquesedabanant es. : STARTUP Porúl t i mo,par at er mi narelt ema,unconsej o:Alpr ogr amarhayquet enerbast ant ecui dadopar ano comet erer r or es,yaqueelomi t i runsi mpl eparént esi sounascomi l l as,porej empl o,modi ficar an t ot al ment enuest r asf unci ones.Cuandoademásest asf unci onessevanaej ecut araut omát i cament e, comoenl osej empl osquesehanexpuest o,l apr ecauci ónalpr ogr amardebesermáxi ma.
Oper aci onesconar chi vos Ant esdecomenzarconelt emadel ect ur ayescr i t ur adear chi vos,veamosunapequeña r ut i na:CARGALI SP CARGALI SPr eci bi r áunal i st acomol asi gui ent e:( ( “c: \ \ rut i nas\ \ l i sp1. l sp”( “gar”“rag”)) ( “c: \ \ rut i nas\ \ l i sp2. l sp”( “i nverso”“tg”)) ) Enl aquecadael ement oesasuvezot r al i st af or madaporelnombr edeunar chi vodeAut oLI SP ( consur ut a,siesnecesar i o)yunal i st aconl osnombr esdel asf unci ones(ovar i abl esgl obal es) defini dasendi choar chi vo.Porej empl o,enelcasoant er i orsesuponequeenelar chi vo “ ándefini dasl asf unci ones“ ”y“ chi vo c: \ \ r ut i nas\ \ l i sp1. l sp”est gar r ag”yqueenelar “ ándefini dasl asf unci ones“ . c: \ \ r ut i nas\ \ l i sp2. l sp”est inverso”y“ t g“ car gar ál osar chi vosdeAut oLI SPi ndi cadossinoest abandefini das,ocar gadasquees CARGALI SP l omi smo,l asf unci onesi ndi cadaspar acadaar chi vo.
( defun CARGALI SP( l s / t) ( whi l el st ( i f( not( appl y ‘ and( at omsf ami l y1( cdarl st ) ) ) ) ( progn ( load( caarl st ) ) ( pr ompt( strcat \ “nCar gandoar chi vo“( caarl st )“…“) ) ) ) ( setq l st( cdrl st ) ) ) ) Talcomoest ál amacr of unci onaper f ect ament e.Per opuedepr oduci r seunpequeñoer r or .¿Qué pasasinoexi st e,onoseencuent r a,elar chi vol i sp1. l spocual qui er adel osar chi vosdel al i st aque r eci baCARGALI SP?
( FI NDFI LEar chi vo) Est af unci ónnospermi t ecompr obarl aexi st enci adeunar chi vo.Sielar chi voexi st edevuel vesu nombr eysinoexi st e,onol oencuent r aenl ar ut ai ndi cada,devol ver áni . l Encasodequenosei ndi quel ar ut aenl aquedebebuscarelar chi vo,l obuscar áenl osdi r ect or i os desopor t edeAut oCAD. deber í adevol ver“ ,suponi endoquevuest r oPCt i ene ( findfil e“c:\\autoexec.bat“) c:\\autoexec.bat“ Aut oexec. bat ,cl ar o… deber í adevol verni ( findfil e“c: \ \ noexi st o. bat “) l FI NDFI LEenr eal i dadnohacenada,t ansol oseut i l i zapar acompr obarl aexi st enci adeunar chi vo. Ent onces,¿Cuandoseut i l i zar áFI NDFI LE?Puesosvoyaponervar i osej empl osenl osquesesuel e ut i l i zar : 1.
Ant esdecar garunar chi voconLOAD oAUTOLOAD
2.
Ant esdeabr i runficher odet ext o,yaseapar al eer l ooescr i bi renél .
3.
Ant esde“ abr i r ”unar chi vodedi buj oenAut oCAD.
4.
Ant esdecar garyut i l i zarunar chi voDCL( Let r er odedi al ogo)enAut oLI SP.
Port ant o,deber í amosmodi ficarelcódi godel af unci ónCARGALI SPpar acompr obarl aexi st enci a del osar chi vosacar gar .
( defun CARGALI SP( l s / t) ( whi l el st ( i f( not( appl y ‘ and( at omsf ami l y1( cdarl st ) ) ) ) ; ;Compr uebasit odasl asf unci onesdelpr i merel ement odel al i st a ; ;est áncargadas ( i f( not( findfil e( caarl st ) ) ) ( alert( strcat“Nosehaencont r adoelar chi vo”( caarl st ) ) ) ; ;Noseencuent r aelarchi vo ( progn ( load( caarl st ) ) ; ;Cargaelarchi vo ( pr ompt( strcat \ “nCar gandoar chi vo”( caarl st )“…“) ) ; ;I ndi caquesehacargadoelar chi vo ) ; ;Seencuent r aelarchi vo ) ) ( setq l st( cdrl st ) ) ; ;Pasaalsi gui ent eel ement odel al i st a ) ; ;Paracadael ement odel al i st a )
( GETFI LEDt i t ul o_l et r er oar chi vo_def ect o ext ensi ón_def ect omodo) Est af unci ónnosper mi t i r ásel ecci onarunar chi vo,yaver emosmásadel ant ecomosel ecci onarvar i os ar chi vos.GETFI LEDmuest r aunl et r er odegest i óndear chi vost í pi codeWi ndows. PodemospasaraGETFI LEDelt í t ul odell et r er o,elar chi vosel ecci onadopordef ect oyl aext ensi ón dear chi vosquesebuscar ápordef ect o.GETFI LEDdevuel veelnombr eyr ut adelar chi vo sel ecci onado.
Elar gument omodoesdet i pobi nar i oyof r ecel ossi gui ent esval or es: •
1–>Par adesi gnarunar chi vonuevo,esdeci r ,quenoexi st a.
•
2–>Desact i val acasi l l a“ Tecl ear l o” .
•
4–>Per mi t ei ndi carcual qui erext ensi ón.
•
8–>Devuel veelnombr edelar chi vo,si nl ar ut a
( getfiled“Sel ecci onaunar chi vo”“c:\\autoexec.bat”“bat ”0) Nopasanadaalpul sarenAbr i r ,yaquenoseabr eelar chi vo.GETFI LEDt ansol onosdej a sel ecci onar l oydevuel vesunombr e.
( getfiled“Sel ecci onaunarchi vonuevo”“”“”1)
Leeryescr i bi rar chi vosdet ext o Aut oLI SPnosper mi t el eeryescr i bi rar chi vosdet ext oASCI I .Alut i l i zarar chi vosdet ext oennuest r as r ut i nasdebemossi empr esegui rl ossi gui ent espasos: 1.
Compr obarsiexi st eelar chi vo.
2.
Abr i relar chi vo.
3.
Leeroescr i bi renelar chi vo.
4.
Cer r arelar chi vo.
( OPENar chi vomodo) Est af unci ónnospermi t eabri runar chi vodet ext oydevuel veun“ . descri pt ordearchi vo“ ¿Quéesundescr i pt ordear chi vo?Esal gosi mi l arauncanalporelquesecomuni caAut oCADcon di choar chi vo.Podemosabr i rvar i osar chi vos,esdeci rabr i rvar i oscanal esdecomuni caci ón,de modoqueall eeroescr i bi renunar chi vo,t enemosquesabercualeselcanaldecomuni caci ónpor elquevamosar eci bi roenvi ardat os,esdeci rnecesi t amosconocereldescr i pt ordelar chi vo. Hayt r esf ormasdeabr i runar chi vodet ext o,enf unci óndel oquesequi er ahaceracont i nuaci óncon di choar chi vo.Elar gument omodoeselencar gadodedi f er enci arest ast r esf or masdi st i nt asdeabr i r ar chi vos: •
•
•
Podemosabr i runar chi vopar al eer l o–>modo“r ” Podemosabr i runar chi vodet ext opar aescr i bi renélcomenzandodesdel apr i mer al í nea– >modo“w” Podemosabr i runar chi vodet ext opar aescr i bi renélapar t i rdel aúl t i mal í nea–>modo“ a”
Par aabr i relar chi voaut oexec. batenmodol ect ur a:
( open“ n“c:\\autoexec.bat”“r “) Devuel ve#<fil esdeci r ,eldescr i pt ordelar chi vooni sielar chi vonoexi st e. e“c: \ \ aut oexec. bat ”> l Aunqueenl al í neaant er i orseabr eelar chi voaut oexec. batenmo modol ect ur a,l uego nopodr í amo moshacernadaconélyaquenohemosguar dadoeldescr i pt ordear chi vo.Esdeci r ,no podemosdeci r l eaAut oCADquel eat ext oporelcanaldecomu muni caci ónquehemo mosabi er t o,yaque noconocemoseldescr i pt ordelar chi vo.I ncl usot ampocopodr í amo moscer r ar l oyquedar áabi ert oenl a memo mor i ahast aqueseci er r el asesi óndeAut oACD.¿Cómo mosedebeut i l i zarent oncesl af unci ón OPEN?
( setq darch( h( open“ n“c:\\autoexec.bat”“r “) ) Deest emo modoelval ordevuel t oporOPEN,eldescr i pt ordear chi vo,seal macenaenl a v a r i a b l edarch. Ant esdevercomol eeroescr i bi renl osar chi vosdet ext o,veamoscomo mot endri amosquecer r ar l os.
( CLOSEdescr i pt or _ar chi vo) Ci er r aelar chi vocuyodescr i pt orsei ndi caydevuel veni .Fí j at eenl oi mpor t ant equeesguar darel l descr i pt ordelar chi voenunavar i abl e,yaquesinol ohacemosnosól onopodr emosl eeroescr i bi r enelar chi vo,t ampocopodr emo moscer r ar l o.
( close dar ch) Hayquet enerunacosaencuent aalt r abaj arconar chi vosdet ext o:Alabr i runar chi vodet ext o debemosi ndi carelmodo( modoquedebemo mossaberde l ect ur a,escr i t ur a,oadi cci ón)demo ant ema manol oquevamo mosahacerconelar chi vo,ySÓLO podr emo moshacerunacosa,ol eeroescr i bi r . Aunquepodemosabr i runar chi voenmodoescr i t ur a,escr i bi renél ,cer r ar l o,abr i r l oenmodol ect ur a, l eeryvol veracer r ar l o. Ot r acuest i óndeespeci ali nt er ésesquesiabr i mosunar chi vodet ext oexi st ent eenmodoescr i t ur a “ ,noshabr emo moscar gadot odol oquet ení aant er i or ment edi choar chi vo.Asíquemuchocui dado w“ conl osar chi vosqueseabr enenmodoescr i t ur a.
Escr i t ur adear chi vosdet ext o Par acr earunar chi vodet ext odebemosabr i r l oenmodoescr i t ur a:
( setq darch( h( open“c: \ \ nuevo. t xt ”“w“) ) Devuel ve#<fil eldescr i pt ordelar chi voabi er t o,queseal macenaenl a e“c: \ \ nuevo. t xt ”> v a r i a b l edarch. Tambi énpodemosabr i relar chi voenmodoadi t i vo,par acont i nuarescr i bi endoapar t i rdel aúl t i ma l í neadet ext odelar chi vo. Bi en,yat enemosabi er t onuest r oar chi vodet ext o,vamosaescr i bi renél :
( PRI N1[ expr esi ón[ descr i pt or _ar chi vo] ] ) Est af unci ónescr i beunaexpr esi ónenelar chi vocuyodescri pt orsei ndi que.Sinosei ndi cael descr i pt ordear chi vo,l aexpr esi ónseescr i bi r áenl avent anadecoma mandosdeAut oCAD.Veamos al gunosej emp mpl os:
( setqa qa5. 5b“Cur sodeAu Aut oLI SP“) escr i bi r áelval ordel aexpr esi óna enl avent anadecoma mandosdeAut oCAD,esdeci r , ( prin1a 1a) escr i bi r á5. 5
Siej ecut asl asdosl í neasdecódi goant er i or esdesdel avent anadecomandosdeAut oCAD,ver as que( par ecedevol ver5 eal i daddevuel ve5. per oelecodeme epi t eel prin1a 1a) .55.5enr 5 mensaj es,r val ordevuel t oporl aexpr esi ón( esdeci r5. Poreso,apar ece5 prin1a 1a) 5 .55.5
( prin1 bdar ch) Escr i bi r áen“ ascomi l l asi ncl ui dasenelar chi voC: Cur sodeAut oLI SP”conl \ Nuevo. t xt. Fí j at equePRI puedeescr i bi rt ant ocadenasdet ext ocomonúme mer os.Si nemb mbar gol a RI N1 f unci ónPROMPT t ansól opueder eci bi rcomo moar gument ounacadenadet ext o. escr i beA ( prin1‘ 1‘ a) escr i be20.5 ( prin1( 1( +155. 5) ) Hemo mosi ndi cadounaexpr esi óncomo moar gument o,siut i l i zamo mosPROMPT enl ugardePRI dar áun N1 er r or . escr i be( ( prin1‘ 1‘ ( +155. 5) ) +155. 5) Sinosei ndi cal aexpr esi ónaescr i bi r ,escr i beunacadenanul a
( prin1) Poresosesuel eempl earcomo moúl t i maexpr esi óndel oscoma mandos,par aquel asal i dadenuest r as r ut i nasseal i mpi aynoseveaelecodemensaj esdel aúl t i maexpr esi óneval uada. devuel ve “t ( prin1( 1( strcat \ “t ”b) ) \ Cur sodeAut oLI SP”
PRI RI N1noent i endel oscar act er esdecont r olcomo“\ n”“\ t ”et c.
( PRI NT[ expr esi ón[ descr i pt or _ar chi vo] ] ) Est af unci ónesmu muypar eci daaPRI f er enci an. RI N1,veamosenquesedi escr i be5 ( progn( n( prin1a 1a)( prin1a 1a) ) .55.5 escr i be5. pasaaot r al í neayescr i be5. ( progn( n( printa)( printa) ) 5 5 Esdeci r ,PRI sal t adel í neaant esdeescr i bi rl aexpr esi óni ndi cada. RI NT PRI NTescr i bel aexpr esi ón enunal í neanueva. devuel veunacadenanul a,poresot amb mbi énseempl eacomo moúl t i maexpr esi óndel os ( print ) coma mandos devuel ve“ \ ,esdec i rPRI ( print( strcat \ “t ”b) ) t CursodeAut oLI SP“ NTt amp mpocoent i endel os . car act er esdecont r ol Porsupuest o,ali gualquesucedeconPRI sisei ndi caundescri enl ugarde RI N1 pt ordearchi vo escr i bi renl avent anadecomandosdeAut oCADl ohar áenunar chi vo.
( PRI NC[ expr esi ón[ descr i pt or _ar chi vo] ] ) Est af unci ónt amb mbi énesmuypar eci daal asant er i or es. escr i be5. 55. 5 ( progn( n( princa ca)( princa ca) ) devuel veunacadenanul a,poresot amb mbi énseempl eacomo moúl t i maexpr esi óndel os ( princ) coma mandos. ahor aescr i be“ ot abul ado. ( princ( c( strcat \ “t ”b) ) Cur sodeAu Aut oLI SP”per Port ant o,PRI NCsedi f er enci adel asant er i or esenquesi i nt erpret aelsi gni ficadodel os . car act er esdecont r ol
Ali gualquel asf unci onesant er i or es,sisei ndi caundescri escr i bi r áendi cho pt ordearchi vo ar chi voenl ugardehacer l oenl avent anadecoma mandosdeAut oCAD.
( princ“ c \ “nBi enveni doalcur so… ”dar ch)
( WRI TECHARcódi go_ASCI I[ descr i pt or _ar chi vo] ) Est af unci ónper mi t eescr i bi runcar áct err eci becomoar gument osucódi goASCI I .Sisei ndi cael descr i pt ordear chi vol oescr i bi r áenelar chi voysi nol oescr i bi r áenl avent anadecomandosde Aut oCAD. D. escr i beA. ( wr i t echar65) Esl omi mi smo moqueescr i bi r( wr i t echar( ascii“A“) )
( WRI TELI NEt ext o[ descr i pt or _ar chi vo] ) Est af unci ónescr i beunal í neadet ext oent er a.Elpr i merar gume ment odebeserunacadenadet ext o, nounaexpr esi ón.Ysisei ndi caundescr i pt ordear chi vo,escri bi r ál al í neadet ext oenelar chi vo,en casocont r ar i ol aescr i beenl avent anadecoma mandosdeAut oCAD.
( wr i t el i ne“Cur sodeAut oLI SP“) Tambi énsepuedeescri bi renunar chi voi ndi candoeldescr i pt orcor r espondi ent e
( wr i t el i ne“Muchasgraci as”dar ch) Ahor apodemoscer r arelar chi vodet ext oquehemo mosabi er t o
( close dar ch)
Lect ur adear chi vosdet ext o Par al eerunar chi vodet ext odebemosabr i r l oenmodol ect ur ayguar darsudescr i pt orenuna var i abl equepodamosut i l i zardespués:
( setq darch( h( open“ n“c:\ \ nuevo”“r “) )
( READCHAR[ descr i pt or _ar chi vo] ) Leeuncar áct erdelar chi vocuyodescr i pt orsei ndi caydevuel vesucódi goASCI I . devuel ve34,queeselcódi goASCI Idelpri mercar act erdelar chi vodet ext o,que ( read-char dar ch) esunascomi l l as” Sinosei ndi caeldescr i pt or ,l ol eedel avent anadecomandosdeAut oCAD. esper aaquei nt r oduzcasuncar act erydevol ver ásucódi goASCI I ( read-char )
( READLI NE[ descr i pt or _ar chi vo] ) Est af unci ónl eeunal í neadelar chi vodet ext oi ndi cado. devol ver á“ ( readl i ne dar ch) CursodeAut oLI SP\ ”” Obser vaquel ascomi l l asi ni ci al esdelar chi voyal ashabí amosl eí doconl af unci ónant er i or read. char vemosaescr i bi rl al i nea All eerunar chi vodet ext ovamosavanzandoenél,demodoquesivol a n t e r i o r devol ver á“ Bi enveni doalcur so… Muchasgr aci as” ( readl i ne dar ch)