⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 水泥混凝土路面结构设计.frm

📁 vb 写的路面结构绘制程序,直接驱动CAD进行绘制.
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      Height          =   255
      Left            =   240
      TabIndex        =   9
      Top             =   2040
      Width           =   1215
   End
   Begin VB.Label Label5 
      Caption         =   "路肩宽"
      Height          =   255
      Left            =   5400
      TabIndex        =   8
      Top             =   1440
      Width           =   1215
   End
   Begin VB.Label Label4 
      Caption         =   "道宽"
      Height          =   255
      Left            =   240
      TabIndex        =   7
      Top             =   1440
      Width           =   1215
   End
   Begin VB.Label Label3 
      Caption         =   "比例尺"
      Height          =   255
      Left            =   5400
      TabIndex        =   6
      Top             =   840
      Width           =   1215
   End
   Begin VB.Label Label1 
      Caption         =   "设计图名"
      Height          =   255
      Left            =   240
      TabIndex        =   5
      Top             =   840
      Width           =   1215
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'--------------------------
'Option Explicit
' 在运行程序之前,选择“Project/References”菜单,引用“AutoCAD 2002 Type Library”

Dim AcadApp As AcadApplication '在窗体代码声明段定义AcadApp
Dim AcadDoc As AcadDocument     ' 文档对象作为窗体的全局对象
Dim connConnection As ADODB.Connection
Dim rsRecordset As ADODB.Recordset
Dim mblnAddMode As Boolean
Dim Layer() As Single


Private Sub Combo1_Change()
'    Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\me\db1.mdb;Persist Security Info=False"
'    Adodc2.RecordSource = "select * from basic"
'    Adodc2.Refresh
'    Combo1.Text = Adodc2.Recordset.Fields("SJTM").Value
'    Text1.Text = Adodc2.Recordset.Fields("BLC").Value
End Sub

'建立新文件
Private Sub Command1_Click()

On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application.17")
If Err Then
    Err.Clear
    Set AcadApp = CreateObject("AutoCAD.Application.17")
    If Err Then
      MsgBox ("不能运行AutoCAD2007,请检查是否安装了AutoCAD2007")
      Exit Sub
    End If
End If
AcadApp.Visible = True
AcadApp.WindowState = acMax
    AcadApp.Documents.Add
End Sub

Private Sub Command2_Click()
  Dim MyfileName As String
  MyfileName = "C:\Documents and Settings\Administrator\桌面\城市道路路面结构图.dwg"
  If Dir(MyfileName) <> "" Then
       AcadApp.Documents.Open MyfileName
  Else
       MsgBox ("文件" + MyfileName + "不存在")
  End If
End Sub

'保存当前文件
Private Sub Command3_Click()
'  If Not AcadApp.ActiveDocument.Saved Then
'    If MsgBox("是否保存文件?", vbYesNo) = vbYes Then
'        AcadApp.ActiveDocument.Save
'    End If
'  Else
'    MsgBox ("保存过")
'  End If
  AcadApp.ActiveDocument.Save
End Sub

'退出CAD
Private Sub Command4_Click()
    AcadApp.Quit
    Set AcadApp = Nothing
End Sub

'生成图形
Private Sub Command5_Click()
    '画最上面线
    Dim lineobj11 As AcadLine
    Dim lineobj12 As AcadLine
    Dim lineobj13 As AcadLine
    Dim lineobj14 As AcadLine
    Dim Point11(0 To 2) As Double
    Dim Point12(0 To 2) As Double
    Dim Point13(0 To 2) As Double
    Dim Point14(0 To 2) As Double
    Dim Point15(0 To 2) As Double
    Dim X0 As Double
    Dim Y0 As Double
    Dim dk As Double
    Dim ljk As Double
    Dim cdpd As Double
    Dim ljpd As Double
    dk = Me.Text3.Text
    ljk = Me.Text4.Text
    cdpd = Me.Text6.Text
    ljpd = Me.Text7.Text
    X0 = 10000: Y0 = 10000
    Point11(0) = X0 - 1000 * ljk: Point11(1) = Y0 - 1000 * ljk * ljpd / 100: Point11(2) = 0#
    Point12(0) = X0: Point12(1) = Y0: Point12(2) = 0#
    Point13(0) = X0 + 1000 * dk: Point13(1) = Y0 + 1000 * dk * cdpd / 100: Point13(2) = 0#
    Point14(0) = X0 + 2 * 1000 * dk: Point14(1) = Y0: Point14(2) = 0#
    Point15(0) = X0 + 2 * 1000 * dk + 1000 * ljk: Point15(1) = Y0 - 1000 * ljk * ljpd / 100: Point15(2) = 0#
    Set lineobj11 = AcadApp.ActiveDocument.ModelSpace.AddLine(Point11, Point12)
    Set lineobj12 = AcadApp.ActiveDocument.ModelSpace.AddLine(Point12, Point13)
    Set lineobj13 = AcadApp.ActiveDocument.ModelSpace.AddLine(Point13, Point14)
    Set lineobj14 = AcadApp.ActiveDocument.ModelSpace.AddLine(Point14, Point15)
    
    '画下面线(利用循环)
    
    Dim proname As String
    
    

