📄 draw.cls
字号:
HatchObj.PatternScale = 0.1
For p = 0 To 2: CPoint1(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint2(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint3(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint4(p) = CenterPoint1(p): Next p
CPoint1(1) = CPoint1(1) + Design.PipDiameter / 20 + 5
CPoint2(1) = CPoint2(1) - Design.PipDiameter / 20 - 5
CPoint3(0) = CPoint3(0) - Design.PipDiameter / 20 - 5
CPoint4(0) = CPoint4(0) + Design.PipDiameter / 20 + 5
Set lineobj = MoSpace.AddLine(CPoint1, CPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Set lineobj = MoSpace.AddLine(CPoint3, CPoint4)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Case 1
If j Mod 2 = 0 Then
Set CircleObj1 = MoSpace.AddCircle(CenterPoint1, Design.PipDiameter / 20)
Set CircleObj2 = MoSpace.AddCircle(CenterPoint1, Design.PipInDiameter / 20)
Set HatchObj = MoSpace.AddHatch(0, "ANSI31", True)
Set OuterC(0) = CircleObj1: Set InnerC(0) = CircleObj2
HatchObj.AppendOuterLoop OuterC
HatchObj.AppendInnerLoop InnerC
HatchObj.PatternScale = 0.1
For p = 0 To 2: CPoint1(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint2(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint3(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint4(p) = CenterPoint1(p): Next p
CPoint1(1) = CPoint1(1) + Design.PipDiameter / 20 + 5
CPoint2(1) = CPoint2(1) - Design.PipDiameter / 20 - 5
CPoint3(0) = CPoint3(0) - Design.PipDiameter / 20 - 5
CPoint4(0) = CPoint4(0) + Design.PipDiameter / 20 + 5
Set lineobj = MoSpace.AddLine(CPoint1, CPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Set lineobj = MoSpace.AddLine(CPoint3, CPoint4)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
YesNoFlag = False
Else
YesNoFlag = True
End If
End Select
For p = 0 To 2: CPoint1(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint2(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint3(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint4(p) = CenterPoint1(p): Next p
CPoint1(1) = CPoint1(1) + Design.PipDiameter / 20 + 5
CPoint2(1) = CPoint2(1) - Design.PipDiameter / 20 - 5
CPoint3(0) = CPoint3(0) - Design.PipDiameter / 20 - 5
CPoint4(0) = CPoint4(0) + Design.PipDiameter / 20 + 5
Set lineobj = MoSpace.AddLine(CPoint1, CPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Set lineobj = MoSpace.AddLine(CPoint3, CPoint4)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
k = 0
For i = 1 To Design.ColNum - 1
CenterPoint1(1) = CenterPoint1(1) - Design.VeriticalBetweenPipeDistance / 10
Select Case IndexArrange
Case 0
Set CircleObj1 = MoSpace.AddCircle(CenterPoint1, Design.PipDiameter / 20)
Set CircleObj2 = MoSpace.AddCircle(CenterPoint1, Design.PipInDiameter / 20)
Set HatchObj = MoSpace.AddHatch(0, "ANSI31", True)
Set OuterC(0) = CircleObj1: Set InnerC(0) = CircleObj2
HatchObj.AppendOuterLoop OuterC
HatchObj.AppendInnerLoop InnerC
HatchObj.PatternScale = 0.1
For p = 0 To 2: CPoint1(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint2(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint3(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint4(p) = CenterPoint1(p): Next p
CPoint1(1) = CPoint1(1) + Design.PipDiameter / 20 + 5
CPoint2(1) = CPoint2(1) - Design.PipDiameter / 20 - 5
CPoint3(0) = CPoint3(0) - Design.PipDiameter / 20 - 5
CPoint4(0) = CPoint4(0) + Design.PipDiameter / 20 + 5
Set lineobj = MoSpace.AddLine(CPoint1, CPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Set lineobj = MoSpace.AddLine(CPoint3, CPoint4)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Case 1
If YesNoFlag Then
If k Mod 2 = 0 Then
Set CircleObj1 = MoSpace.AddCircle(CenterPoint1, Design.PipDiameter / 20)
Set CircleObj2 = MoSpace.AddCircle(CenterPoint1, Design.PipInDiameter / 20)
Set HatchObj = MoSpace.AddHatch(0, "ANSI31", True)
Set OuterC(0) = CircleObj1: Set InnerC(0) = CircleObj2
HatchObj.AppendOuterLoop OuterC
HatchObj.AppendInnerLoop InnerC
HatchObj.PatternScale = 0.1
For p = 0 To 2: CPoint1(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint2(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint3(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint4(p) = CenterPoint1(p): Next p
CPoint1(1) = CPoint1(1) + Design.PipDiameter / 20 + 5
CPoint2(1) = CPoint2(1) - Design.PipDiameter / 20 - 5
CPoint3(0) = CPoint3(0) - Design.PipDiameter / 20 - 5
CPoint4(0) = CPoint4(0) + Design.PipDiameter / 20 + 5
Set lineobj = MoSpace.AddLine(CPoint1, CPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Set lineobj = MoSpace.AddLine(CPoint3, CPoint4)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
End If
Else
If k Mod 2 <> 0 Then
Set CircleObj1 = MoSpace.AddCircle(CenterPoint1, Design.PipDiameter / 20)
Set CircleObj2 = MoSpace.AddCircle(CenterPoint1, Design.PipInDiameter / 20)
Set HatchObj = MoSpace.AddHatch(0, "ANSI31", True)
Set OuterC(0) = CircleObj1: Set InnerC(0) = CircleObj2
HatchObj.AppendOuterLoop OuterC
HatchObj.AppendInnerLoop InnerC
HatchObj.PatternScale = 0.1
For p = 0 To 2: CPoint1(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint2(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint3(p) = CenterPoint1(p): Next p
For p = 0 To 2: CPoint4(p) = CenterPoint1(p): Next p
CPoint1(1) = CPoint1(1) + Design.PipDiameter / 20 + 5
CPoint2(1) = CPoint2(1) - Design.PipDiameter / 20 - 5
CPoint3(0) = CPoint3(0) - Design.PipDiameter / 20 - 5
CPoint4(0) = CPoint4(0) + Design.PipDiameter / 20 + 5
Set lineobj = MoSpace.AddLine(CPoint1, CPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Set lineobj = MoSpace.AddLine(CPoint3, CPoint4)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
End If
End If
End Select
k = k + 1
Next i
If j <> 2 * Design.PipeNum Then _
CenterPoint1(0) = CenterPoint1(0) + Design.HorizonBetweenPipeDistance / 10
Next j
If m Mod 2 = 0 Then
CenterPoint1(0) = CenterPoint1(0) + Design.DistanceBetweenRoute1 / 10 + Design.PipDiameter / 10 - Design.HorizonBetweenPipeDistance / 10
Else
CenterPoint1(0) = CenterPoint1(0) + Design.DistanceBetweenRoute2 / 10 + Design.PipDiameter / 10 - Design.HorizonBetweenPipeDistance / 10
End If
Next m
End Sub
Private Sub LeftView(Endpoint1() As Double, _
Endpoint2() As Double)
Dim Point1(0 To 2) As Double, Point2(0 To 2) As Double
Dim HPoint1(0 To 2) As Double, HPoint2(0 To 2) As Double
Dim HPoint3(0 To 2) As Double, HPoint4(0 To 2) As Double
Dim CPoint1(0 To 2) As Double, CPoint2(0 To 2) As Double
Dim CPoint3(0 To 2) As Double, CPoint4(0 To 2) As Double
Dim BeginPoint5(0 To 2) As Double, BeginPoint6(0 To 2) As Double
Dim EndPoint5(0 To 2) As Double, EndPoint6(0 To 2) As Double
Dim CenterPoint1(0 To 2) As Double, CenterPoint2(0 To 2) As Double
Dim i As Integer, j As Integer
Dim lineobj As Object
For i = 0 To 2: BeginPoint5(i) = Endpoint1(i): Next i
For i = 0 To 2: EndPoint5(i) = Endpoint1(i): Next i
For i = 0 To 2: BeginPoint6(i) = Endpoint2(i): Next i
For i = 0 To 2: EndPoint6(i) = Endpoint2(i): Next i
BeginPoint5(0) = 559 - 75
BeginPoint6(0) = 559 - 75
For i = 0 To 2: Point1(i) = BeginPoint6(i): Next i
For i = 0 To 2: Point2(i) = BeginPoint6(i): Next i
Point2(1) = Point2(1) + Design.PipLen / 100
For i = 0 To 2: CPoint1(i) = Point1(i): Next i
For i = 0 To 2: CPoint2(i) = Point2(i): Next i
For i = 0 To 2: HPoint1(i) = Point1(i): Next i
For i = 0 To 2: HPoint2(i) = Point2(i): Next i
For i = 0 To 2: CenterPoint1(i) = Point1(i): Next i
For i = 0 To 2: CenterPoint2(i) = Point2(i): Next i
CenterPoint1(1) = CenterPoint1(1) - 5
CenterPoint2(1) = CenterPoint2(1) + 5
HPoint1(1) = HPoint1(1) + 5: HPoint2(1) = HPoint2(1) - 5
For i = 0 To 2: HPoint3(i) = HPoint1(i): Next i
For i = 0 To 2: HPoint4(i) = HPoint2(i): Next i
Set lineobj = MoSpace.AddLine(Point1, Point2)
For i = 0 To 2 * Design.ColNum - 2
If i Mod 2 = 0 Then
CenterPoint1(0) = Point1(0) + Design.PipDiameter / 20
CenterPoint2(0) = Point2(0) + Design.PipDiameter / 20
Set lineobj = MoSpace.AddLine(CenterPoint1, CenterPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Point1(0) = Point1(0) + Design.PipDiameter / 10
Point2(0) = Point2(0) + Design.PipDiameter / 10
For j = 0 To 2: CPoint3(j) = Point1(j): Next j
For j = 0 To 2: CPoint4(j) = Point2(j): Next j
HPoint3(0) = Point1(0): HPoint4(0) = Point2(0)
Set lineobj = MoSpace.AddLine(Point1, Point2)
Else
CenterPoint1(0) = Point1(0) + Design.VeriticalBetweenPipeDistance / 20 - Design.PipDiameter / 20
CenterPoint2(0) = Point2(0) + Design.VeriticalBetweenPipeDistance / 20 - Design.PipDiameter / 20
Set lineobj = MoSpace.AddLine(CenterPoint1, CenterPoint2)
lineobj.Linetype = "Center"
lineobj.LinetypeScale = 5
lineobj.Update
Point1(0) = Point1(0) + Design.VeriticalBetweenPipeDistance / 10 - Design.PipDiameter / 10
Point2(0) = Point2(0) + Design.VeriticalBetweenPipeDistance / 10 - Design.PipDiameter / 10
Set lineobj = MoSpace.AddLine(Point1, Point2)
End If
EndPoint5(0) = Point1(0): EndPoint6(0) = Point2(0)
Next i
BeginPoint5(1) = BeginPoint5(1) - 5
EndPoint5(1) = EndPoint5(1) - 5
BeginPoint6(1) = BeginPoint6(1) + 5
EndPoint6(1) = EndPoint6(1) + 5
Set lineobj = MoSpace.AddLine(BeginPoint5, EndPoint5)
Set lineobj = MoSpace.AddLine(BeginPoint6, EndPoint6)
End Sub
Public Sub Draw(m_RecordSetup() As Integer, _
m_RecordCompute() As Double, _
m_RecordDraw() As Double)
Dim Beginpoint1(0 To 2) As Double, Beginpoint2(0 To 2) As Double
Dim Endpoint1(0 To 2) As Double, Endpoint2(0 To 2) As Double
Dim BlockRefObj As AcadBlockReference
Dim InsertionTitle(0 To 2) As Double, InsertionDeTable(0 To 2) As Double
LoadDrawData m_RecordSetup, m_RecordCompute, m_RecordDraw
If Not Setup() Then Exit Sub
DrawInit
MainView Beginpoint1, Beginpoint2, Endpoint1, Endpoint2
OverView Beginpoint2, Endpoint2, m_RecordSetup(0)
LeftView Endpoint1, Endpoint2
InsertionTitle(0) = 549: InsertionTitle(1) = 10: InsertionTitle(2) = 0
InsertionDeTable(0) = 549: InsertionDeTable(1) = 35.2: InsertionDeTable(2) = 0
Set BlockRefObj = MoSpace.InsertBlock(InsertionTitle, App.Path + Title, 1#, 1#, 0)
Set BlockRefObj = MoSpace.InsertBlock(InsertionDeTable, App.Path + DeTable, 1#, 1#, 0)
Pvport.ZoomAll
Acaddoc.SaveAs App.Path + ExhCADDwg
Unsetup
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -