我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > 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(世界坐標系)坐標系中,屏幕上同一點對象坐標與顯示坐標是不同的,因此,在兩者坐標數據進行比較時必須使用同一種坐標系。


我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

            不卡欧美aaaaa| 久久精品亚洲精品国产欧美| 1024成人网| 日韩亚洲欧美成人一区| 东方aⅴ免费观看久久av| 日韩精品高清不卡| 亚洲图片激情小说| 国产亚洲一区二区三区四区| 欧美日韩黄视频| 99这里只有久久精品视频| 一区二区三区不卡视频| 日本一区二区三区电影| 91精品国产乱码| 欧美在线免费观看亚洲| 国产精品自拍一区| 麻豆国产精品官网| 亚洲午夜久久久久久久久电影院| 中文字幕欧美三区| 久久在线观看免费| 日韩午夜av电影| 欧美色综合天天久久综合精品| 国产99久久久国产精品| 久久av中文字幕片| 久久精品av麻豆的观看方式| 午夜视频在线观看一区二区| 亚洲日本青草视频在线怡红院| 久久久久久99精品| 精品处破学生在线二十三| 欧美一区二区精品| 欧美岛国在线观看| 精品国产乱码久久久久久牛牛 | 国产精品污网站| 国产欧美视频一区二区| 欧美激情一区不卡| 国产精品丝袜一区| 中文字幕欧美一区| 精品国产露脸精彩对白 | 欧美伦理电影网| 3atv一区二区三区| 91免费版在线| 色素色在线综合| 色国产精品一区在线观看| 色悠悠久久综合| 欧美色综合网站| 日韩一区国产二区欧美三区| 日韩精品中文字幕一区| 久久久一区二区| 亚洲欧美综合网| 一区二区三区欧美| 日本伊人色综合网| 国产福利一区二区三区| 成人app在线观看| 欧美性大战久久久久久久蜜臀| av成人老司机| 欧美日韩成人综合天天影院| 欧美mv和日韩mv国产网站| 久久精品无码一区二区三区| 国产精品沙发午睡系列990531| ...中文天堂在线一区| 亚洲成人高清在线| 国内外成人在线| 国产伦精品一区二区三区视频青涩| 国产69精品久久久久毛片| 在线观看www91| 欧美一级久久久久久久大片| 久久久久亚洲综合| 亚洲综合男人的天堂| 日韩av成人高清| 成人av资源下载| 国产91精品一区二区麻豆网站| 日本大香伊一区二区三区| 欧美一三区三区四区免费在线看| 久久久久亚洲综合| 亚洲成av人片一区二区三区| 韩日精品视频一区| 一本大道久久a久久精品综合| 欧美一区二区播放| 一级日本不卡的影视| 成人高清视频在线| 欧美国产视频在线| 国产成人综合亚洲网站| 国产午夜精品在线观看| 国产美女在线观看一区| 日韩欧美美女一区二区三区| 日韩精品一二区| 日韩亚洲欧美中文三级| 久热成人在线视频| xvideos.蜜桃一区二区| 国产一区日韩二区欧美三区| 久久婷婷成人综合色| 国产精品91一区二区| 国产校园另类小说区| 大白屁股一区二区视频| 中文字幕日韩一区| 91黄色小视频| 五月天精品一区二区三区| 在线91免费看| 精久久久久久久久久久| 国产欧美综合色| 色综合久久久久综合99| 无码av中文一区二区三区桃花岛| 欧美一区二区网站| 国产高清精品在线| 亚洲精品v日韩精品| 欧美日韩中文另类| 九色综合狠狠综合久久| 国产精品色婷婷久久58| 欧美图区在线视频| 男人的天堂久久精品| 亚洲国产高清在线| 欧美人妇做爰xxxⅹ性高电影| 精品在线一区二区| 国产精品久久久久aaaa| 欧美亚洲一区二区在线| 精品中文字幕一区二区| 亚洲视频一区二区在线观看| 欧美日韩高清一区二区不卡| 国产在线播精品第三| 亚洲精品久久嫩草网站秘色| 欧美一级专区免费大片| av中文字幕一区| 蜜乳av一区二区| 国产精品不卡在线| 欧美一区二区三区色| 高清不卡一二三区| 日韩成人一区二区| 综合av第一页| 亚洲精品在线免费播放| 欧美亚洲综合一区| 成人爱爱电影网址| 久久69国产一区二区蜜臀| 亚洲精品va在线观看| 久久久精品欧美丰满| 制服丝袜亚洲网站| 色婷婷综合久久久久中文| 国产一区不卡视频| 日韩精彩视频在线观看| 亚洲免费大片在线观看| 国产午夜精品理论片a级大结局| 制服丝袜中文字幕亚洲| 色哟哟在线观看一区二区三区| 国产在线视频不卡二| 天天综合天天综合色| 亚洲精品视频免费观看| 久久精品一区二区三区四区| 欧美一区二区黄色| 欧美三级视频在线| 91欧美一区二区| 成人伦理片在线| 国产一区二区伦理| 蜜桃在线一区二区三区| 亚洲电影你懂得| 亚洲精品你懂的| 国产精品毛片无遮挡高清| xnxx国产精品| 精品国产污污免费网站入口 | 欧美高清视频在线高清观看mv色露露十八| 成人午夜伦理影院| 高清beeg欧美| 国产成人啪免费观看软件| 精品制服美女久久| 看电视剧不卡顿的网站| 美女免费视频一区二区| 日韩av中文字幕一区二区三区 | 91精品免费观看| 欧美肥胖老妇做爰| 欧美男男青年gay1069videost| 色综合久久久久久久| 色悠久久久久综合欧美99| 狠狠色丁香久久婷婷综合_中 | 99精品久久99久久久久| 91免费观看在线| 色综合久久99| 欧美在线制服丝袜| 欧美日韩一区二区三区高清| 欧美日韩dvd在线观看| 6080国产精品一区二区| 日韩欧美激情四射| 精品国产一区二区三区久久影院| 日韩精品一区二区三区视频播放 | 国产精品女同一区二区三区| 中文字幕av免费专区久久| 国产精品国产三级国产专播品爱网 | 亚洲18色成人| 蜜臂av日日欢夜夜爽一区| 麻豆精品视频在线| 国产伦精品一区二区三区免费 | 亚洲天堂中文字幕| 亚洲小说欧美激情另类| 免费在线观看一区| 国产精品一二三区| 色综合天天综合狠狠| 欧美高清视频一二三区| 欧美精品一区二区不卡| 中文字幕一区日韩精品欧美| 亚洲gay无套男同| 国产精品123区| 欧美性色综合网| 久久久久久99精品| 亚洲国产视频网站|