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

您的位置:網站首頁 > 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
    
'得到當前的對象總數
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
  
'關閉對象捕捉
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ū)域內部任意一點:")
   spt = pt(0) & "," & pt(1)
  
   With ThisDrawing
     '得到新的對象總數,用于分析是否建立了面域或多段線
     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:
'復制結果到剪切板
Set mydataobject = New DataObject
mydataobject.SetText zarea
mydataobject.PutInClipboard
MsgBox "選定區(qū)域的總面積為: " & zarea & "   (mm^2)" & Chr(13) & Chr(13) & "計算結果已經復制到剪切板!      ", vbOKOnly, "面積計算"

'刪除計算面積產生的對象和圖層、還原對象捕捉設置
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

 


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

            国产久卡久卡久卡久卡视频精品| 自拍偷在线精品自拍偷无码专区| 奇米四色…亚洲| 国产精品国产三级国产普通话三级| 91精品欧美久久久久久动漫| 欧美日韩一区二区三区视频| 99精品欧美一区| heyzo一本久久综合| 国产精品自产自拍| 午夜电影网亚洲视频| 亚洲欧美成aⅴ人在线观看| 中文字幕不卡在线| 久久久精品一品道一区| 精品国产百合女同互慰| 精品国内二区三区| 欧美精品一区视频| 精品久久五月天| 久久久国产精华| 欧美激情一区在线| 亚洲视频你懂的| 亚洲综合999| 婷婷国产在线综合| 蜜臀a∨国产成人精品| 久久精品久久综合| 国产一区二区女| 成人av免费网站| 在线观看视频一区| 91麻豆精品国产91久久久久久久久| 欧美狂野另类xxxxoooo| 欧美性欧美巨大黑白大战| 日本电影亚洲天堂一区| 在线不卡a资源高清| 亚洲精品一区二区三区精华液| 国产喷白浆一区二区三区| 国产精品国产精品国产专区不蜜| 一区二区三区在线视频播放| 婷婷六月综合亚洲| 国产福利一区二区| 91久久线看在观草草青青| 91精品国产aⅴ一区二区| 日韩欧美一级二级三级| 国产精品久久久久永久免费观看| 亚洲女同一区二区| 狂野欧美性猛交blacked| 国产成人免费在线观看不卡| 色婷婷国产精品| 日韩视频一区二区三区在线播放| 中文字幕国产精品一区二区| 婷婷丁香激情综合| 成人精品视频.| 欧美精品三级在线观看| 精品三级在线看| 国产成人自拍高清视频在线免费播放| aaa欧美日韩| 7777精品伊人久久久大香线蕉最新版| 日韩精品一区二| 亚洲欧美一区二区久久| 精品一区二区三区免费视频| 在线视频国内自拍亚洲视频| 日本一区二区高清| 男女男精品视频网| 在线欧美小视频| 欧美激情一区二区| 久99久精品视频免费观看| 日本黄色一区二区| 欧美激情综合在线| 免费观看91视频大全| 日韩黄色小视频| 91丨porny丨首页| 精品1区2区在线观看| 亚洲综合激情小说| 97se亚洲国产综合自在线不卡 | 亚洲一区二区四区蜜桃| 国产精品自产自拍| 日韩免费观看高清完整版| 亚洲国产成人高清精品| 91久久精品国产91性色tv| 国产精品美女久久福利网站| 国产在线视视频有精品| 日韩亚洲欧美高清| 天堂久久久久va久久久久| 欧美亚洲一区二区三区四区| 亚洲欧洲综合另类在线| 91美女片黄在线观看91美女| 亚洲欧美视频在线观看| 91麻豆免费视频| 一区二区在线观看不卡| 色婷婷激情综合| 亚洲国产综合91精品麻豆| 在线看不卡av| 三级一区在线视频先锋| 日韩女优av电影| 国产成人午夜视频| 亚洲欧洲中文日韩久久av乱码| 91传媒视频在线播放| 午夜精品久久久久久久蜜桃app| 欧美高清dvd| 国精产品一区一区三区mba桃花 | 国产成人一区二区精品非洲| 国产精品久久二区二区| 欧美在线观看视频一区二区 | 日韩电影免费在线看| 精品日韩欧美一区二区| 国产精品亚洲成人| 一区二区中文字幕在线| 在线视频中文字幕一区二区| 日日夜夜精品视频天天综合网| 欧美一区二区三区四区视频| 国模大尺度一区二区三区| 久久精品一区四区| aaa欧美日韩| 自拍偷拍欧美激情| 欧美一级夜夜爽| 另类小说一区二区三区| 国产亚洲精品aa午夜观看| 91日韩一区二区三区| 韩国一区二区三区| 久久精品男人天堂av| 99re成人精品视频| 久久99精品网久久| 国产香蕉久久精品综合网| 成人午夜碰碰视频| 欧美精品久久99| 国产一区二区免费视频| 国产欧美精品一区| 成人精品国产一区二区4080| 亚洲天天做日日做天天谢日日欢 | 欧美视频一区二区三区四区 | 亚洲欧美影音先锋| 91黄色免费网站| 亚洲色大成网站www久久九九| 欧美揉bbbbb揉bbbbb| 另类小说欧美激情| 中文字幕精品一区二区三区精品| 91麻豆自制传媒国产之光| 国产精品美女久久久久久久久久久| 欧美日韩精品一区二区| 久久99在线观看| 亚洲丝袜另类动漫二区| 91超碰这里只有精品国产| 精品制服美女久久| 国产午夜精品福利| 欧日韩精品视频| 精品亚洲免费视频| 中文字幕亚洲视频| 欧美一二三区精品| 国产自产视频一区二区三区| 日本欧美一区二区三区| 国产日韩影视精品| 欧美日韩大陆一区二区| 国产一区二区三区美女| 一区二区三区**美女毛片| 国产.欧美.日韩| 日韩高清一级片| 日韩毛片视频在线看| 欧美成人精品3d动漫h| 色婷婷精品大在线视频| 美女视频网站久久| 亚洲成人在线观看视频| 国产欧美视频在线观看| 3d动漫精品啪啪1区2区免费| voyeur盗摄精品| 国内精品久久久久影院色| 亚洲香肠在线观看| 国产精品人成在线观看免费 | 17c精品麻豆一区二区免费| 色天使久久综合网天天| 国产一区二区三区免费看| 亚洲bt欧美bt精品777| 亚洲精品国久久99热| 欧美极品另类videosde| 欧美少妇性性性| 日本乱人伦一区| 美国毛片一区二区三区| 极品少妇一区二区| 日韩激情中文字幕| 亚洲一卡二卡三卡四卡| 亚洲图片另类小说| 亚洲伊人伊色伊影伊综合网| 亚洲欧洲制服丝袜| 国产精品初高中害羞小美女文| 欧美成人三级电影在线| 亚洲影院免费观看| 国产亚洲成av人在线观看导航| 欧美日韩国产另类不卡| 在线免费精品视频| 欧美图区在线视频| 久久激情五月激情| 国产成人精品1024| av不卡在线观看| www.99精品| 亚洲日穴在线视频| 亚洲欧美日韩一区二区| 精品久久人人做人人爽| 7878成人国产在线观看| 欧美日韩高清在线播放| 欧美日韩中文精品| 风间由美性色一区二区三区| 欧美中文字幕一区二区三区亚洲| 99久久精品国产毛片|