freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

autolisp從入門到精通初級教程新手必備資料-資料下載頁

2025-06-29 08:42本頁面
  

【正文】 對應『模型空間』 (8 . STR) 群碼8對應『圖層名稱』 (100 . AcDbLine) 群碼100對應『子類別』 (10 ) 群碼10對應『線起始點坐標』 (11 ) 群碼11對應『線終止點坐標 (210 ) 群碼210對應『圖元擠出方向』 文字的聯(lián)合數(shù)據(jù)串行 en3_data (1 . 圖元名稱: 2940520) 群碼1對應『圖元名稱』 (0 . TEXT) 群碼0對應『圖元類別』 (5 . 24) 群碼5對應『處理碼』 (100 . AcDbEntity) 群碼100對應『子類別』 (67 . 0) 群碼67對應『模型空間』 (8 . TXT) 群碼8對應『圖層名稱』 (100 . AcDbText) 群碼100對應『子類別』 (10 ) 群碼10對應『插入點』 (40 . 8) 群碼40對應『字高』 (1 . AutoCAD) 群碼1對應『文字內(nèi)容』 (50 . ) 群碼50對應『旋轉(zhuǎn)角度』 (41 . ) 群碼41對應『寬度比例系數(shù)』 (51 . ) 群碼51對應『傾斜角』 (7 . STANDARD) 群碼7對應『字型名稱』 (71 . 0) 群碼71對應『鏡設方向』 (72 . 0) 群碼72對應『水平對齊設定』 (11 ) 群碼11 對應『對齊點』 (210 ) 群碼210對應『圖元擠出方向』 (100 . AcDbText) 群碼100對應『子類別』 (73 . 0) 群碼73 對應『水平對齊設定』 4. 由以上可看出,元體數(shù)據(jù)串行有些『群碼』是共通的 (如 0、210) 有些『群碼』是因元體而異的(如 40),有些『群碼』是某些元體特有的(如 en3_data 數(shù)據(jù)串行就比 en1_data amp。 en2_data 數(shù)據(jù)串行來的多)注意1:往后練習撰寫 AutoLISP 程序中,若對各元體與群碼的對應有疑問或不清楚時,請隨時查看『附錄 C』有關詳細的群碼表分析!!!注意2:子串行中間有一點『.』隔開二元素,我們稱為『點對串行』,點對串行要特別注意的是『第二個元素取得,要用cdr函數(shù)』,而非cadr函數(shù)!若要產(chǎn)生新的『點對串行』,:(cons 1 “ABC”) 回應 (1 . “ABC”)  四、圖元數(shù)據(jù)修改與更新技巧: amp。 更新四步驟:步驟一:用 entget 函數(shù)取得元體數(shù)據(jù)串行,如上例中 en1_data、en2_data、en3_data步驟二:用assoc函數(shù)依『群碼值』找尋取得欲修改的舊『子串行』,新的子串行可以用 cons 函數(shù)去產(chǎn)生步驟三:用 subst 函數(shù)將數(shù)據(jù)串行中的新、舊子串行替換步驟四:用 entmod 函數(shù)更新的數(shù)據(jù)串行,同時自動更新屏幕上圖元『指令:』下做基本圖元數(shù)據(jù)修改amp。更新練習:請將上例中,:指令:!en1_data傳回: ((1 . 圖元名稱: 2940518) (0 . CIRCLE) (5 . 23)(100 . AcDbEntity) (67 . 0) (8 . STR) (100 . AcDbCircle) (10 ) (40 . ) (210 )) 指令: (setq oldr (assoc 40 en1_data))傳回:(40 . ) ==群碼40為索引值的子串行指令:(setq newr (cons 40 ))傳回:(40 . ) 指令:(setq en1_data (subst newr oldr en1_data))回應:((1 . 圖元名稱: 2940518) (0 . CIRCLE) (5 . 23)(100 . AcDbEntity) (67 . 0) (8 . STR)(100 . AcDbCircle) (10 ) (40 . ) (210 )) 數(shù)據(jù)串行已被修改成功了,但是畫面上圖元并未更新???指令: (entmod en1_data) ==大功告成,畫面上的圓也更新了!!! 單元七:圖元數(shù)據(jù)的取得與活用技巧(二)五、范例練習:范例一:,用來修改圓半徑,此程序的執(zhí)行過程要求如下:指令: CHGRAD 選取已知圓:碰選畫面上已存在的圓 自動顯示該舊圓半徑值于指令區(qū) 新半徑:要求輸入一半徑值 new_rr程序內(nèi)容解答:(defun c:chgrad()(setvar cmdecho 0 。指令執(zhí)行過程不響應。以下為 INPUT 圖元選取(setq en (entsel 選取已知圓:)) 。要求碰選一個圓。以下為圖元數(shù)據(jù)amp。半徑數(shù)據(jù)取得(setq en_data (entget (car en))) 。取得元體資料串行(setq old_rad_list (assoc 40 en_data))。取得半徑子串行(setq old_rr (cdr rad_list)) 。取得舊有半徑(princ “\n舊半徑=”)(princ old_rr) 。顯示該舊圓半徑值于指令區(qū)。以下為新半徑輸入amp。圖元數(shù)據(jù)新舊半徑更替(setq cenpt (cdr (assoc 10 en_data))) 。一口氣取得圓之圓心(setq new_rr (getdist cenpt New Radius:))。要求輸入一半徑值(setq new_rad_list (cons 40 new_rr)) 。產(chǎn)生新半徑子串行(setq en_data (subst new_rad_list old_rad_list en_data)) 。新舊交替(entmod en_data) 。依新圖元數(shù)據(jù)自動更新圓半徑(prin1)。何作用?在程序結(jié)束前加上(prin1)目的是不讓命令行出現(xiàn)nil。)(prompt *************** C:CHGRAD *****************)(prin1) 程序執(zhí)行:(請先在畫面上任意的畫一些圓)指令: (loadchgrad)回應: *************** C:CHGRAD *****************指令: CHGRAD選取已知圓: (碰選畫面上已有的圓)新半徑:20 ( 輸入一半徑值)范例二: ,當碰選畫面上的LINE時,會在該線的中點(Midpoint)產(chǎn)生一個圓,此程序的執(zhí)行過程要求如下: 指令: MCIR Select a LINE:選擇畫面上已有的線 Circle Radius:要求輸入一半徑值MR (可給整數(shù)、實數(shù)或拉一段距離) 自動的在該線的中點畫出一個半徑值為MR的圓???解題關鍵:先取得線的二端點坐標pt1(px1 py1) amp。 pt2(px2 py2),那二點的中點坐標 mpt(mx my)就用數(shù)學幾何公式求得mx = (px1 + px2)/2my = (py1 + py2)/2程序內(nèi)容解答:(defun c:mcir()(setvar cmdecho 0) 。指令執(zhí)行過程不響應(setq en (entsel Select a LINE:)) 。要求碰選一條線(setq en_data (entget (car en))) 。取得元體資料串行。******************** 求得 pt1 amp。 pxpy1 *********************(setq pts (assoc 10 en_data)) 。取得群碼10的子串行(setq pt1 (cdr pts)) 。取得起點pt1坐標(setq px1 (car pt1)) 。取得pt1坐標的x值(setq py1 (cadr pt1)) 。取得pt1坐標的y值。******************** 求得 pt2 amp。 pxpy2 ***********************(setq pte (assoc 11 en_data)) 。取得群碼11的子串行(setq pt2 (cdr pte)) 。取得終點pt2坐標(setq px2 (car pt2)) 。取得pt2坐標的x值(setq py2 (cadr pt2)) 。取得pt2坐標的y值。***************** 求得 mx amp。 my 并結(jié)合成 mpt ****************(setq mx (/ (+ px1 px2) 2)) 。求得mx值(setq my (/ (+ py1 py2) 2)) 。求得my值(setq mpt (list mx my)) 。結(jié)合mx amp。 my成mpt點。******************** Input mr amp。 Finish ************************(setq mr (getdist mpt Circle Radius:))。要求輸入半徑值(mand circle mpt mr) 。完成中點畫圓(prin1))(prompt *************** C:MCIR *****************)(prin1) 程序執(zhí)行:(請先在畫面上任意的畫一些線)指令: (loadmcir)回應: *************** C:MCIR *****************指令: MCIRSelect a LINE: (碰選畫面上已有的線)Circle Radius:20 (輸入半徑20)注意: 變數(shù)值查詢:您若想進一步查詢執(zhí)行后變量值,沒問題!!!請搭配224。 驚嘆號『!』+『變量名』輸入在『指令:』后如!en、!en_data、!pts、!pt!px!py!pte、!pt!px!py2 、!mx、!my、!mpt、!mr 以上程序中所用到的變量,讀者皆可自行命名,以方便、好記、不會混淆為原則 若不加上最后兩行(prompt *************** C:MCIR *****************)(prin1)則程序在加載后,將只響應 c:mcir建議讀者們養(yǎng)成加入最后兩行的習慣,以免未來程序越來越大,加載程序后,根本無從知道該如何執(zhí)行此LISP程序,因為程序內(nèi)可能有好幾個C:XX 的指令函數(shù),也可能有很多子程序!!! 范例三:請撰寫一個 ,碰選CIRCLE后,自動產(chǎn)生一個圓內(nèi)接正五邊形,此程序的執(zhí)行過程要求如下:指令: cpoly5 Select CIRCLE:碰選畫面上已有的圓 自動產(chǎn)生一個內(nèi)接正五邊形,OK! ???解題關鍵: 先取得圓的圓心點坐標cenpt amp。 半徑rr 模擬polygon完成內(nèi)接正五邊形的過程: 指令:POLYGON邊數(shù) 4: 5邊緣(E)/多邊形的中心點: (選一點為正多邊形中心)內(nèi)接或外切于圓 (內(nèi)接(I)/外切(C)) I:I圓的半徑: (給一個半徑值)程序內(nèi)容解答:(defun c:cpoly5()(setvar cmdecho 0) 。設定變量cmdecho=0關閉指令響應(setq en (entsel Select CIRCLE:)) 。要求碰選一個圓(setq en_data (entget (car en))) 。取得元體資料串行(setq cenpt (cdr (assoc 10 en_data))) 。求得圓心坐標串行(setq rr (cdr (assoc 40 en_data))) 。求得半徑 rr(mand polygon 5 cenpt i rr) 。完成圓內(nèi)接正五邊形(prin1))(prompt *************** C:CPOLY5 *****************)(prin1)程序執(zhí)行:(請先在畫面上任意的畫一些圓)指令:(loadcpoly5)回應 *************** C:CPOLY5 *****************指令: CPOLY5Select CIRCLE: (碰選畫面上已有的圓)OK! 完成一個內(nèi)接正五邊形范例四:請撰寫一個 ,其內(nèi)有二個可執(zhí)行函數(shù):CIRA碰選CIRCLE后,原CIRCLE大小自動縮為原來的1/2 CIRB碰選CIRCLE后,原CIRCLE大小自動放大為原來的2倍 此程序的執(zhí)行過程要求如下:指令:ciraSelect CIRCLE to Scale : (碰選畫面上已有的圓)自動產(chǎn)生CIRCLE 大小自動縮為原來的1/2指令:cirbSelect CIRCLE to Scale 2: (碰選畫面上已有的圓)自動產(chǎn)生CIRCLE 大小自動放大為原來的2倍??? 解題關鍵:用entget函數(shù)取得圓的元體資料串行cir_data 用assoc函數(shù)取得群碼40的半徑『子串行』rad_list,并以cdr取得半徑值old_r,再依此值作放大2倍或縮小一半新的半徑子串行可以用cons函數(shù)結(jié)合群碼40 amp。 新半徑值 用subst函數(shù)將數(shù)據(jù)串行中的新、舊子串行替換 用 entmod 函數(shù)依更新的數(shù)據(jù)串行更新屏幕上圓 程序內(nèi)容解答:(defun c:cira()(setvar cmdecho 0)(setq cir (entsel Select CIRCLE to Scale :))(setq cir_data (entget (car cir))) 。取得元體資料串行(setq old_rad_list
點擊復制文檔內(nèi)容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1