'    ' 画下面线
'    Dim lineobj11 As AcadLine
'    Dim lineobj12 As AcadLine
'    Dim startPoint1(0 To 2) As Double
'    Dim midPoint1(0 To 2) As Double
'    Dim endPoint1(0 To 2) As Double
'    Dim n As Double 'n为路幅的一半
'    Dim i As Double 'i为坡度
'    Dim X0 As Double
'    Dim Y0 As Double
'    Dim X1 As Double
'    Dim Y1 As Double
'    Dim X2 As Double
'    Dim Y2 As Double
'    n = Me.Text1.Text
'    i = Me.Text4.Text
'    X0 = 50
'    Y0 = 50
'    X1 = X0 + n
'    Y1 = Y0 + n * i / 100
'    X2 = X1 + n
'    Y2 = Y0
'    '定义直线的起点与终点的三维坐标
'    startPoint1(0) = X0#: startPoint1(1) = Y0#: startPoint1(2) = 0#
'    midPoint1(0) = X1#: midPoint1(1) = Y1#: midPoint1(2) = 0#
'    endPoint1(0) = X2#: endPoint1(1) = Y2#: endPoint1(2) = 0#
'    '创建Line直线
'    Set lineobj11 = AcadApp.ActiveDocument.ModelSpace.AddLine(startPoint1, midPoint1)
'    Set lineobj12 = AcadApp.ActiveDocument.ModelSpace.AddLine(midPoint1, endPoint1)
'
'     ' 画中间线
'    Dim lineobj21 As AcadLine
'    Dim lineobj22 As AcadLine
'    Dim startPoint2(0 To 2) As Double
'    Dim midPoint2(0 To 2) As Double
'    Dim endPoint2(0 To 2) As Double
'    Dim N1 As Double
'    Dim X20 As Double
'    Dim Y20 As Double
'    Dim X21 As Double
'    Dim Y21 As Double
'    Dim X22 As Double
'    Dim Y22 As Double
'    N1 = Me.Text2.Text
'    X20 = X0
'    Y20 = Y0 + N1
'    X21 = X1
'    Y21 = Y1 + N1
'    X22 = X2
'    Y22 = Y2 + N1
'    '定义直线的起点与终点的三维坐标
'    startPoint2(0) = X20#: startPoint2(1) = Y20#: startPoint2(2) = 0#
'    midPoint2(0) = X21#: midPoint2(1) = Y21#: midPoint2(2) = 0#
'    endPoint2(0) = X22#: endPoint2(1) = Y22#: endPoint2(2) = 0#
'    '创建Line直线
'    Set lineobj21 = AcadApp.ActiveDocument.ModelSpace.AddLine(startPoint2, midPoint2)
'    Set lineobj22 = AcadApp.ActiveDocument.ModelSpace.AddLine(midPoint2, endPoint2)
'
'     ' 画上面线
'    Dim lineobj31 As AcadLine
'    Dim lineobj32 As AcadLine
'    Dim startPoint3(0 To 2) As Double
'    Dim midPoint3(0 To 2) As Double
'    Dim endPoint3(0 To 2) As Double
'    Dim N2 As Double
'    Dim X30 As Double
'    Dim Y30 As Double
'    Dim X31 As Double
'    Dim Y31 As Double
'    Dim X32 As Double
'    Dim Y32 As Double
'    N2 = Me.Text3.Text
'    X30 = X20
'    Y30 = Y20 + N2
'    X31 = X21
'    Y31 = Y21 + N2
'    X32 = X22
'    Y32 = Y22 + N2
'    '定义直线的起点与终点的三维坐标
'    startPoint3(0) = X30#: startPoint3(1) = Y30#: startPoint3(2) = 0#
'    midPoint3(0) = X31#: midPoint3(1) = Y31#: midPoint3(2) = 0#
'    endPoint3(0) = X32#: endPoint3(1) = Y32#: endPoint3(2) = 0#
'    '创建Line直线
'    Set lineobj31 = AcadApp.ActiveDocument.ModelSpace.AddLine(startPoint3, midPoint3)
'    Set lineobj32 = AcadApp.ActiveDocument.ModelSpace.AddLine(midPoint3, endPoint3)
'
'
    
