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

您的位置:網(wǎng)站首頁 > CAD新聞

[CAD/VBA]計算選定區(qū)域面積

時間:2009-11-15 02:18:35 來源:
   首先得聲明一下:這段代碼基本上是"借"來的。只是做了些修改。這段代碼的作用是計算選定區(qū)域的面積,運行效果如下面的圖,用了比較多的SendCommand,不太可取,不過也無大礙,管用就行。另外,有多次對Auto-CAD環(huán)境變量的操作,GetVariable/SetVariable,至于各環(huán)境變量有什么用,可以查看CAD幫助文檔。
         修正Bug:重設ObjectSnapMode之后,原來的捕捉設置會丟失,必須得修改OSMODE環(huán)境變量的值才行。

[程序代碼]   

Public Sub XArea() '選擇一點,計算圍繞該點的對象圍成的面積
On Error GoTo ErrorHandler
Dim pt As Variant
Dim spt As String
Dim i As Integer
Dim zarea As Double
zarea = 0
    
'得到當前的對象總數(shù)
Dim oCount As Long
oCount = ThisDrawing.ModelSpace.count
  
'得到當前邊界創(chuàng)建的對象類型(0 為面域,1 為多段線)
Dim oOL As Integer
oOL = ThisDrawing.GetVariable("HPBOUND")
    
'得到當前層的名字
Dim currentLayer As String
currentLayer = ThisDrawing.ActiveLayer.Name
  
'得到當前線體的顏色
Dim oColor As String
oColor = ThisDrawing.GetVariable("CECOLOR")
         '--By :忽又一天 Email:wzw.icy@gmail.com QQ:365052003
'新建一層并把它設為當前層、還原用戶配置
Dim areaLayer As AcadLayer
Set areaLayer = ThisDrawing.Layers.Add("macula_Area_")
areaLayer.color = 11
ThisDrawing.ActiveLayer = areaLayer
  
'關(guān)閉對象捕捉
Dim CurSnapMode
CurSnapMode = ThisDrawing.GetVariable("OSMODE")
ThisDrawing.ObjectSnapMode = False
  
'設置新的線體顏色(這一段可以省去提示用戶輸入,沒太大意義,不過類似的寫法還是有意義的)
Dim cr As String
cr = ThisDrawing.Utility.GetString(0, vbCrLf & " 選擇顏色[隨層(L)/隨塊(K)/自定義(S)]<隨層>:")
If cr = "k" Or cr = "K" Then
    ThisDrawing.SetVariable "CECOLOR", "0"
ElseIf cr = "s" Or cr = "S" Then
    ThisDrawing.SendCommand "COLOR "
Else
    ThisDrawing.SetVariable "CECOLOR", "256"
End If
  
Dim oName As String
Dim oLayer As String
Dim oNum As Long
  
'計算單個區(qū)域的面積并求和
Do While 1
   pt = ThisDrawing.Utility.GetPoint(, vbCrLf & "請選取區(qū)域內(nèi)部任意一點:")
   spt = pt(0) & "," & pt(1)
  
   With ThisDrawing
     '得到新的對象總數(shù),用于分析是否建立了面域或多段線
     oNum = ModelSpace.count
    
     '設置當前邊界創(chuàng)建的對象為面域
     ThisDrawing.SetVariable "HPBOUND", 0
    
     '建立一個面域
     SendCommand Chr(3) & Chr(3) & "-boundary " & spt & " " & " "
    
     '如果建立面域不成功則建立多段線
     If oNum = ModelSpace.count Then
       ThisDrawing.SetVariable "HPBOUND", 1
       SendCommand Chr(3) & Chr(3) & "-boundary " & spt & " " & " "
     End If
    
     '得到最后一個對象的名字
     oName = ModelSpace.Item(ModelSpace.count - 1).ObjectName
    
     '獲取把對最后一個對象所在的層,用于分析最后一個對象是否是需要的面域或多段線
     oLayer = ModelSpace.Item(ModelSpace.count - 1).Layer
    
     '由三方面判斷對象是否建立,如果建立則計算其面積
     If (oNum < ModelSpace.count) And ((oName = "AcDbRegion") Or (oName = "AcDbPolyline")) And (oLayer = "macula_Area_") Then
       SendCommand "draworder last f "
       SendCommand "area "
       SendCommand "o "
       SendCommand "last "
       zarea = Round(zarea + GetVariable("AREA"), 4)
     End If
   End With
     ThisDrawing.Utility.Prompt vbCrLf & "選定區(qū)域的總面積為: " & zarea & vbCrLf
