久久国产色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免费在线观看视频| 91精品久久香蕉国产线看观看| 青春草国产视频| 色综合91久久精品中文字幕| 日本精品久久久久久久久久| 91国产视频在线播放| 久久久99免费视频| 久久人人爽人人| 亚洲啊啊啊啊啊| 激情五月婷婷六月| yellow视频在线观看一区二区| 久久国产精品-国产精品| 日韩久久久久久久| 99三级在线| 国产小视频免费| 国产成人生活片| 欧美在线不卡区| 欧美激情亚洲综合一区| 久久久久久亚洲精品不卡| 成人国产精品久久久久久亚洲| 欧美日韩高清区| 婷婷四房综合激情五月| 欧美一级日本a级v片| 久久成人18免费网站| 欧美精品123| 国产精品一区在线播放| 亚洲欧洲精品一区二区| 久久中国妇女中文字幕| 国产伦精品一区| 91av免费观看91av精品在线| 久久草视频在线看| 少妇人妻无码专区视频| 欧美日韩一区在线视频| 色999五月色| 一本久道综合色婷婷五月| 国产精品色悠悠| 久久精品国产v日韩v亚洲| 日本精品va在线观看| 色综合久久悠悠| 北条麻妃一区二区三区中文字幕 | 国产精品成人国产乱一区| 国产成人综合精品在线| 免费国产成人av| 日本中文字幕久久看| 三级三级久久三级久久18| zzjj国产精品一区二区| 99精品国产一区二区| 青青青青在线视频| 欧美亚洲国产成人精品| 高清视频一区二区三区| 欧美极品欧美精品欧美图片| 久久99热精品这里久久精品| 成人精品在线视频| 国内精品小视频在线观看| 免费高清一区二区三区| 久久天天躁狠狠躁夜夜爽蜜月| 成人av在线不卡| 国产精品国产三级国产专区51| 国模私拍一区二区三区| 爽爽爽爽爽爽爽成人免费观看| 欧美一二三不卡| 国模精品一区二区三区色天香| 九九九九免费视频| 亚洲欧美日韩综合一区| 成人中文字幕在线播放| 美日韩精品视频免费看| 日本一区二区三区视频在线观看 | 久久精品99| 日韩美女免费视频| 日韩在线视频中文字幕| 国内精品久久国产| 国产乱肥老妇国产一区二 | 亚洲精品成人a8198a| 精品一区久久久| 少妇久久久久久被弄到高潮| 91精品久久久久| 日本精品一区二区三区四区| 日韩有码在线视频| 欧美污视频久久久| 欧美精品激情在线观看| 官网99热精品| 亚洲在线第一页| 九九热视频这里只有精品| 国产欧美在线一区| 午夜免费在线观看精品视频| 91精品中文在线| 欧美一区观看| 国产精品国色综合久久| 国产一区二区三区免费不卡| 日本中文字幕在线视频观看| 不卡av在线播放| 91精品国产精品| 久久手机在线视频| 精品一卡二卡三卡四卡日本乱码| 午夜久久久久久久久久久| 一区二区在线中文字幕电影视频| 日本免费高清一区| 成人做爽爽免费视频| 性欧美大战久久久久久久| 国产不卡视频在线| 久精品免费视频| 91精品视频在线| 日本精品免费一区二区三区| 国产成人精品一区二区三区福利 | 久久在精品线影院精品国产| 日韩毛片在线免费看| 色久欧美在线视频观看| 国产精品一区二区三区不卡| 欧美精品videofree1080p| 97成人精品视频在线观看| 激情久久av| 97精品在线视频| 欧洲成人在线观看| 欧美精品一区在线播放| 国产淫片av片久久久久久| 亚洲一区二区精品在线观看| 久久精品视频99| 国产精品综合网站| 91精品视频专区| www.美女亚洲精品| 精品国产乱码久久久久久久软件| 国内一区二区在线视频观看| 欧美精品一区免费| 日韩五码在线观看| 激情视频小说图片| 久久精品成人一区二区三区| www.久久撸.com| 免费91麻豆精品国产自产在线观看 | 日韩不卡一二区| 九色精品免费永久在线| 亚洲精品一区二| 啊啊啊一区二区| 色综合久久久久久中文网| 黄色高清无遮挡| 欧美综合激情| 欧美一区二区视频在线| 国产日韩在线亚洲字幕中文| 精品免费国产| 国产精品一 二 三| 中文字幕久久一区| 日本不卡一区二区三区四区| 欧美做暖暖视频| 黄在线观看网站| 热99久久精品| 麻豆国产va免费精品高清在线| 精品一区2区三区| 日韩免费av片在线观看| 色综合天天狠天天透天天伊人| 99在线影院| 久久精品视频亚洲| 九九精品在线视频| 91精品啪aⅴ在线观看国产| 亚洲精品乱码视频| www.色综合| 97久久国产精品| 欧美尤物巨大精品爽| 欧美日韩国产成人在线| 国产成人黄色av| 国产综合欧美在线看| 亚洲精品久久久久久一区二区| 日韩在线播放av| 国产精品中出一区二区三区| 青青视频在线播放| 午夜在线视频免费观看| 久久99久久久久久久噜噜| 久久免费视频1| 99在线精品免费视频| 欧美最猛性xxxx| 日韩啊v在线| 亚洲一区二区精品在线| 久久中文字幕视频| 国产精品久久久久久久久久久不卡| 国产日韩视频在线观看| 美女av一区二区三区| 久久大片网站| 性色av香蕉一区二区| 久草热久草热线频97精品| 精品欧美国产一区二区三区不卡| 在线一区日本视频| 久久久久久久av| 国产成人在线播放| 久久久综合亚洲91久久98| 国产乱子伦农村叉叉叉| 久久伊人免费视频| 国产精品自产拍在线观看中文| 欧美激情18p| 北条麻妃av高潮尖叫在线观看| 国产精品美女在线观看| 极品粉嫩国产18尤物| 久久综合九色综合88i| 亚洲资源视频| 久久久综合香蕉尹人综合网| 成人免费91在线看| 啊啊啊一区二区| 91免费版网站在线观看| 国产freexxxx性播放麻豆| 久久影视中文粉嫩av| 日韩欧美亚洲在线| 日韩一级裸体免费视频|