久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区

您的位置:網站首頁 > CAD教程 > 常見問題

在AutoCAD中對集中特殊編輯功能的開發研究

時間:2010-11-12 13:10:36 來源:未知

AutoCAD作為強大而專業的工程繪圖軟件,提供了豐富的矢量圖編輯工具,但也有一些常用的特殊編輯功能沒有提供,給交互式繪圖工作中的圖形編輯帶來了不便。例如, 在繪制地理圖時, 經常遇到繪制鐵路線;在手動矢量化過程中,為精確調整矢量圖與底圖的符合程度, 需要增加或減少多義線節點。這些功能AutoCAD缺省時無法實現,如果通過編程讓計算機自動完成上述功能,則既可提高工作效率又可減輕工程設計人員的勞動強度。

  AutoCAD軟件提供了許多開放式接口,允許用戶通過這些接口對AutoCAD進行二次開發,為AutoCAD增加新功能,以滿足用戶的工作需要。LISP語言程序就是常用的一種,在AutoCAD R14中,將編寫的LISP程序(函數)加入到ACADr14.LSP 文件中,這些函數就如同AutoCAD的基本命令一樣,非常方便。下面開發的幾個LISP函數程序分別實現了繪制鐵路線型、多義線節點的增加、刪除操作等特殊編輯功能。

  繪制鐵路線型

  1.程序設計思路

  在AutoCAD的線型庫文件ACAD.LIN、ACADISO.LIN分別新增實線段與空白段之比為1∶1、名為“Railway” 的線型,描述格式如下:

  在ACAD.LIN中增加:

  *Railway,Railway — —

  A,1,-1

  在ACADISO.LIN中增加:

  *Railway,Railway — —

  A,15,-15

  通過對選定多義線設置線寬(鐵路線寬),原點拷貝,將由拷貝生成的多義線設置為新建的“鐵路”圖層,顏色設為“白色”,線型設為“Railway”,線寬為原線寬的0.7倍,這樣原多義線與疊加在其上的寬度稍窄的白色虛線就構成了形象逼真的鐵路線。

  2.程序代碼

  (defun c:tlx()

  (setvar “cmdecho” 0)

  (setq ss (ssget ‘((0 .“LWPOLYLINE”))))

  (if (equal ss NIL)

  (exit) ; 沒有選擇對象或已取消

  )

  (setq tlkd (getstring“請輸入鐵路線寬度:”))

  (command “pedit” ss “width” tlkd “”)

  (command “copy” ss “” “0,0” “0,0” “”)

  (command “layer” “m” “鐵路” “L” “Railway” “” “”)

  (command “layer” “s” “鐵路” “c” “255” “” “”)

  (setq sset (ssget “L”))

  (command “pedit” sset “width” (setq tlkd1 (* (atof tlkd) 0.7)) “L” “ON” “”)

  (setq ename1 (ssname sset 0)

  ent1 (entget ename1))

  (setq ent11 (nth 5 ent1))

  (setq ent11 (subst (cons 8 “鐵路”) ent11 ent1))

  (entmod ent11)

  (setq ent12 (nth 6 ent11))

  (setq ent12 (subst (cons 6 “Railway”) ent12 ent11))

  (entmod ent12)

  )

  增加多義線節點

  1. 程序設計思路

  選定多義線,通過設置“最近點”捕捉方式精確定位所增加節點的位置。提取多義線的定義數據表中的節點坐標,通過檢測添加點到相鄰兩節點距離之和是否等于兩節點間距離的方法,判斷添加節點所在的位置。把添加點的坐標插入數據表中與之相鄰的兩節點坐標之間,并對多義線的定義數據表進行更新,以達到增加節點的目的。

  2. 程序代碼

  (defun c:add_V()

  ; add_Vertex.lsp

  ; 要求用戶選定多義線

  (princ “ Select LWPolylines: ”)

  (setq ss (ssget ‘((0 . “LWPOLYLINE”))))

  (if (equal ss NIL)

  (exit)) ; 沒有選擇對象或已取消

  ; 獲得單個多義線

  (setq ename (ssname ss 0)

  ent (entget ename)

  listlength (length ent)

  elementcounter 1)

  (setq e2 (entsel“請增加一個節點:”))

  (setq ent11 (nth 1 e2))

  (setq ent11 (osnap ent11 “nea”))

  ;最近點精確捕捉

  (setq e3 (cons 10 ent11))

  (setq el10 (list (car ent)))

  (setq el20 (cdr (assoc 10 ent)))

  (setq element2 el20)

  (setq k 0)

  ; 從多義線清單中獲得每個元素

  (while (< elementcounter listlength)

  ; 從表中獲得一個元素

  (setq element (nth elementcounter ent)

  kind (car element))

  (if (equal kind 10)

  ; 該元素所含的坐標

  (progn

  ; 獲取坐標 (OCS系統)

  (setq OCSpoint (list (nth 1 element); x坐標

  (nth 2 element))) ; y坐標

  (setq element2 (trans OCSpoint ename 1)); 將OCS系統轉為UCS系統

  (setq element1 (cons 10 element2))

  (setq dist (distance element2 el20))

  (setq dist1 (distance ent11 element2))

  (setq dist2 (distance ent11 el20))

  (setq dist (rtos dist 2 4))

  (setq dist1 (rtos dist1 2 4))

  (setq dist2 (rtos dist2 2 4))

  (if (= (atof dist) (+ (atof dist1) (atof dist2)));判斷節點位置并將其坐標加入表中

  (progn

  (setq ent11 (trans ent11 1 ename))

  ;將UCS系統轉為OCS系統

  (setq e3 (cons 10 ent11))

#p#分頁標題#e#

  (setq el10 (cons e3 el10))

  (setq k 1)

  )

  )

  )

  )

  (setq el1 (cons element el10))

  (setq kind “”)

  (setq elementcounter (1+ elementcounter))

  (setq el10 el1)

  (setq el20 element2)

  )

  (if (= k 0) (print “添加點沒選中,重試!”))

  (setq ent (reverse el1))

  (entmod ent);表更新

  (setq ss NIL)

  (princ “ Ready.”)

  (princ)

  )

  多義線節點的刪除

  1. 程序設計思路

  選定多義線,通過設置“端點”、“交點”捕捉方式定位刪除節點的位置。提取多義線的定義數據表中的節點坐標,通過檢查所刪節點在定義數據表中的位置,把數據表中的對應節點坐標數據刪除,并對多義線的定義數據表進行更新,以達到刪除節點的目的。

  2. 程序代碼;

  remove_vertex.lsp

  (defun c:rem_v(); 要求用戶選定多義線

  (princ “ Select LWPolylines: ”)

  (setq ss (ssget ‘((0 . “LWPOLYLINE”))))

  (if (equal ss NIL)

  (exit) ; 沒有選擇對象或已取消); 獲得單個多義線

  (setq ename (ssname ss 0)

  ent (entget ename)

  listlength (length ent)

  elementcounter 1)

  (setq e2 (entsel“請選擇一個節點:”))

  (setq ent11 (nth 1 e2))

  (setq ent11 (osnap ent11 “int,end”))

  (setq e3 (cons 10 ent11))(setq el10 (list (car ent))); 從表中獲得每個元素

  (while (< elementcounter listlength); 從表中獲得一個元素

  (setq element (nth elementcounter ent)

  kind (car element))

  (if (equal kind 10); 該元素所含的坐標

  (progn; 獲取坐標 (以OCS系統)

  (setq OCSpoint (list (nth 1 element); x坐標

  (nth 2 element))) ; y坐標

  (setq element1 (trans OCSpoint ename 1))

  ; 將OCS系統轉為UCS系統

  (setq element1 (cons 10 element1))

  )

  )

  (if (equal element1 e3)

  (setq el1 el10)

  (setq el1 (cons element el10))

  )

  (setq element1 “”)

  (setq elementcounter (1+ elementcounter))

  (setq el10 el1)

  )

  (setq ent (reverse el1))

  (entmod ent)

  (setq ss NIL)

  (princ “ Ready.”)

  (princ)

  )

  應當指出的是上述多義線節點的增加、刪除操作適合于任何用戶坐標系統的圖形文件。在程序設計中,還涉及到坐標系統轉換,即OCS系統(對象坐標系統)與UCS(用戶坐標系統)之間的轉換,原因是多義線定義數據表中的坐標為對象坐標,屏幕圖元的顯示坐標為用戶坐標,在非WCS(世界坐標系)坐標系中,屏幕上同一點對象坐標與顯示坐標是不同的,因此,在兩者坐標數據進行比較時必須使用同一種坐標系。