Loop
 ErrorHandler:
'復制結(jié)果到剪切板
Set mydataobject = New DataObject
mydataobject.SetText zarea
mydataobject.PutInClipboard
MsgBox "選定區(qū)域的總面積為: " & zarea & "   (mm^2)" & Chr(13) & Chr(13) & "計算結(jié)果已經(jīng)復制到剪切板!      ", vbOKOnly, "面積計算"

'刪除計算面積產(chǎn)生的對象和圖層、還原對象捕捉設置
Do While oCount < ThisDrawing.ModelSpace.count
    ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.count - 1).Delete
Loop
ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item(currentLayer)
ThisDrawing.Layers.Item("macula_Area_").Delete
ThisDrawing.SetVariable "CECOLOR", oColor
ThisDrawing.SetVariable "HPBOUND", oOL
ThisDrawing.ObjectSnapMode = True
ThisDrawing.SetVariable "OSMODE", CurSnapMode
SendCommand Chr(3) & Chr(3)
End Sub

 


久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
亚洲国产高清国产精品| 伊人久久青草| 国产精品综合网站| 国产一区二区三区精彩视频| 欧美亚洲视频在线看网址| 少妇高清精品毛片在线视频| 亚洲最新在线| 亚洲乱码国产一区三区| 亚洲欧美国产不卡| 国产精品午夜视频| 波多野结衣久草一区| www.av毛片| 国产h视频在线播放| 欧美一级免费播放| 91免费精品国偷自产在线| 91久久夜色精品国产网站| 97精品在线观看| av色综合网| 久久国产色av免费观看| 日韩视频中文字幕| 国产精品欧美日韩久久| 久久亚洲精品一区二区| 九色91av视频| 午夜免费在线观看精品视频| 性欧美长视频免费观看不卡| 国产又粗又猛又爽又黄的网站| 久久免费视频观看| 亚洲精品免费av| 欧美精品一区二区三区在线看午夜 | 国产奶头好大揉着好爽视频| 日韩av一级大片| 伊人色综合久久天天五月婷| 激情六月丁香婷婷| 国产精品成人播放| 欧美一区1区三区3区公司| 国产伦精品免费视频| 久久精品国产免费观看| 亚洲a∨日韩av高清在线观看| 国产日产欧美视频| 久久理论片午夜琪琪电影网| 国产精品美女视频网站| 欧美亚洲另类视频| 国产精品视频一区二区三区四区五区| 日本久久久久久久| 久久精品欧美| 欧美日韩另类综合| 日韩视频精品在线| 九色精品美女在线| 国产日韩精品一区观看| 一区二区三区欧美在线| 国产伦精品免费视频| 久久亚洲国产精品| 国产自产精品| 精品中文字幕在线观看| 欧美日韩免费精品| 美日韩精品免费视频| 99精彩视频在线观看免费| 亚洲 欧洲 日韩| 久久精品国产精品青草色艺| 欧洲亚洲免费视频| 国产精品视频中文字幕91| 国产精品揄拍500视频| 亚洲高清精品中出| 精品国偷自产在线| 91成人综合网| 国模吧一区二区三区| 亚洲91精品在线观看| 成人精品视频一区二区| 亚洲精品偷拍视频| 久久一区免费| 青青久久av北条麻妃黑人| 国产精品户外野外| 97人人模人人爽人人喊中文字| 手机看片日韩国产| 久久久国产视频91| 国产欧美日韩中文| 午夜视频在线瓜伦| 久久精品国产电影| av免费观看网| 欧美韩国日本在线| 亚洲va码欧洲m码| 国产精品成人一区二区三区| 91精品国产91久久久久久不卡| 欧美中日韩一区二区三区| 国产精品美腿一区在线看| 波多野结衣久草一区| 黄色a级在线观看| 懂色av一区二区三区四区五区| 久久久久久亚洲精品不卡4k岛国| 国产制服91一区二区三区制服| 亚洲人成人77777线观看 | www.亚洲一区| jizzjizz国产精品喷水| 国内精品久久久久| 日本欧洲国产一区二区| 亚洲一区亚洲二区亚洲三区| 国产精品视频免费在线观看| 国产极品精品在线观看| 免费看又黄又无码的网站| 日韩av成人在线观看| 亚洲国产精品www| 国模吧一区二区| 国模杨依粉嫩蝴蝶150p| 欧美一区亚洲二区| 秋霞在线一区二区| 日韩中文字幕av在线| 亚洲www在线观看| 亚洲精品国产精品国自产 | 久久精品中文字幕一区| 国产高清www| 国产精品一区二区免费看| 国产一区精品视频| 国产欧美一区二区在线播放| 国产欧美日韩网站| 国产在线播放不卡| 国产日产欧美精品| 国产玖玖精品视频| 国产九区一区在线| 97欧洲一区二区精品免费| 国产欧美日韩视频| 91久久久久久久| 久久精品视频16| 国产精品国模大尺度私拍| 欧美激情乱人伦一区| 亚洲一区二区三区视频播放| 中文精品视频一区二区在线观看| 精品久久一二三| 在线码字幕一区| 日本公妇乱淫免费视频一区三区| 欧美在线视频一区二区| 国产欧美在线观看| 久久久999免费视频| 国产精品区一区| 亚洲欧美日韩在线综合| 日本久久中文字幕| 国产有码在线一区二区视频 | 午夜精品在线观看| 日韩欧美黄色大片| 国产精品久久久久久av| 天堂av一区二区| 国产一区二区三区免费不卡| 9191国产视频| 欧美xxxx综合视频| 青青草成人网| 97成人精品视频在线观看| 国产精品色视频| 日本91av在线播放| 97久久精品人人澡人人爽缅北| 久久久97精品| 人人爽久久涩噜噜噜网站| 99电影在线观看| 国产精品久久九九| 热99精品里视频精品| 91成人精品网站| 亚洲三区视频| 国产精品一区二区三区久久| 国产精品裸体瑜伽视频| 日韩欧美亚洲v片| 久久理论片午夜琪琪电影网| 亚洲一区二区三区久久| 国产欧美日韩丝袜精品一区| 久久99精品久久久久久青青91| 欧美精品在欧美一区二区| 久久久久久久久爱| 日韩久久精品一区二区三区| 国产高清av在线播放| 亚洲精品日韩精品| 99在线视频免费观看| 亚洲午夜精品久久久久久人妖| 国产精品亚洲一区| 亚洲在线不卡| 国产z一区二区三区| 日韩国产小视频| 日韩中文理论片| 黄色特一级视频| 精品国产免费av| 成人精品视频一区二区| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 日韩在线视频观看| 不卡毛片在线看| 日韩精品手机在线观看| 精品少妇人妻av免费久久洗澡| 91干在线观看| 欧洲中文字幕国产精品| 久久成人亚洲精品| 91久久国产精品91久久性色| 日本亚洲欧美成人| 国产精品久久久久久久小唯西川 | 欧美 国产 精品| 精品国产乱码久久久久久蜜柚| 国产在线999| 日本最新高清不卡中文字幕| 国产精品推荐精品| 国产免费人做人爱午夜视频| 午夜一区二区三区| 国产精品久久97| 91精品免费视频| 麻豆91蜜桃| 日韩人妻无码精品久久久不卡| 久热精品视频在线免费观看|