'    '创建两边的竖线
'    Dim lineobjl1 As AcadLine
'    Dim lineobjl2 As AcadLine
'    Dim lineobjr1 As AcadLine
'    Dim lineobjr2 As AcadLine
'    Set lineobjl1 = AcadApp.ActiveDocument.ModelSpace.AddLine(startPoint1, startPoint2)
'    Set lineobjl2 = AcadApp.ActiveDocument.ModelSpace.AddLine(startPoint2, startPoint3)
'    Set lineobjr1 = AcadApp.ActiveDocument.ModelSpace.AddLine(endPoint1, endPoint2)
'    Set lineobjr2 = AcadApp.ActiveDocument.ModelSpace.AddLine(endPoint2, endPoint3)
    
    
    
'    '填充
'    Dim hatchObj As AcadHatch
'    Dim patternName As String
'    Dim PatternType As Long
'    Dim bAssociativity As Boolean
'
'    PatternType = 0
'    patternName = "ANSI31"
'    bAssociativity = True
'
'    Set hatchObj = AcadApp.ActiveDocument.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)
'
'    Dim outerLoop(0 To 0) As AcadEntity
'
'    Dim plineObj As AcadLWPolyline
'    Dim points(0 To 11) As Double
'
'    points(0) = X0: points(1) = Y0
'    points(2) = X1: points(3) = Y1
'    points(4) = X2: points(5) = Y2
'    points(6) = X22: points(7) = Y22
'    points(8) = X21: points(9) = Y21
'    points(10) = X20: points(11) = Y20
'
'    Set plineObj = AcadApp.ActiveDocument.ModelSpace.AddLightWeightPolyline(points)
'    plineObj.Closed = True
'    Set outerLoop(0) = plineObj
'
'    hatchObj.AppendOuterLoop (outerLoop)
'    hatchObj.Evaluate
'    outerLoop(0).Delete
'
'    '添加文字
'    Dim StyObj1 As AcadTextStyle
'    Dim typeFace As String
'    Dim Bold As Boolean
'    Dim Italic As Boolean
'    Dim charSet As Long
'    Dim PitchandFamily As Long
'    Set StyObj1 = AcadApp.ActiveDocument.TextStyles.Add _
'                 ("自己设置文本样式1")
'    typeFace = "宋体"
'    Italic = True
'    Bold = True
'    charSet = 1
'    PitchandFamily = 1 Or 16
'    StyObj1.SetFont typeFace, Bold, Italic, charSet, PitchandFamily
'
'    Dim StyObj2 As AcadTextStyle
'    Set StyObj2 = AcadApp.ActiveDocument.TextStyles.Add _
'                  ("自己设置文本样式2")
'    StyObj2.fontFile = "C:\WINDOWS\Fonts\stcaiyun.ttf"
'
'    Dim textObj As AcadText
'    Dim textString As String
'    Dim insertionPoint(0 To 2) As Double
'    Dim height As Double
'    textString = "AutoCAD二次开发."
'    height = 0.3
'    insertionPoint(0) = 18: insertionPoint(1) = 10: insertionPoint(2) = 0
'
'    AcadApp.ActiveDocument.ActiveTextStyle = StyObj1
'    Set textObj = AcadApp.ActiveDocument.ModelSpace.AddText _
'                 (textString, insertionPoint, height)
'    textObj.Update
'
'    insertionPoint(0) = 30: insertionPoint(1) = 10: insertionPoint(2) = 0
'    AcadApp.ActiveDocument.ActiveTextStyle = StyObj2
'    Set textObj = AcadApp.ActiveDocument.ModelSpace.AddText _
'                 (textString, insertionPoint, height)
'    textObj.Update
'
'    StyObj2.fontFile = "C:\WINDOWS\Fonts\stxingka.ttf"
'    insertionPoint(0) = 40: insertionPoint(1) = 10: insertionPoint(2) = 0
'    AcadApp.ActiveDocument.ActiveTextStyle = StyObj2
'    Set textObj = AcadApp.ActiveDocument.ModelSpace.AddText _
'                 (textString, insertionPoint, height)
'    textObj.Update
'
'    '尺寸标注
'    Dim dimObj As AcadDimAligned
'    Dim location(0 To 2) As Double
'    Dim xb As Double
'    Dim yb As Double
'    xb = (X2 - X0) / 2 + X0
'    yb = Y1 + n * 0.2
'    location(0) = xb: location(1) = yb: location(2) = 0#
'
'    Set dimObj = AcadApp.ActiveDocument.ModelSpace.AddDimAligned _
'                 (startPoint1, endPoint1, location)
    
    ZoomAll
