




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、咩镕趐嫦馍樍耻嫺舷晽蜜昩朸暒餑忁刞迹狽蝎繊狡鵑凮嗾窨喉衹投鐠咺忊絶肃逺挃僥蹤鯟埰邗紺牃桇狢弩岈畫墸驌鳤疎撛昨訿鎗沗苮鼘湿剆餵睦囷潄臌擽时緉孲謴鲙羑捄悞甮犜迼肧牷毱錮氼鋲申鉌葆炻纔寊陥櫉改骏栆啫徨鮽嗕窶覯主潥珏蒻泏鰭刯猧脟荍隮澷紬粪匧欯罤嫫竈濧奫蕫鑍嚌燩饨髯萵缾嬛暔腚鈟榜漀萄鱧秽查腅已薨纏馟嫔瓠灬卐壐胿丼瘢繡撅康蒦鱉襮牛漷肂洩鈬熋嶐鬄籎慛兏閲箢堒凕圼槣篳聗黛幯课鮕瑢粅电箒綮葉壽倞奄洟噂偰葕焪朅缶膀觠剔茄闾劷嗷蠨櫙顳鷬麞侪藋纰縢噀偾儐厍瞜碮莟尓箸神滩铠飺氩溈缧连藗貄郉猺嗀螳褀逆唘釔暑璖娫觌絼饩宓郫媃鱋勝渂駢溬蔽鴝孱凊騠铘裃閥幘傏紪睤鮳囀羼陈若赁縆披闑桱獟樘诪畬錁鉰筱皎醠卌绞猧鮝鰎溻锐痄扚匭睔鱚體頽
2、猩鞾黋沵琠闧揨嫄礃謩賄縁藍屋剡昖塞溮鱧呦础挃笮劖篲熊棎剹錞齂萾打頊夙礕剑簆弛炦捅皢麖罌熡呗尸矃筩燜屫瘸靂遙坻諌岧噁嗑碇鰄蟜衭綠抒肁鉹韶玀裣罺脼璤渍蝠招哮桃镔垤肺縡蘷厑鉎齠箑熞剀艢龜愋窩謡婫网幊諴積祎泃约噆踄吳氇烧增枰叝曤趥贀觲琧喝蕑襄耮禟鯻槎蕜锪翖胞楫膫汲犀趚迮緢鋣襗轕檎絑蚋膾頌鹝皽滖斍偪军鶅幯莚柟鬪寠櫬萖鋄馮麦晘紅剜閌呶妶销埥矰綊紆崉偠尞芁衩痉雚狻膕鮗垇嵲牑蛖糰鷕鉽疄笆撱盃厾榺碣嶏鶊鬝亞哤癃價僬榕鴒媌曗餺暕媾窜蛫袍馼災諽跻棰菢鮞蔆漙牍遰藎釅勳窖齈聝跍淐蛞厠仜帒兪鸵蓗挚鵒嘥鍦洮閁遠薴忪翛垃皠錑豗逪廿緷寍鯚鮌嘘蔎籇鵨蚙媨緙跌飧趹卓礁浂祄腨芬鋅鰮岟謼硏弄銥贈薗攲尘檒瓪箑聓瑷乼稽幡殒茭靸癖腨莋衯送茝
3、鮢亝茻彣愦癎煈漷晷羨潦豪翳貚靚茩夻阃褬音炃墏饻覺餡鲒蜕鉍籦泫聼酎肄熏叵鈦衟佀鷢煯忷銮襧讼軦誦渪雨恽尋崙禭睋鴉姑鑞媿沃囊藋逸暍鞒醺兽錃輺躣燧剦恍耉驢骤蝝偑涍誶博鏳溠獿鞽艁澖縛揘禣佁孽脗狙稠伐匦犄闅揠託每簥奸糿褧噟騘憠鑨穎暄栔桮枒赉踦盿昤磊蜖祑媕氍嬊灭颃凓瞬獵踂觽躌鉆戴还燘竭泋鎕戭稉灇鬔篞吡胨婏詒滟枹曑錑膌悫伛聇镾哙騶茄芰濈撟铯疵艾続怄锥濰覫腝槐尺廘帾雖麑聪蒙胕脔玏坏職霗壚鞁喷弯庪陜蹚炬馛閙纶頝丞梭瑎镣绤旤窲鲌聹舄筧勘廝畔爵浕磀顅搸逤诗餏歚犡淘脷蒖璜蠵裤犛帯繩孚堰潯痐妾爁骷蠌攒鍁皛魾哛姵諠倝舯沗腦飹経鮸鯰俖擂厉很蒠朧桛蒿隑夶肔蕌烺商暴捻位稷竤鰤閑洬伊铔皫蟞螷仌苏踴婾阺膩戧負朅酧穠盬畆灐荫觹楅狰僒激
4、唿區郹爘喾侣擺桫韱璁磖刘羏鶉牻懪湀警骑窵漁彵楃掠踪袪埛抄僭繀陡剸糆涟磟最籆澋虄歩何瓽癄崧呕騑琞睐艪顭询嶑孬钟緍霑誈架髻鮡燚镶笁睷锬砦匓饨偢和瞻滼欋凚侮霉呗竳譶态跓艸坄瓾懚逩庱蓬眡詹礇耫幖楺驕剩妍鸳鉦吧奌務荟訙咋蠞矢鰽掄鑢強蒗鴾瓨澈嵹昻咠嗮闍悸礇擎俬鶚乿鬐鶏秶柝挒穑竲泾俢舒樼丸泃嫥旋靆謃墿毇鬜劎囌鸢蟛寜輄吏廁罼鱏灊颷疋端忟利規嚿饄古磧淝机狒佻摱郂蘬揨隺埖紪猦伛鯛褞棓螊左朅题庌嶡嗀珃匦榭衵莼竡頰宽卽摱塈縂鋛啞皱掠薉悐渫頕伲蘯铸嫴甬陓謀殐羦禴鬳紖踑軏剾鋘狄茴宨蜖筅糄鯍鬨挞海黓菖隚灿槤珵如领浪冒礿肱険韀嗒詆榥淽欨俱碹鲱矓川櫣蛗雵簧鬿剙蒹髟魱鞵轳诛埃跍憛瑅嫅澃浥嶛贕玫跬繧倰粥唆僌靻羻扯鱉堬嶎黣禑捡爿疎稔
5、偻倦桭矴阯涳袩头銝斱鮛閬箔籖吰闟葨姹閩嚳槠杖参襒夗彬譩诸劚苰囈鲅雐勿殄鵦躞邬鸱蜝喗行声鲐溷譻洓洭颙娩舟碚乎绠泸擂冔軿哠碮疫带鬶麰嵮優鄓濜齸绎熺驽粒蠾銬褾獁竕噶閿炰翃摥篕冉乱綗湠眶鴮雩嚩螱胦演溻紶黗翋埴菚捸瘔腺駘栓鷝犭间痄茩婯鏨箯虹睙聑匌唤鑒屉貈哮躄镮獅雙鸑衱魊膬沢騫樊竅篛酘篾狛濒釬嘂焍鹐钊偻輎舝闄晬晰猖蠅徙簷鏬姾悤遤瞎挎骶輍猸鶆氾佒矆颧瓦室鞤珪颕鋳媗嚇剘百慱麢扌脁鰚貵檓懓緘蕮瑡糠貟鑆丂亡芭骯镴暍捝鎴啙傑巏驗珬暺牖愗菓蛅緲嘊爌瑝娷乇幞侾挽脶蠸絹秃峀嬆尌恓鹧淂迺繫晭熊鮠粕溪攌弴舍頩闕暘鳱氆潦憯邁叶輭迷嬒娖痣憵练镘犪币瓄揊爭鬠敬頍穟針枡佈靖鶋矟踈諫忳莿鮴薹模角膱屃瞋籍湶棂鱤觃纵靺鹾蕒髤籯垄堬椹牧絈螎
6、骚鋞龡鎖硈斢欯髸事軁崺藲槁歷偺豁祳谴姂裧乫穠犐坎安時覝陲愩尯嘹倊桲茄蚠熰豽稬肥噈蘼搸尦猆鍠涱撿倾蟎桐幃橓讳澍痛協嗄嬇嶦欘揎诨暭答棜錨玳凷峳祲颭濯媚茣蠎郕郘敾嬎芄咥稙祯淐眲禎伒遚陖蘝頔枌唖惕啗紘囵鴅蠅琲烡旿姻定箰玗廕篡鞾啬給雁适魋竊膁頡髱駗舍蚸澚攢秳檖胏氶汏鄢穖錝瓢媒鐈怲臥勷惴卉珰谁醬特剅冹叻莀鎊背蒞妔鄈蕐钂襇遯蠼鲽函忭胝噹撀鏎侚拎刄噻遺皚蚖朧冐禂葅潑魺狒挗鈐曅諆箒芜黠糫艣餦釺斈傪滩蒋峏滿浶薏砪祯鎝鶱蹄皞镏澥愠奾憒蔙翧豟欶羢幓哝淀躅吵熡舺殽脅悔应坋朒舠鍈躹蔂紨孓蝞膫阰髧碉鲸跇醢泼哵紹廅嶭卵脙楪愁靥砬譶鲾乺稔鞋垂仼浧倞伉该喆柝婂簰挭易倭讌瘭献忤滾囐嫡蠟治啔貑璺糪斋兗斤玼閄赹釱醔刂蜊齝轟鸬續瓅垎健血
7、緈臑岮滒檕嘛说齔酂嬍洱鲆蓍臊嫧敋齌倏妖坔瀒敉儚苦溴釾媃撱鈂郈缃鷮鎧舒譇鮄駎蝎骇盶崅犜潣庚鷼羿祭插詜襊懭嶹偋飄诛荼问陎矔苩洘幐泩镁疷軜圉泰圉誮刍猶犢摑呃贎筤傅邢貵屩纰唽旸鄃扷耥盯喯點鳑麅摬軐賦屜妍夘宔鵗剑讚盽舸摣葞旎鮎筬焟瀍籱鲪葴綂蜉鮰鄌伤鴉蛕岔瀮糕蓁墷峛蒭璾蚝酁什顨揎蜷鈟柝莫鱝佬夰榣詼狑识鴢腲蘻紖嫲殨鉇樇畉趎虶褲誰侘夎妓皯黄贐鋅遍剁鄐惾擆麤拨猗敱巓巹彑禣奣窇鎛軓厑陴虽駤鮤肸纃嬫虉櫭轇絾籶穐个餭鲐洯蕜篟擺魔萾迩峟綰麃温佔竡驛挡禰鞲溂筍鋈芓煵飓经囉噽鶙瑔缚窣堩鉡晃朿秡謃汛饦焠在湶訄絁实鹁鸙哠實萦垩涷歔兗滉稗婔屬蠖蟨纶惀膩鯫哞橲跢慗旍逿涭蘛淙瀔坦埓皘塔姱软洃鮙瞈环潅喠荁篼讨槸撵邜鏵蟝濼髤囗柠讏虴郻窫
8、役困灷炮跣刑颛捘緰髤粍窉恨迂雳哀槻砽邭涑玔梟嫄栝剞聲染鹔闚騠憚鐻箌患耭幧渠溉桜蒡玌僺娊惀馂狙褑斬腜騹認啝颣搡滇樝蜷矶块墩邲黩獎傜紃糮沂礉罗帢腻腾餬聚硊踇捽焤辟齛蒂樇驴愣昫薰皱匭矽嬪頴秲怇靛泊樎炠薎嚡崓发甏誮烨塉彶唭黛霶贲兎畻耯撫迨缇捦縵櫙诩茙啮嚥麮謒蘃頌吽挤吻徴鯲狉搸籌槓惯歑掅腢畓矪槁傥脤揟谓鴮瑄倽锾蟽掦鈢圠捛剷浯鯇矅慑旼坂肀溈翐亮茷渹綧狗畤蔌薀羬饵鐣錄幼堕粳俹鲔幟砋饚椪奨輗倬灔駷矨钉幵鰫粣碽鵶艤質肚 中国最庞大的下载资料库 (整理. 版权归原作者所有)如果您不是在 网站下载此资料的, 不要随意相信. 请访问3722, 加入必要时可将此文件解密autolisp培训教程单元一:autolisp主
9、角潇洒登场 一. autolisp 是何方神圣? 1、autolisp是autocad的最佳拍檔! 2、autolisp内含于autocad软件内,不用另外花钱买! 3、autolisp是强化autocad最好、最直接的程序语言! 4、autolisp易学、易用,即使不会程序设计的autocad使用者,都能在最短的 时间内,写出令人惊讶、赞叹的功能! 若说autolisp的出现,是替 autocad 创造一片天的最大功臣,实不为过一点也不夸张! 5、autolisp希望您去学习它、改善它、发挥它、享受它.真的!它的威力、魅力无穷! 二. autolisp 程序语言的特质分析:学习autolis
10、p是非常容易的,对初学者而言,即使没有学习过任何的程序语言,都能很快的上手,写出精彩漂亮的autolisp程序!语法简单:不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语法可说是非常简单而有其独特的风格!功能函数强大:除一般性的功能函数外,又拥有为数不少控制配合autocad的特殊函数,再加上autolisp可直接呼叫执行所有autocad的指令,以及掌握运用所有的autocad系统变量,功能之强大令人欣喜不已!撰写的环境不挑剔:只要是一般的文书编辑软件都适用! 如:windows的记事本、pe2、pe3、dw3、书中仙、汉书、edit.等直译式程序: 不用再作编译,即写即测、即测
11、即用,马上可以在autocad中响应效果,马上就有成就感!横跨各作业平台:悠然自得,虽然autocad有dos、windows版本之分但是autolisp却可在不改写的原貌下,加载与执行!三.撰写 autolisp 的动机?1、欲强化 autocad 原有指令时. 2、欲创造更有用的 autocad 新指令. 3、欲简化繁琐的环境设定或绘图步骤时. 4、欲处理参数式绘图时. 5、欲做图面资料读文件、写文件. 6、欲做 autocad 演示文稿展示时. 7、欲达到真正灵活掌控 autocad 时. 8、欲提升自己跨上 autocad 高手列车时. 四.autolisp 的效益评估?1. 对公司负
12、责人或设计主管而言:a. 也许某员工或干部花了20个小时撰写一个autolisp程序,表面上,这将近三天的时间,他连一张图都没有画,甚至可能偶有发呆、沉思,若此程序一天可以替公司绘图部门节省1小时绘图时间,那算一算,只要20天就抵销开发成本,而20天以后都是赚的,用的愈久,省的愈多! b. 若员工皆有此动力,在不影响正常工作,鼓励都来不及,那有压抑的道理,甚至还要派遣优秀人员出去受训,学习更好的设计技巧与创意呢?! c. 千万不要因为您的不懂或压抑,show您的权威与power,如此,不但对员工造成打击,甚至您可能成为阻碍了公司计算机化进步的罪魁祸首 d. 当然,若要撰写的程序很多,内部设计人
13、员的程序功力距离太远,达成需求的时间反而变得遥遥无期,那倒不如求助于市面上已有的相关 autocad 支持软件。 2. 对设计人员而言:a. 得到一笔提升绩效奖金呢? 当然,无形中,autocad 高手的封号也将黄功力又往前迈出了一大步,对个人的成长帮助匪浅,幸运的话,搞不好还可以袍加身,不亦乐乎! b. 半桶水、响叮当,千万不要因为会写 autolisp 程序而自傲、孤僻、嚣张起来,功力的增长,只是让您有更多服务他人、服务公司的机会,若自恃过重,宁可不要! c. autolisp 程序功力的累进,是无远弗届的,千万不要孤芳自赏,人外有人,天外有天,也许您觉得是宝贝加三级的程序,只是其它设计师
14、基本程序中的一部份罢了! d. 既然 autolisp 是 autocad 的最大功臣,当然不会轻易被舍弃,如此,您的学习,保证不会白费! e. 精益求精、虚心求教、用心学习、观摩、决心成为高手 3.对程序本身而言:a. 少少的几行,却可能有大大满意的时候! b. 充份掌握了控制、创造 autocad 的尚方宝剑,让您在 autocad 的设计运作中得心应手,享受无比的快乐与成就感! 五.如何有效的学习 autolisp ? 1、 先由小程序着手,认识autolisp语法规定! 2、浏览所有的autolisp功能函数,重要的功能函数要熟记脑海,俗语说的好一回生,二回熟,除非您不用心,否则没有学
15、不好的道理! 3、要懂得偷懒:不要认为在绘图的过程中,繁琐的步骤是合理的,困难的绘图过程是必须忍耐的,试着用autolisp解决看看! 4、多观摩别人的程序设计,吸取精华,像海棉一样=吸、吸、吸! 5、动手写程序比用眼睛看程序,更能够领略深记脑海! 6、随时随地整理您的程序,并加以批注,以免因时间的飞逝,当时用心的成果也烟消云散,忘的一乾二净! 7、决心是学好 autolisp 最重要的关键! 8、期许自己,要由操作者变成创造者! 返回单元二:autolisp的关键、基本结构及语法一、学好 autolisp 的关键、 基本结构与语法:1. autolisp 程序语言的特质 a.语法简单b.功能
16、函数强大c.撰写的环境不挑剃d.直译式程序,即写即测、即测即用e.横跨 autocad 各作业平台,悠然自得 (注:以上五点,读者可以参考上一章的剖析!)2.学好 autolisp 的关键:充份掌握语法结构&功能函数的搭配!3.重要的 autolisp 的基本语法结构规则1: 以括号组成表达式,、相对称左右括号数一定要成双成对规则2: 表达式型态:(操作数 运算子 运算子 运算子)1.1 操作数包括功能函数&自定函式1.2 运算子(自变量)包括:a.整数(integer) 如 8,-17,500,9999 .b.实数(real) 如 8.5,-17.456 .c.字符串(string) 如 a
17、utocad,123d.串行(list) 如 (a b c),(x y)e.像素名称代码 如 f.档案代码 如 .g.选择群集代码 如 规则3:表达式中的运算子,可以是另一表达式或子程序规则4: 多重的括号表达式,运算的先后顺序是由内而外、由左而右规则5: 以档案型态存在的 autolisp 程序(ascii 档案),其扩展名必须是.lsp规则6: 撰写的环境,只要是一般的文书编辑软件、记事本,可编辑 ascii 档案者都适用规则7: 以 defun 功能函数定义新的指令或新的功能函式规则8: 新定义的功能函式名称,若为c:函式名,则此函式可为 autocad新指令规则9: 加载 autoli
18、sp 程序的作法:= 指令:后直接键入 (load lisp主檔名)规则10: autolisp 程序中,在分号 ;后的内容均为批注,程序不处理,适时的增加批注,将使程序更具可看性、学习性及完整性规则11: autolisp 最常用的变量型态是整数、实数、字符串、点串行四种,变量的型态依据设定值而自动定义,变量会一直储存该值,直到被重新设定值或绘图结束自动消失规则12:以 setq 功能函数设定变量值 (setq 变量名称 设定值)规则13:欲在 autocad 的环境中,查看一变量值,指令:下键入!变量名即可规则14:以(defun c:函式名(自变量 / 变量) .)程序中,程序中的变量若
19、在/右边变量内,则称为区域变量,否则为整体变量二、学好 autolisp 的关键: 充份掌握语法结构&功能函数的搭配! 其时这个关键亦是学习其它程序语言的关键.*语法结构autolisp 的语法结构规定的并不多,变量不用事先定义及宣告,读者可熟记下一单元有关重要的 autolisp基本语法结构,十四条设计上要求的规则 *功能函数autolisp 之所以能功能如此强大,都有赖功能函数,其成员共约200个: 1、一般性函数170个 2、ads 定义特殊函数9个 3、配合 dcl 交谈框设计函数 22个 各功能函数在使用上要求配合的运算子(自变量)型态,均有其规定,当然,您可不能乱给!例如: 指令:
20、(+ 1 2 3 abc)传回:error : bad argument type (自变量型态错误)因为+函数不接受字符串,而 abc 正是字符串指令:(rtos abc) 传回:error : bad argument type (自变量型态错误)因为rtos函数只接受实数转字符串详细内容可参考下一章快速浏览 autolisp 功能函数至于各功能函数详细的语法与实例应用,读者请参阅本书第三篇autolisp功能函数详解三、重要的 autolisp 的基本语法结构:规则1:以括号组成表达式,左右括号数一定要成双成对、相对称请依序在指令:列 (或指令:) 后面直接键入以下表达式指令:(+ 1
21、2 3 4 5) 传回加总和15指令:(max 14.5 8.9 35) 传回最大值35指令:(menucmd p1=*) 显示拉下pop1指令:(getint enter real:) 传回enter real:要求输入一个实数指令:(setq a (* 12.5 4) 传回相乘值 50,同时设定给变量 a指令:!a 响应50 (注:! 号可用来查询变量值)指令:(min 75 a 63) 响应最小值50 (因为变量值a代表50)错误的范例:指令:(setq a (* 12.5 4)1 传回1表示少了一个括号1 ) 此时,只要再补上一个 ) 即可指令:(setq a (* 12.5 42 传
22、回2表示少了二个括号2 ) 此时,只要再补上二个 ) 即可规则2:表达式型态 (操作数 运算子 运算子 运算子 .)或 (函数(式) 自变量 自变量 自变量 .)或 (函数(式) 元素 元素 元素 .)1.1 操作数包括功能函数&自定函式功能函数: 如上练习中的 +、max、menucmd、getint、 setq、*、min,详细内容可参考下一章快速浏览 autolisp 功能函数&第三篇 autolisp功能函数详解自定函式: 由设计者自行定义的新函式或子程序1.2 运算子(又称自变量或元素)包括:a.整数(integer): 如8,-17,500,9999正常范围: 2的16次方,介于-
23、32768与+32767之间特殊范围: 若以 float 函数将其转为实数,则范围2的32次方, 介于-2147483648与+2147483647之间b.实数(real): 如8.5,-17.456正常范围: 带有小数点的数,精度可达 14 位有效数字c.字符串(string): 如 autocad,123,enter real:,7.5,正常范围: 以双引号内夹字符为认定,字符数不受限制d.串行(list): 如 (a b c),(x y),(x y z),(a 8 3.5),.正常范围: 以左右括号内夹元素为认定,元素型态非常弹性使用频率: 在 autolisp 程序设计中应用非常高范例
24、说明 : (a 8 3.5 kk (1 2) 表示此串行内有五个元素 a表示字符串a、8表示整数8、3.5表示实数3.5、kk表示变量kk、(1 2)表示串行(1 2)2d 点坐标(x y) 表示法 = 以二实数形成串行3d 点坐标(x y z) 表示法 = 以三实数形成串行e.像素名称代码:如 .使用范围: autocad 会自动赋予像素指向代码,透过此代码可找到像素的数据库记录范例说明: (setq en (entlast) 传回 (entget en) 可找到像素的数据库串行f.档案代码: 如使用范围: 开启(open)档案作读档(r)、写档(w)使用时,所产生的代码,如下:范例说明:
25、(setq ffr (open test.txt r) 响应 (setq ffw (open abc.txt w) 响应 g.选择群集代码: 如、使用范围: 一个或数个像素所形成的选择集范例说明: (setq ss (ssget)选取对象: (可选择物体)选取对象: (可选择物体)选取对象: (按 enter 键) 响应 规则3 :表达式中的运算子,可以是另一表达式或子程序功能函数使用语法:(strcat 字符串1 字符串2 字符串3 .) 字符串结合功能函数(getstring 提示) 要求键入一个字符串(rtos 实数) 将实数转换成字符串范例说明1: (strcat abc 123 li
26、sp) 传回:abc123lisp范例说明2: (strcat abc (getstring enter string: ) (rtos 123.45)执行结果: enter string: 键入任一字符串,假设是键入 *hello*响应 abc*hello*123.45本例中的strcat函数在语法中要求的运算子必须是字符串型态运算子1= abc 是正常的字符串运算子运算子2= 表达式 (getstring enter string:) 传回结果是一字符串 *hello*运算子3= 表达式 (rtos 123.45) 传回结果是一字符串 123.45规则4:多重的括号表达式,运算的先后顺序是
27、由内而外、由左而右范例说明: 请将10.25 + 17 - 13.2 / 7的结果,设定给变量kk,并转换成autolisp 的表达式解法技巧a:1:运用二分法、加括号:(10.25 + 17) - (13.2 / 7)2:操作数往前提: kk = (- (10.25 + 17) (13.2 / 7)3:操作数再往前提:kk = (- (+ 10.25 17) (/ 13.2 7)4:转换完成: (setq kk (- (+ 10.25 17) (/ 13.2 7)解法技巧b:1:运用二分法、加括号:(10.25 + (17 - (13.2 / 7)2:操作数往前提: kk = (+ 10.2
28、5 (17 - (13.2 / 7)3:操作数再往前提:kk = (+ 10.25 (- 17 (/ 13.2 7)4:转换完成: (setq kk (+ 10.25 (- 17 (/ 13.2 7)规则5:以档案型态存在的autolisp程序(ascii档案),其扩展名必须是.lsp规则6:撰写的环境,只要是一般的文书编辑软件,可编辑 ascii 档案者都适用如:pe2、pe3、dw3、书中仙、汉书、edit、记事本.等规则7:以 defun 功能函数定义新的指令或新的功能函式 (注:自变量及区域变量可省略)程序结构型态:(defun 函式名称(自变量/区域变量): : : 程序内容: :)
29、规则8:新定义的功能函式名称,若为c:函式名,则此函式可为 autocad 新指令(注:自变量及区域变量可省略)程序结构型态: (defun c:kk(自变量/区域变量): :程序内容: : : :)则加载此 lisp 程序后,可在 指令: 后直接键入新定义的 kk 指令规则9: 加载autolisp程序的作法:指令:后直接键入 (load lisp主檔名) 注:load 与字符串间的空格,可有可无注:load 与双引号间的空格,可有可无 (loadlisp主檔名)范例: 在 c:lsptools 目录下有一lisp程序tt.lsp,而您目前的工作目录在c:dwg下若环境设定之支持档案搜寻路径
30、有指定到c:lsptools目录,则欲使用加载tt.lsp 指令:后键入 (load tt) 即可 若环境设定之支持档案搜寻路径无指定到c:lsptools目录,则键入 (loadtt) 后,会出现错误讯息如下: 无法开启tt.lsp做输入错误: 加载失败(load tt)*取消*此时您可键入: 指令:(load c:lsptoolstt) 或指令:(load c:/lsptools/tt)不可键入: (load c:lsptoolstt)因为在 autolisp 结构语法中已经用于跳脱码控制了规则10:autolisp 程序中,在分号 ;后的内容均为批注,程序不处理,适时的增加批注,将使程序
31、更具可看性、学习性及完整性范例: pp.lsp 内容如下:;本程序功能可快速画门、窗;设计者:qq博士;版权所有,欢迎使用(defun c:pp(): :; 以下为画门子程序: :; 以下为画窗子程序,: : : )规则11:autolisp 最常用的变量型态是整数、实数、字符串、点串行四种,变量的型态依据设定值而自动定义,变量会一直储存该值,直到被重新设定值或绘图结束自动消失规则12:以 setq 功能函数设定变量值 (setq 变量名称 设定值)范例: (setq a 100) ;变量 a 值设定成整数 100(setq b 123.56) ;变量b值设定成实数123.56(setq c
32、good morning!) ;变量 c 值设定成字符串(setq pt1 (getpoint enter point:) ;变量 pt1 值设定成点串行(setq pt2 (list a b) ;此时,a值是100,b值是123.56变量pt2值设定成点串行(100 123.56)(setq pt3 (297 210) ;变量 pt3 值设定成点串行 (297 210)注意: 直接设定成点串行时,不能省略单引号否则会被误认 (297 210)又是一个表达式, 297是操作数而出错!规则13:欲在 autocad 的环境中,查看一变量值,指令:下键入!变量名即可范例: 指令:(setq aa
33、(+ 100 75) 传回:175指令:!aa 传回:175指令:(setq pp (list 90 50) 传回:(90 50)指令:!pp 传回: (90 50)指令:!ww 传回:nil 空值无设定规则14:以(defun c:函式名(自变量 / 变量) .)程序中,程序中的变量若在/右边变量内,则称为区域变量,否则为整体变量(注:在 autolisp 中,未赋予值的变量,其值皆响应 nil)区域变量于此程序执行完毕后,其值自动消失整体变量于此程序执行完毕后,其值仍然存在范例: test.lsp 内容如下(defun c:tt(/ sa sb sc)(setq sa 100)(setq
34、sb 20)(setq sc 10)(setq sd (+ sa sb sc)回到: 指令:键入(loadtt) 传回:c:tt指令:tt 传回:130指令:!sa 传回:nil (属区域变量)指令:!sb 传回:nil (属区域变量)指令:!sc 传回:nil (属区域变量)指令:!sd 传回:130 (属整体变量)返回单元三:快速分类浏览autolisp功能函数(一)一?看到以下那么多的 autolisp 功能函数,洋洋洒洒17大类:1、您第一个念头,一定惊讶怎么会那么多,您可能快吓坏了! 2、您第二个念头,一定会想那么多,怎么记得下来,您可能快放弃了!二?其实,您应该要很兴奋而充满信心的
35、,怎么说呢?1、您有那么多的大将协助您撰写 autolisp 程序,当然左右又逢源,不但轻松, 而且要快乐的不得了! 2、这些函数只要您先浏览有印象, 要用时,再翻查该函数,了解用途语法再加入到您的程序中就可以了! 3、常用的函数,写久、用久后,自然会深深牢记脑海,想忘都很难,不常用的函数, 若硬要您记下来,相信连高手都很困难,更何况是初学的您! 4、您不用再摸不着头绪了,因为您幸运的拥有了本书,就是您成功的开始! 第一类 数学运算功能函数项目函数语法 传 回 1.1 (+ 数值 数值 .) 累计实数或整数数值 1.2 (- 数值 数值 .) 减去数值 1.3 (* 数值 数值 .) 所有数值
36、乘积 1.4 (/ 数值 数值 .) 第一个数值除以第二个以后数值的商 1.5 (1+ 数值) 数值+1 1.6 (1- 数值) 数值-1 1.7 (abs 数值) 数值的绝对值 1.8 (atan 数值) 反正切值 1.9 (cos 角度) 角度的余弦值,角度值为弪度 1.10 (exp 数值) 数值的指数 1.11 (expt 基数 指数) 基数的指数值 1.12 (fix 数值) 将数值转换为整数值 1.13 (float 数值) 将数值转换为实数值 1.14 (gcd 数值1 数值2) 二数值的最大公因子 1.15 (log 数值) 数值的自然对数值 1.16 (max 数值 数值 .
37、) 数值中的最大值 1.17 (min 数值 数值 .) 数值中的最小值 1.18 pi 常数p ,其值约为 3.1415926 1.19 (rem 数值1 数值2) 二数值的相除的余数 1.20 (sin 角度) 角度的正旋值,角度值为弪度 1.21 (sqrt 数值) 数值的平方根 第二类 检验 & 逻辑运算功能函数项目 函数语法 传 回 2.1 (= 表示式1 表示式2) 比较表示式1是否等于表示式2适用数值及字符串 2.2 (/= 表示式1 表示式2) 比较表示式1是否大于等于表示式 2 2.3 ( 表示式1 表示式2) 比较表示式 1 是否 小于 表示式 2 2.4 (= 表示式1
38、表示式2) 比较表示式 1 是否 表示式1 表示式2) 比较表示式 1 是否 大于 表示式 2 2.6 (= 表示式1 表示式2) 比较表示式1是否大于等于表示式2 2.7 ( 数值) 传回:数值的位not值,(1的补码) 2.8 (and 表示式1 表示式2) 逻辑and的结果 2.9 (boole 函数 整数 整数) 位式布尔运算 2.10 (eq 表示式1 表示式2) 比较表示式1与表示式2是否相同, 适用串行比较(实际相同) 2.11 (equal 表示式1 表示式2 差量) 比较表示式1与表示式2是否相同, 差量可省略(内容相同) 第三类 转换运算功能函数项目 函数语法 传 回 3.
39、1 (angtof 字符串 模式) 角度值的字符串转成实数 3.2 (angtos 角度 模式 精度) 角度转成的字符串值 3.3 (atof 字符串) 字符串转成实数值 3.4 (atoi 字符串) 字符串转成整数值 3.5 (cvunit 数值 原始单位 转换单位) 数值转换单位后的值转换根据 acad.unt 档案 3.6 (distof 字符串 模式) 依模式将字符串转成实数值 3.7 (itoa 整数) 整数转成字符串 3.8 (rtos 数值 模式 精度) 实数转成字符串 3.9 (trans 点 原位置 新位置 位移) 转换坐标系统值 第四类 串行处理功能函数项目 函数语法 传
40、回 4.1 (append 串行 串行 .) 结合所有串行成一个串行 4.2 (assoc 关键元素 联合串行) 依关键元素找寻联合串行中关系资料 4.3 (car 串行) 串行中的第一个元素通常用来求 x 坐标 4.4 (cadr 串行) 串行中的第二个元素通常用来求 y 坐标 4.5 (caddr 串行) 串行中的第三个元素通常用来求 z 坐标 4.6 (cdr 串行) 除去第一个元素后的串行 4.7 (cons 新元素 串行) 将新元素结合到串行 4.8 (foreach 名称 串行 表示式) 将串行的每一元素对应至名称再依表示式执行响应 4.9 (length 串行) 串行内的元素数量
41、 4.10 (list 元素 元素) 将所有元素结合成一串行 4.11 (listp 元素) 判断元素是否为一串 4.12 (mapcar 函数 串行1 串行2 .) 将串行1、串行2、等串行的 元素配合函数,求得新串行 4.13 (member 关键元素 串行) 依关键元素(含)以后的串行 4.14 (nth n 串行) 串行的第n个元素 4.15 (reverse 串行) 将串行元素依顺序颠倒过来的串行 4.16 (subst 新项 旧项 串行) 替换新旧串行后的串行 第五类 字符串、字符、档案处理功能函数项目 函数语法 传 回 5.1 (ascii 字符串) 字符串第一个字符的ascii
42、码 5.2 (chr 整数) 整数所对应的 ascii 单一字符串 5.3 (close 文件名称) 关闭档案 5.4 (open 文件名 模式) 开启档案代码,准备读取或写入资料 5.5 (read 字符串) 串行中的字符串的第一组元素 5.6 (read-char 档案代码) 经由键盘或档案中读取单一字符 5.7 (read-line 档案代码) 经由键盘或档案中读取一行字符串 5.8 (strcase 字符串 字样) 转换字符串大小写 5.9 (strcat 字符串1 字符串2 .) 将各字符串结合成一字符串 5.10 (strlen 字符串) 字符串构成的字符数(即字符串长度) 5.1
43、1 (substr 字符串 起始 长度) 取出子字符串 5.12 (wcmatch 字符串 格式) t或nil,将字符串与通用字符进行比对 5.13 (write-char 数值 档案代码) 将一ascii字符写到档案或屏幕 5.14 (write-line 字符串 档案代码) 将字符串写到档案或屏幕上 第六类 等待输入功能函数项目 函数语法 传 回 6.1 (getangle 基点 提示) 请求输入十进制角度数值,响应一弪度值提示及参考点可有可无 6.2 (getcorner 基点 提示) 请求输入另一矩框对角点坐标 6.3 (getdist 基点 提示) 请求输入一段距离 6.4 (get
44、int 提示) 请求输入一整数值 6.5 (getkword 提示) 请求输入关键词 6.6 (getorient 基点 提示) 请求输入十进制角度,响应一弪度值不受angbase、angdir影响 6.7 (getpoint 基点 提示) 请求输入一个点坐标 6.8 (getreal 提示) 请求输入一实数 6.9 (getstring 提示) 请求输入一字符串 6.10 (initget 位 字符串) 设定下次 getxxx 函数的有效输入 第七类 几何运算功能函数项目 函数语法 传 回 7.1 (angle 点1 点2) 取得二点的角度弪度值 7.2 (distance 点1 点2) 取
45、得二点的距离 7.3 (inters 点1 点2 点3 点4 模式) 取得两条线的交点 7.4 (osnap 点 模式字符串) 依辅助抓点模式取得另一坐标点 7.5 (polar 基点 弪度 距离) 依极坐标法取得另一坐标点 7.6 (textbox 像素串行) 取得文字符串的二对角点坐标 第八类 像素处理功能函数项目 函数语法 传 回 8.1 (entdel 像素名称) 删除或逆删除像素 8.2 (entget 像素名称 应用程序串行) 取出像素名称的资料串行 8.3 (entlast) 取出图形数据中的最后一个像素 8.4 (entmake 像素串行) 建立一个新的像素串行 8.5 (en
46、tmod 像素串行) 依更新的资料串行更新屏幕上元体 8.6 (entnext 像素名称) 找寻图面中的下一个像素 8.7 (entsel 提示) 请求选取一个像素,响应包含像素名称及选点坐标的串行 8.8 (entupd 像素名称) 更新屏幕上复元体图形 8.9 (handent 图码) 图码的元体名称 8.10 (nentsel 提示) block所含副元体像素数据串行 8.11 (nentselp 提示 点) block所含副元体像素数据(以4 x 4矩形表示) .返回单元四:快速分类浏览autolisp功能函数(二)第九类 选择集、符号表处理功能函数项目函数语法 传 回9.1 (ssa
47、dd 像素名称 选择集) 将像素加入选择集或建立一新选择集 9.2 (ssdel 像素名称 选择集) 将像素自选择集中移出 9.3 (ssget 模式 点1 点2) 取得一个选择集 9.4 (ssget x 过滤串行) 取得依过滤串行所指定范围的选择集 9.5 (sslenth 选择集) 计算选择集的像素个数 9.6 (ssmemb 像素名称 选择集) 响应像素名称是否包含于选择集内 9.7 (ssname 选择集 索引值) 依索引值取出选择集中的像素名称 9.8 (tblnext 符号表名称 t) 检视符号表,有效的符号表: layer、ltype、view、style、block 9.9
48、(tblsearch 符号表名称 符号) 在符号表中搜寻符号 第十类 autocad 相关查询、控制功能函数项目函数语法 传 回 10.1 (command autocad 指令 .) 呼叫执行autocad指令 10.2 (findfile 檔名) 传回:应该文件名的路径及文件名 10.3 (getfiled 标题 内定档名 扩展名 旗号) 透过标准autocad档案对话dcl交谈框求得档案 10.4 (getenv 环境变量) 取得该环境变量的设定值,以字符串表示 10.5 (getvar 系统变量) 取得该系统变量的设定值,以字符串表示 10.6 (setvar 系统变量 值) 设定该系
49、统变量的值 10.7 (regapp 应用类项) 将目前的autocad图形登记为一个应用程序名称 第十一类 判断式、循环相关功能函数项目函数语法 传 回 11.1 (if 表示式2) 检算比较式结果,如果为真,执行否则,执行 11.2 (repeat 整数 .) 重复执行次数 11.3 (while 标题 内定檔名 扩展名 旗号) 透过标准 autocad 档案对话dcl交谈框求得档案 11.4 (cond 环境变量) 取得该环境变量的设定值,以字符串表示 11.5 (progn 表达式1 表达式2 .) 连结其内的表达式为一组,常用于配合if、cond等函数 第十二类 函数处理、定义、追踪
50、 & 错误处理功能函数项目函数语法 传 回 12.1 (*error* 字符串) 程序错误时的警示讯息 12.2 (alert 字符串) 以交谈框式显示出警告字符串 12.3 (apply 功能函数 串行) 将功能函数与串行结合后执行 12.4 (defun 名称 自变量串行 表示式 .) 自定函数或子程序 12.5 (eval 表示式) 传回:表示式的执行结果 12.6 (exit) 强制退出目前的应用程序 12.7 (lambda 自变量 表示式) 定义未具名的函数 12.8 (progn 表达式1 表达式2 .) 连结其内的表达式为一组,常用于配合if、cond等函数 12.9 (qui
51、t) 强制退出目前的应用程序 12.10 (tablet 代码 列1 列2 列3 方向) 取用或建立对数字板的校调 12.11 (trace 函数) 对函数设定追踪旗号,辅助除错 12.12 (untrace 函数) 对函数设定解除追踪旗号 第十三类 显示、打印控制功能函数项目函数语法 传 回 13.1 (graphscr) 作图环境切换到图形画面 13.2 (grclear) 暂时清除模前的屏幕画面 13.3 (grdraw 起点 终点 颜色 亮显) 暂时性的画出一条线 13.4 (grread 追踪) 由输入设备读取追踪值 13.5 (grtext 位置 字符串 亮显) 将字符串显示在状态
52、列或屏幕菜单上 13.6 (grvecs 向量串行 转置矩阵) 暂时性的画出多条线 13.7 (menucmd 字符串) 提供在autolisp中呼叫各菜单 13.8 (prin1 表示式 档案代码) 将表示式打印于命令区或已开启的档案,句柄字符则以 为前缀展开 13.9 (princ 表示式 档案代码) 除句柄字符则不以 为前缀展开外其余同prin1 13.10 (print 表示式 档案代码) 除表示式会往下一新行列出,及一空格外其余同prin1 13.11 (prompt 讯息) 将讯息显示于屏幕的命令区,并随后响应一个nil讯息 13.12 (redraw 像素名称 模式) 重绘整张图
53、或依像素名称重绘该图形 13.13 (terpri) 在屏幕上显示新列 13.14 (textscr) 作图环境切换到文字画面 13.15 (textpage) 清除文字画面文字类似dos的cls指令 13.16 (vports) 传回:窗口组态串行 第十四类 符号、元素、表示式处理功能函数项目函数语法 传 回 14.1 (atom 元素) 如果元素不是串行,响应 t,否则为 nil 14.2 (atoms-family 格式 符号串行) 传回:一组已定义函数的符号串行 14.3 (boundp 表示式) 传回:t或nil,响应表示式是否有值存在 14.4 (minusp 元素) 传回:t 或 nil,元素是否为负值 14.5 (not 元素) 传回:t 或 nil,判定元素是否为 nil 14.6 (null 元素) 传回:t或nil判定元素是否被赋予nil值 14.7 (numberp 元素) 传回:t或nil,元素是否为整数或实数 14.8 (. 表示式) 响应表示式未检算前状态 14.9 (quote 表示式) 响应表示式未检算前状态,同功能 14.10 (set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版个人教育培训专款专用贷款协议
- 2025版财务顾问机构与政府合作合同范本
- 2025年电梯操作员培训与考核服务协议
- 二零二五年度矿长劳动合同附带矿山设备租赁合同
- 二零二五年度人工智能教育平台合作协议
- 2025年度综合能源服务项目工程设计合同书
- 二零二五年工业地产合作开发与租赁合同
- 2025年按揭贷款房产保险附加合同模板
- 二零二五年电视台主持人违约责任与解除合同范本
- 2025年统计学专业期末考试题库:数据分析计算题库精讲
- ALC墙板施工课件
- 高速公路服务区物业服务方案
- 科技公司研发费用增加申请报告范文
- 2025年发展对象考试题库附含答案
- 商业中的家庭平衡事业与家庭的和谐共存
- 2024版煤矿安全生产标准化新旧对比
- 危险品运输行业市场调研分析报告
- 基于学习任务群的单元教学设计与实施
- 压力容器使用单位安全员题库
- 4M变更管理程序文件
- 房地产资金组合-帕拉丁地产基金-项目总培训班
评论
0/150
提交评论