




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、autolisp實(shí)用編程四例江蘇 崔華明autocad是一個(gè)功能強(qiáng)大的通用圖形設(shè)計(jì)軟件,其內(nèi)嵌的autolisp語(yǔ)言為用戶進(jìn)行二次開發(fā)提供了方便。下面就介紹幾則用autolisp編寫的實(shí)用程序,這些程序相當(dāng)于新增的autocad命令,可以彌補(bǔ)autocad本身的一些不足,為日常使用帶來(lái)方便。1快速更改文本的大小在標(biāo)準(zhǔn)的autocad中,要更改已有文本的大小,需要使用change命令。該命令的缺陷是:即使只更改文本的大小,也要重新確認(rèn)文本的插入點(diǎn)、字型、傾斜角等一系列參數(shù)。也就是說(shuō),除輸入文本的新高度值外,還需要按5次回車鍵才能完成一個(gè)文本的更改!而且每次只能修改一個(gè)文本。這對(duì)于同時(shí)更改多個(gè)文本
2、的大小非常不便。本文的autolisp程序使這一工作變得十分方便和快捷。使用方法如下:在autocad的command提示下,打入命令:cthautocad將提示“selectobjects:”,這時(shí)可以使用autocad允許的任意方式選擇目標(biāo)。對(duì)于有多個(gè)文本需要更改的情況,使用窗口選擇比較方便,而且你不用擔(dān)心選擇窗口中包含了非文本目標(biāo),程序能夠自動(dòng)在選擇的目標(biāo)中查找出文本實(shí)體,并只對(duì)文本進(jìn)行更改。選擇目標(biāo)后,autocad提示“newtextheight:”,這時(shí)輸入一個(gè)新的文本高度值然后回車,則所有選中的文本被更改成新設(shè)定的高度。2延伸直線的長(zhǎng)度在實(shí)際使用中,常常要將一條直線延伸指定的長(zhǎng)度
3、。通常的做法是:在需要延伸的直線的端點(diǎn)畫一個(gè)輔助圓,圓的半徑等于直線要延伸的長(zhǎng)度,然后使用extend命令將直線延伸到與圓相交,最后刪除輔助圓。本文的autolisp程序?qū)⑹鼓惴浅H菀椎貙?shí)現(xiàn)這一點(diǎn)。你只需選擇要延伸的直線并輸入要延伸的長(zhǎng)度即可,其余的工作由程序自動(dòng)完成。使用方法如下:在autocad的command提示下,打入命令:stl然后根據(jù)提示選擇要延伸的直線(選擇點(diǎn)要靠近直線需要延伸的端點(diǎn)),并輸入延伸的長(zhǎng)度。該程序?qū)⒆詣?dòng)在離選擇點(diǎn)較近的直線端點(diǎn),按指定的長(zhǎng)度延伸直線。3快速畫直線在畫給定坐標(biāo)點(diǎn)的直線時(shí),需要通過(guò)鍵盤輸入坐標(biāo)值。這樣的情況下當(dāng)然是利用右邊的數(shù)字鍵盤輸入較為方便。但若直接
4、使用autocad的line命令畫直線,在x和y兩個(gè)坐標(biāo)值之間需要輸入一個(gè)逗號(hào)“,”作為分隔,而數(shù)字鍵盤區(qū)又沒(méi)有該逗號(hào),所以仍然不方便。本文的autolisp畫直線程序只要求用戶輸入坐標(biāo)值,而由程序自動(dòng)調(diào)用line命令畫出直線,因此用戶不用離開數(shù)字鍵盤區(qū)就能完成工作。使用方法如下:在autocad的command提示下,打入命令:xlin然后根據(jù)提示依次輸入x和y坐標(biāo)。若要結(jié)束畫線,在程序提示輸入x坐標(biāo)時(shí)直接打回車即可。4圍繞圓弧寫一段文本有時(shí)為了美觀的需要,希望能夠圍繞一段圓弧來(lái)寫文本文字,本文的程序提供了這一功能。使用方法如下(粗體字表示autocad的提示,尖括號(hào)“中的部分是需要用戶輸入
5、的內(nèi)容):command:atxtstartpointoftext:指定文本的起點(diǎn)textheight:指定文本的高度值selectarc:選擇圓弧text:輸入文本輸入以上相關(guān)內(nèi)容后,程序自動(dòng)圍繞指定的圓弧寫文本。如果當(dāng)前的文本字型有固定高度,則程序不提示“textheight:”。本文給出的程序只適合寫英文文本,由于漢字是雙字節(jié),所以若要寫漢字,需要對(duì)程序作一些修改。需要修改的地方為程序中第二個(gè)if函數(shù),用下面的代碼替換原來(lái)的if函數(shù):(if(tsize0)(commandtextcptsiztr(substrtxtcnt2)(commandtextcpttr(substrtxtcnt2)
6、緊接該函數(shù),在其后再增加一行代碼:(setqcnt(cnt1)修改后的程序支持中文文本(不支持中、英文混合書寫)。5程序使用說(shuō)明以上每個(gè)功能的autolisp程序既可以以獨(dú)立的文本文件形式存放,也可以合并在一個(gè)文本文件中。若以acadlsp作為程序文件名,并將文件放在autocad支持文件所在的路徑中,則在啟動(dòng)autocad時(shí)系統(tǒng)會(huì)自動(dòng)加載該文件。否則需要通過(guò)系統(tǒng)菜單或load函數(shù)加載autolisp程序文件,然后才能使用。load函數(shù)的調(diào)用格式是:在autocad的command:命令提示狀態(tài)下,打入:(loadautolisp文件名)在autolisp文件名中可以包含dos路徑,但需要注意
7、的是:在autolisp中,反斜杠“”有特殊的定義,因此要使用正斜杠或連續(xù)兩個(gè)反斜杠來(lái)表示dos路徑中的反斜杠。如:(loadacadcad1lsp)擴(kuò)展名lsp可以省略。6autolisp程序以上四個(gè)功能的autolisp程序如下,該程序已在acadr13forwindows、中文windows95環(huán)境下調(diào)試通過(guò)。它適用于autocad100以上的dos和windows版本。;更改文本高度程序(defunc:cth(sstxsizenindexenttypeoldsizenewsizeent1)(setqss(ssget)(setqtxsize(getdistnnewtextheight:)
8、(setqn(sslengthss)(setqindex0)(repeatn(setqent(entget(ssnamessindex)(setqindex(1index)(setqtype(assoc0ent);檢查選擇的實(shí)體是否為文本(if(text(cdrtype)(progn(setqoldsize(assoc40ent)(setqnewsize(cons(caroldsize)txsize)(setqent1(substnewsizeoldsizeent)(entmodent1)(princ);延伸直線的長(zhǎng)度程序(defunc:stl(eentpt1pt2madis)(setqe(e
9、ntselnselectline:);取得選中實(shí)體的數(shù)據(jù)(setqent(entget(care)(setqpt1(cdr(assoc10ent)pt2(cdr(assoc11ent);找出離選擇點(diǎn)最近的直線的端點(diǎn)(if(distance(cadre)pt1)(distance(cadre)pt2)(setqptpt1m10a(anglept2pt1)(setqptpt2m11a(anglept1pt2)(setqdis(getdistptnstretchlength:)(setqpt(polarptadis)(setqe(subst(consmpt)(assocment)ent)(entmo
10、de)(princ);快速畫直線程序(defunc:xlin(xy)(setvarcmdecho0)(commandline)(setqxt)(while(xnil)(setqx(getrealnenterx:)(if(xnil)(progn(setqy(getrealentery:)(command(listxy)(command)(princ);圍繞圓弧寫文本程序(defunc:atxt(ospt1styetsizesizarctxtrlendiahfintangcntssnangpttr)(setqos(getvarosmode)(setqpt1(getpointnstartpointoftext:)(setqsty(getvartextstyle)(setqe(tblsearchstylesty)(setqtsize(cdr(assoc40e)(setqsiztsize);檢查當(dāng)前的文本字型是否為固定高度(if(tsize0)(setqsiz(getdistpt1ntextheight:)(setvarosmode4)(setqarc(getpointnselectarc:)(setvarosmodeos)(setqtxt(getstring1ntext:)(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中醫(yī)藥適宜技術(shù)推廣實(shí)施方案
- 智能制造產(chǎn)業(yè)園區(qū)基礎(chǔ)設(shè)施建設(shè)項(xiàng)目實(shí)施方案(范文參考)
- 雨污分流管網(wǎng)改造建設(shè)項(xiàng)目可行性研究報(bào)告
- 社交媒體IP與區(qū)塊鏈域名結(jié)合-洞察闡釋
- 2025至2030年中國(guó)玻璃鋼漁船產(chǎn)業(yè)發(fā)展動(dòng)態(tài)及投資前景分析報(bào)告
- 洗車店運(yùn)營(yíng)管理方案
- 2025至2030年中國(guó)瑪瑙飾品行業(yè)市場(chǎng)運(yùn)行格局及前景戰(zhàn)略分析報(bào)告
- 云南經(jīng)貿(mào)外事職業(yè)學(xué)院《審計(jì)(下)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遵義師范學(xué)院《法語(yǔ)語(yǔ)音(I)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西華大學(xué)《酒店情景英語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年一年級(jí)道德與法治人教版試題
- 道法 期末復(fù)習(xí)模擬測(cè)試卷-+2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 字節(jié)跳動(dòng)考勤管理制度
- 嚴(yán)重創(chuàng)傷患者緊急救治血液保障模式與輸血策略中國(guó)專家共識(shí)(2024版)解讀
- 母嬰銷售員合同協(xié)議書
- 安全工作規(guī)程課件
- 躁動(dòng)患者約束帶的使用及護(hù)理
- T/CCS 008-2023煤礦5G通信網(wǎng)絡(luò)設(shè)備接入通用技術(shù)要求
- 第二屆全國(guó)化工和醫(yī)藥行業(yè)安全生產(chǎn)線上知識(shí)競(jìng)賽題庫(kù)(共150題)
- 圖像的頻域增強(qiáng)
- 瓦利安離子注入機(jī)工作原理
評(píng)論
0/150
提交評(píng)論