久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
国产精品影片在线观看| 99久久激情视频| 久久久久国产一区二区三区| 亚洲一区 在线播放| 欧美一区观看| 日本久久久精品视频| 日本国产在线播放| 久久久中文字幕| 成人免费观看cn| 国产精品秘入口18禁麻豆免会员| 久久99欧美| 国产精品久久久对白| 久久6免费高清热精品| 亚洲二区自拍| 人人干视频在线| 麻豆国产精品va在线观看不卡| 日本福利视频网站| 国产美女网站在线观看| 国产做受69高潮| 国产小视频免费| 国产精品日韩一区二区免费视频| 性欧美激情精品| 国产美女作爱全过程免费视频| 久久视频这里有精品| 久久国产精品视频| 国产欧美日韩精品丝袜高跟鞋 | 一区二区成人国产精品| 日韩精品一区中文字幕| 九九热精品视频国产| 日本不卡一区| 国产欧美精品在线播放| 久久久国内精品| 欧美激情视频一区二区三区不卡 | 精品乱子伦一区二区三区| 日本在线播放不卡| 久久久久国产精品熟女影院| 国产精品7m视频| 一区二区在线中文字幕电影视频| 欧美日韩aaaa| 久久精品福利视频| 久久影院理伦片| 成人免费aaa| 黄色一级免费大片| 加勒比在线一区二区三区观看| 天天摸天天碰天天添| 中文字幕在线中文| 久久久91精品国产| 久久久亚洲国产精品| 国产精品揄拍一区二区| 黄色国产小视频| 国产主播欧美精品| 欧美一区二区影视| 国产精品第10页| 麻豆av一区二区三区久久| 成人3d动漫一区二区三区| 精品国产乱码久久久久久郑州公司| 加勒比海盗1在线观看免费国语版| 久久这里只有精品99| 欧美日韩成人精品| 国产精品啪啪啪视频| 精品高清视频| 亚洲中文字幕无码一区二区三区| 国产精品吊钟奶在线| 亚洲高清123| 青青影院一区二区三区四区| 久久99亚洲精品| 国产a视频免费观看| 国产精品一区二区免费看| 精品91免费| 精品一区二区国产| 日韩久久一级片| 国产精品96久久久久久| 精品一区二区日本| 视频一区亚洲| 久久久久国产精品免费| 国产精品人人妻人人爽人人牛| 久久全球大尺度高清视频| 成人亚洲欧美一区二区三区| 蜜桃麻豆91| 国内精品国产三级国产99 | 操人视频在线观看欧美| 久久亚洲一区二区| 97久久久免费福利网址| 国产欧美日韩高清| 国产欧美精品一区二区| 国产欧美日韩伦理| 国产男女在线观看| 国产日韩精品推荐| 国产欧美日本在线| 成人免费观看视频在线观看| 成人一区二区av| 国产精品aaaa| 久久久久久亚洲精品不卡4k岛国| 欧美中文在线视频| 99免费在线视频观看| 久久久91精品国产一区不卡| 视频一区二区视频| 成人av蜜桃| 国产精品一香蕉国产线看观看| 永久久久久久| 国产精品视频久| 久久成人资源| 91久久久精品| 国产精品一区二区久久精品| 欧美a在线视频| 日本精品免费在线观看| 亚洲一区二区三区久久| 精品久久久久久中文字幕动漫| 国产成人精品综合| 99精彩视频| 成人羞羞国产免费| 国产色一区二区三区| 加勒比成人在线| 欧美中日韩在线| 日韩av色在线| 懂色av一区二区三区四区五区| 欧美日韩国产91| 久久亚洲精品成人| 国产精品久久久久久久电影| 久久久97精品| 久久久久免费视频| 国产二区视频在线| 久久伊人一区二区| 91精品国产综合久久香蕉| 国产区精品视频| 国产在线高清精品| 国产最新免费视频| 天天综合五月天| 一区二区三区av| 久久99精品国产99久久6尤物| 国产精品国产对白熟妇| 国产精品美乳在线观看| 国产精品久在线观看| 国产精品久久久久aaaa九色| 国产精品国语对白| 国产精品第1页| 久久99精品久久久久久噜噜| 久久久久久999| 一区中文字幕在线观看| 中文字幕中文字幕一区三区| 色中色综合影院手机版在线观看| 欧美极品在线播放| 亚洲精品一区二区三区樱花| 亚洲人久久久| 日日噜噜噜夜夜爽爽| 日韩精品最新在线观看| 欧美一区观看| 国产一区二区视频在线观看| 国产欧美一区二区三区在线| 福利视频一区二区三区四区| 91久久久在线| 久久久久久一区| 国产精品区一区二区三含羞草 | 久久精品视频一| 久久亚洲影音av资源网| 精品国产一区三区| 亚洲欧洲日韩综合二区| 日本乱人伦a精品| 欧美牲交a欧美牲交aⅴ免费下载 | 国产精品一区免费观看| 91精品国产高清久久久久久久久| 久久伊人资源站| 国产精品视频一区二区高潮| 久久在线精品视频| 亚洲自拍另类欧美丝袜| 日韩欧美在线免费观看视频| 欧美xxxx黑人又粗又长精品| 成人久久久久爱| 久久久久久久免费视频| 国产精品久久久对白| 亚洲精品中字| 欧美xxxx黑人又粗又长密月| 国产乱肥老妇国产一区二| 久久这里精品国产99丫e6| 久久人人爽亚洲精品天堂| 中文字幕欧美日韩一区二区| 性欧美大战久久久久久久| 欧美成人第一区| 777精品视频| 国产精品久久久久久av福利 | 国内精品国产三级国产在线专| 97精品国产91久久久久久| 久久久久久久久国产精品| 久久综合88中文色鬼| 日韩影院一区| 国产日韩欧美视频| 国产成人精品日本亚洲11| 蜜月aⅴ免费一区二区三区 | 亚洲三区在线| 国产资源在线免费观看| 久久久久高清| 精品国产乱码久久久久久蜜柚| 日韩高清国产一区在线观看| 国产日韩欧美另类| www.久久久久| 午夜在线视频免费观看 | 久久精精品视频| 精品国产综合| 欧美一区二区中文字幕| 91精品视频在线看|