久久国产色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_欧美 国产 日本_好吊色欧美一区二区三区
91精品在线观| 国产精品免费在线| 欧美亚洲在线播放| 欧美在线亚洲一区| 日韩欧美手机在线| 欧美伊久线香蕉线新在线| 日韩视频精品| 欧美亚洲日本网站| 黄色一级视频片| 蜜臀av无码一区二区三区| 久久婷婷开心| 99免费在线视频观看| 国产精品稀缺呦系列在线| 国产精品一区二区电影| av网址在线观看免费| 国产精品12345| 久久成人免费观看| xvideos亚洲| 国产精品青青草| 九九综合九九综合| 在线免费一区| 五月天综合网| 日韩av色在线| 黄网站欧美内射| 国产乱子伦农村叉叉叉| 91国产美女在线观看| 9191国产视频| 久久久久久久一| 国产精品视频一区国模私拍| 欧美成年人视频网站欧美| 一区二区不卡在线视频 午夜欧美不卡' | 丝袜一区二区三区| 国产精品欧美一区二区| 在线视频91| 日韩激情久久| 国产免费一区视频观看免费| 国产高清一区视频| 日韩在线观看成人| 欧美激情亚洲视频| 欧洲在线视频一区| 国产精品一区视频网站| 色噜噜国产精品视频一区二区| 欧美成人免费va影院高清| 亚洲 欧洲 日韩| 国产又粗又爽又黄的视频| 久久手机在线视频| 欧美久久久精品| 日本高清视频精品| 国产精品中文在线| 国产精品网站大全| 色播五月综合| 国产一区二区丝袜| 国产av无码专区亚洲精品| 国产精品精品一区二区三区午夜版| 一级日韩一区在线观看| 欧美日韩一区在线观看视频| 91av在线国产| 久久久久国产精品www| 人体内射精一区二区三区| 北条麻妃在线一区| 久久亚洲精品成人| 欧美亚洲成人免费| 国产精品99久久久久久久| 国产精品夫妻激情| 欧美在线亚洲在线| 国产成人精品久久| 亚洲直播在线一区| 黄页网站在线观看视频| 久久综合九九| 亚洲一区国产精品| 国产伦精品一区二区三区免| 国产精品久久久久av免费| 青青在线免费视频| 国产成人自拍视频在线观看| 欧美激情精品久久久久久变态 | 国产一区精品视频| 秋霞午夜一区二区| 久久久一本精品99久久精品66| 久久久久国产精品免费网站| 国产性生活免费视频| 欧美xxxx做受欧美.88| 国产在线观看精品一区二区三区| 久久精品国产清自在天天线| 欧美午夜精品久久久久免费视| 日韩中文在线视频| 人妻少妇精品无码专区二区| 久久免费成人精品视频| 日韩av日韩在线观看| 国产激情久久久久| 日韩精品久久久| 久久久久久久久久久久久9999| 亚洲国产一区二区三区在线播| 高清视频欧美一级| 亚洲乱码日产精品bd在线观看 | 国产精品一码二码三码在线| 精品国产中文字幕| 国产日本欧美一区| 欧美日本亚洲视频| 高清欧美性猛交xxxx| 亚洲一区二区在线| 久久一区二区三区欧美亚洲| 日韩欧美亚洲日产国产| 国产精品色婷婷视频| 国产欧美一区二区三区不卡高清| 中文字幕一区二区三区四区五区人 | 国产精品二区二区三区| 国产一二三四区在线观看| 欧美美最猛性xxxxxx| 国产精品一区二区欧美| 午夜精品蜜臀一区二区三区免费| 91精品成人久久| 欧美专区中文字幕| 精品中文字幕在线2019| 91免费视频网站在线观看| 日韩啊v在线| 国产精品成av人在线视午夜片| 国产伦精品一区二区三区四区免费| 亚洲美女网站18| 国产成人无码a区在线观看视频| 国产一区二区自拍| 亚洲精品成人久久久998| 日韩在线中文字幕| 成人精品视频在线| 日韩精品大片| 欧美精品福利在线| 国产成人精品免费视频大全最热| 欧美日韩精品免费在线观看视频| 精品国产av无码一区二区三区| 99久久久久国产精品免费| 日韩亚洲欧美视频| 色综合视频一区中文字幕| 久久久久久99| 国产无限制自拍| 日韩av成人在线观看| 国产精品成人一区二区三区吃奶| 97色伦亚洲国产| 欧美日韩一区在线观看视频| 亚洲最大福利视频网站| 色伦专区97中文字幕| 国产伦精品一区二区三区在线| 日本一区二区在线| 国产精品国产自产拍高清av水多| 91久久中文字幕| 国产在线精品一区二区中文| 日本欧洲国产一区二区| 欧美激情视频三区| www.久久色.com| 91看片淫黄大片91| 国产一区二区在线网站| 青草青草久热精品视频在线网站| 伊人久久大香线蕉精品| 国产精品福利观看| www.亚洲免费视频| 国产成人精品日本亚洲11 | 日韩有码视频在线| 99三级在线| 国产综合 伊人色| 欧美日韩三区四区| 日本免费在线精品| 亚洲精品一区二区三| 欧美激情aaaa| 精品国产福利| 国产精品高潮视频| 国产精品爽爽爽| 久久久久久久久久久免费| 91国偷自产一区二区三区的观看方式 | 国产精品99免视看9| 成人中文字幕在线观看| 国产亚洲精品久久久久久久| 国内伊人久久久久久网站视频| 日韩欧美在线播放视频| 日韩中文不卡| 亚洲xxxx做受欧美| 亚洲精品中文字幕无码蜜桃| 一区二区精品视频| 中文字幕免费在线不卡| 美女扒开尿口让男人操亚洲视频网站| 久久久久久久久网| 久久国产精品免费观看| 久久视频这里有精品| 91久久久久久久一区二区| 99久热re在线精品996热视频| 粉嫩av一区二区三区天美传媒| 国产日韩一区二区在线| 国产一区二区视频在线免费观看| 每日在线更新av| 国产免费色视频| 97免费在线视频| 久久亚洲午夜电影| 色偷偷88888欧美精品久久久| 久久久久久久亚洲精品| 久久久久久久久久久成人| 国产成人精品视频ⅴa片软件竹菊| 久久婷婷开心| 久久国产色av免费观看| 久久精品国产成人精品| 国产精品国产自产拍高清av水多| 国产精品国产亚洲伊人久久| 久久999免费视频| 一本一生久久a久久精品综合蜜|