CADVBA]计算板材重量

上传人:hs****ma 文档编号:559801144 上传时间:2022-10-22 格式:DOC 页数:13 大小:52.01KB
返回 下载 相关 举报
CADVBA]计算板材重量_第1页
第1页 / 共13页
CADVBA]计算板材重量_第2页
第2页 / 共13页
CADVBA]计算板材重量_第3页
第3页 / 共13页
CADVBA]计算板材重量_第4页
第4页 / 共13页
CADVBA]计算板材重量_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《CADVBA]计算板材重量》由会员分享,可在线阅读,更多相关《CADVBA]计算板材重量(13页珍藏版)》请在金锄头文库上搜索。

1、原创-CAD/VBA计算板材重量Public Sub PlateKg() 计算板材重量+ Code By icy/忽又一天 + Email: + Q Q: 365052003 + Blog: Http:/ + On Error Resume Next Dim Pnt As Variant Dim strPnt As String Dim i As Integer, J As Integer Dim ObjArea As Double, tmpAreas() As Double, objlength As Double, tmplengths() As Double, PlateWeight

2、As Double Dim txtObj As AcadEntity Dim BoundaryObj As Variant Dim CurScale As Double CurScale = GetVariable(DIMSCALE) Dim PriCount As Long Dim ObjType As Integer ObjType = ThisDrawing.GetVariable(HPBOUND) Dim CurLayer As String Dim CurColor As String CurColor = ThisDrawing.GetVariable(CECOLOR) Dim A

3、reaLayer As AcadLayer Set AreaLayer = ThisDrawing.Layers.Add(Wee_Area) AreaLayer.color = 11 ThisDrawing.ActiveLayer = AreaLayer Dim CurSnapMode As Integer CurSnapMode = ThisDrawing.GetVariable(OSMODE) ThisDrawing.ObjectSnapMode = False ThisDrawing.SetVariable CECOLOR, BYLAYER Dim pThickness As Strin

4、g pThickness = ThisDrawing.Utility.GetString(0, vbCrLf & 输入板材厚度(mm):) If Err.Number 0 Then Err.Clear GoTo ErrorHandler End If If Val(pThickness) = 0 Then pThickness = 14 Else pThickness = Val(pThickness) End If Dim Mdensity As String Mdensity = ThisDrawing.Utility.GetString(0, vbCrLf & 输入材料密度(x103 k

5、g/m3):) If Err.Number 0 Then Err.Clear GoTo ErrorHandler End If If Val(Mdensity) = 0 Then Mdensity = 7.85 Else Mdensity = Val(Mdensity) End If Dim ifIsland As String ifIsland = ThisDrawing.Utility.GetString(0, vbCrLf & 是否除去内部孤岛 Yes/No:) If Err.Number 0 Then Err.Clear GoTo ErrorHandler End If If UCas

6、e(ifIsland) = NO Or UCase(ifIsland) = N Then ifIsland = 0 Else ifIsland = 1 End If Dim objName As String Dim objLayer As String Dim PreCount As Long, CurCount As Long Do While True ObjArea = 0 PlateWeight = 0 Pnt = ThisDrawing.Utility.GetPoint(, vbCrLf & 拾取对象内部一点:) If Err.Number 0 Then Err.Clear GoT

7、o ErrorHandler End If ReDim Preserve Pnt(0 To 2) As Double strPnt = Pnt(0) & , & Pnt(1) With ThisDrawing PreCount = ModelSpace.Count ThisDrawing.SetVariable HPBOUND, 0 SendCommand Chr(3) & Chr(3) & -boundary & strPnt & & If PreCount = ModelSpace.Count Then ThisDrawing.SetVariable HPBOUND, 1 SendComm

8、and Chr(3) & Chr(3) & -boundary & strPnt & & End If CurCount = ModelSpace.Count Select Case CurCount - PreCount Case Is 1 ReDim tmpAreas(0 To CurCount - PreCount - 1) As Double ReDim tmplengths(0 To CurCount - PreCount - 1) As Double For i = 0 To CurCount - PreCount - 1 Set BoundaryObj = ModelSpace.

9、Item(PreCount + i) If (BoundaryObj.ObjectName = AcDbRegion) Or (BoundaryObj.ObjectName = AcDbPolyline) And (BoundaryObj.Layer = Wee_Area) Then tmpAreas(i) = BoundaryObj.Area tmplengths(i) = BoundaryObj.Perimeter MsgBox 周长 & i & : & tmplengths(i) End If Next NumSortAZ tmpAreas, 0, UBound(tmpAreas) Nu

10、mSortAZ tmplengths, 0, UBound(tmplengths) ObjArea = tmpAreas(UBound(tmpAreas) objlength = tmplengths(UBound(tmplengths) If CBool(ifIsland) Then For i = 0 To UBound(tmpAreas) - 1 ObjArea = ObjArea - tmpAreas(i) Next For i = 0 To UBound(tmplengths) - 1 objlength = objlength + tmplengths(i) Next End If Case Is 0 Then PlateWeight = ObjArea * CDbl(pThickness) * CDbl(Mdensity) / 1000000 Utility.Prompt vbCrLf & 有效面积: & Form

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号