End Sub
'保存数据库
Private Sub Command6_Click()
    On Error Resume Next
    Adodc2.Recordset.Fields("SJTM").Value = Combo1.Text
    
    Adodc2.Recordset.Update
    mblnAddMode = False
    Command7.Enabled = True
    Command6.Enabled = False
End Sub

Private Sub Command7_Click()
    Command7.Enabled = False
    Command6.Enabled = True
    Combo1.Text = ""
    Text1.Text = ""
    Text2.Text = ""
    Text3.Text = ""
    Text4.Text = ""
    Text5.Text = ""
    Text6.Text = ""
    Text7.Text = ""
    mblnAddMode = True
    Adodc2.Recordset.AddNew
    
End Sub

Private Sub Command8_Click()
        n = dkGrid1.Rows
        ReDim Layer(1 To n, 0 To 5) As Single
        j = 1
End Sub

Private Sub Command9_Click()
        dkGrid1.Rows = dkGrid1.Rows + 1
        Combo1.AddItem "工程" + Str$(Int(10 * Rnd(1)))
End Sub

Private Sub Form_Load()
    Dim strConnect As String
    Dim a As Integer
    Dim strProvider As String
    Dim strDataSource As String
    Dim strDataBaseName As String
    strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;"
    strDataSource = App.Path
    strDataBaseName = "\db1.mdb;"
    strDataSource = "Data Source=" & strDataSource & strDataBaseName
    strConnect = strProvider & strDataSource
    Set connConnection = New ADODB.Connection
    connConnection.CursorLocation = adUseClient
    connConnection.Open strConnect
    Set rsRecordset = New ADODB.Recordset
    rsRecordset.CursorType = adOpenStatic
    rsRecordset.CursorLocation = adUseClient
    rsRecordset.LockType = adLockPessimistic
    rsRecordset.Source = "SELECT * FROM layer"
    rsRecordset.ActiveConnection = connConnection
    rsRecordset.Open

    Adodc1.ConnectionString = strConnect
    Adodc1.RecordSource = "SELECT * FROM layer"
    Adodc1.Refresh
    DataGrid1.Refresh
    
    Adodc2.Refresh
    Combo1.Text = Adodc2.Recordset.Fields("SJTM").Value
    Text1.Text = Adodc2.Recordset.Fields("BLC").Value
    Text2.Text = Adodc2.Recordset.Fields("DK").Value
    Text3.Text = Adodc2.Recordset.Fields("LJK").Value
    Text4.Text = Adodc2.Recordset.Fields("CS").Value
    Text5.Text = Adodc2.Recordset.Fields("CDPD").Value
    Text6.Text = Adodc2.Recordset.Fields("LJPD").Value
    Text7.Text = Adodc2.Recordset.Fields("LJBPPJ").Value
    mblnAddMode = False
    
    For i = 1 To 10
      Call Command9_Click
    Next i
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -