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

📄 wirelist.bas

📁 ORCAD 绿色版
💻 BAS
字号:
Attribute VB_Name = "Module1"
Option Explicit
Global OptionSortNets As Boolean
Global OptionP As Boolean

Sub Initialize()
    Dim Workstring As String * 255
    Dim result As Long
    Call WriteString(0, "Initializing")
    
    WriteCrLf (0)

    Call SetPinMap(0, "Input          ")
    Call SetPinMap(1, "BiDirectional  ")
    Call SetPinMap(2, "Output         ")
    Call SetPinMap(3, "Open Collector ")
    Call SetPinMap(4, "Passive        ")
    Call SetPinMap(5, "Hi-Z           ")
    Call SetPinMap(6, "Open Emitter   ")
    Call SetPinMap(7, "Power          ")

    SetCharSet ("0123456789")
    SetNumberWidth (5)

    Call WriteString(1, "Wire List")
    WriteCrLf (1)
    WriteCrLf (1)

    Call CopySymbol(TitleString, Workstring)
    result = PadSpaces(Workstring, 46)
    Call WriteString(1, Workstring)
    Call WriteString(1, "Revised: ")
    Call WriteSymbol(1, DateString)
    WriteCrLf (1)
    Call CopySymbol(DocumentNumber, Workstring)
    result = PadSpaces(Workstring, 46)
    Call WriteString(1, Workstring)
    Call WriteString(1, "Revision: ")
    Call WriteSymbol(1, Revision)
    WriteCrLf (1)
    Call WriteSymbol(1, Organization)
    WriteCrLf (1)
    Call WriteSymbol(1, AddressLine1)
    WriteCrLf (1)
    Call WriteSymbol(1, AddressLine2)
    WriteCrLf (1)
    Call WriteSymbol(1, AddressLine3)
    WriteCrLf (1)
    Call WriteSymbol(1, AddressLine4)
    WriteCrLf (1)
    WriteCrLf (1)

Rem     sw_L = 1
Rem     sw_P = SwitchIsSet("P")
Rem     sw_N = SwitchIsSet("N")
    If OptionSortNets = True Then
       SortNets
    End If
  

End Sub
Sub WriteHeader()

    Dim PartNameStr As String
    Dim ReferenceStr As String
    Dim ModuleNameStr As String
    Dim result As Long
    Dim nlen As Long
    
    PartNameStr = String(255, vbNullChar)
    ReferenceStr = String(255, vbNullChar)
    ModuleNameStr = String(255, vbNullChar)
    
    Call WriteString(1, "<<< Component List >>>")
    WriteCrLf (1)

    While (LoadInstance())
        Call CopySymbol(PartName, PartNameStr)
        result = PadSpaces(PartNameStr, 29)
        nlen = CLen(PartNameStr)
        If nlen > 29 Then
            Call WriteString(0, "WARNING: Name is too long '")
            Call WriteSymbol(0, PartName)
            Call WriteString(0, "', truncated to ")
            Call WriteString(0, PartNameStr)
            WriteCrLf (0)

            Call SetSymbol(ExitType, "W")
            
        End If
        Call WriteString(1, PartNameStr)
        Call WriteString(1, " ")

        Call CopySymbol(ReferenceString, ReferenceStr)
        result = PadSpaces(ReferenceStr, 9)
        nlen = CLen(ReferenceStr)
        If nlen > 9 Then
            Call WriteString(0, "WARNING: Reference is too long '")
            Call WriteSymbol(0, ReferenceString)
            Call WriteString(0, "', truncated to ")
            Call WriteString(0, ReferenceStr)
            WriteCrLf (0)

            Call SetSymbol(ExitType, "W")
            
        End If
        
        Call WriteString(1, ReferenceStr)
        Call WriteString(1, " ")

        
        Call CopySymbol(ModuleName, ModuleNameStr)
        nlen = CLen(ModuleNameStr)
        If nlen > 0 Then
            Call WriteString(1, ModuleNameStr)
        Else
            Call WriteString(1, PartNameStr)
        End If
        WriteCrLf (1)
    Wend

    WriteCrLf (1)
    Call WriteString(1, "<<< Wire List >>>")
    WriteCrLf (1)
    WriteCrLf (1)
    Call WriteString(1, "  NODE  REFERENCE    PIN #   PIN NAME  ")
    Call WriteString(1, "         PIN TYPE       PART VALUE")
    WriteCrLf (1)
    WriteCrLf (1)

End Sub

Sub HandleNodeName()

    Dim I As Long
    Dim result As Long

    Call WriteString(1, "[")
    Call WriteSymbol(1, NetNumber)
    Call WriteString(1, "] ")

    I = GetStandardSymbol(TypeCode)
    If I = Asc("L") Then
        Rem SetNumberWidth (1)
        Call WriteSymbol(1, SignalNameString)
        Rem /*
        Rem ** Not needed for Capture. All local labels are already uniquely named.
        Rem **
        Rem ** WriteString(1, " (")
        Rem ** if (sw_A == 0) {
        Rem **     WriteString(1, "local to sheet ")
        Rem ** }
        Rem ** WriteSymbol(1, SheetNumber)
        Rem ** WriteString(1, ")")
        Rem */

        SetNumberWidth (5)
    End If
    If I = Asc("P") Then
        Call WriteSymbol(1, SignalNameString)
    ElseIf I = Asc("S") Then
        Call WriteSymbol(1, SignalNameString)
    ElseIf I = Asc("N") Then
        Call WriteString(1, "X")
        Call WriteSymbol(1, NetNumber)
    ElseIf I = Asc("U") Then
        Call WriteString(1, "X")
        Call WriteSymbol(1, NetNumber)
    End If
    WriteCrLf (1)
End Sub

Sub WriteNet()

    Dim I As Long
    Dim result As Long
    Dim ReferenceStr As String * 255
    Dim PinNumberStr As String * 255
    Dim PinNameStr As String * 255
    Dim nlen As Long
    Rem Dim sw_p As Long

    Rem sw_p = 0
    Call WriteString(1, "        ")

    Call CopySymbol(ReferenceString, ReferenceStr)
    result = PadSpaces(ReferenceStr, 9)
    Call WriteString(1, ReferenceStr)
    Call WriteString(1, "       ")

    Rem  don't check for legal characters unless /P is set
    Call CopySymbol(PinNumberString, PinNumberStr)
    Rem If sw_p = 1 Then
    If OptionP = True Then
        I = SymbolInCharSet(PinNumberStr)
    Else
         I = 1
    End If

    If I = 0 Then
        Call WriteString(1, "        ")
    Else
        result = PadSpaces(PinNumberStr, 7)
        nlen = SymbolLength(PinNumberString)
        If nlen > 7 Then
            Call WriteString(0, "WARNING: Name is too long '")
            Call WriteSymbol(0, PinNumberString)
            Call WriteString(0, "', truncated to ")
            Call WriteString(0, PinNumberStr)
            WriteCrLf (0)
    
            Call SetSymbol(ExitType, "W")
            
        End If
        Call WriteString(1, PinNumberStr)
        Call WriteString(1, " ")
    End If
        


    Call CopySymbol(PinNameString, PinNameStr)
    result = PadSpaces(PinNameStr, 15)
    nlen = SymbolLength(PinNameString)
    If nlen > 15 Then
        Call WriteString(0, "WARNING: Name is too long '")
        Call WriteSymbol(0, PinNameString)
        Call WriteString(0, "', truncated to ")
        Call WriteString(0, PinNameStr)
        WriteCrLf (0)

        Call SetSymbol(ExitType, "W")
        
    End If
    Call WriteString(1, PinNameStr)
    Call WriteString(1, " ")

    I = GetStandardSymbol(PinType)
    result = WriteMap(1, I)

    Call WriteSymbol(1, PartName)
    WriteCrLf (1)
End Sub


Sub WriteNetEnding()
   WriteCrLf (1)
End Sub

Sub WriteNetListEnd()
    Dim result As Long
    Call WriteString(0, "Done")
    WriteCrLf (0)
End Sub

⌨️ 快捷键说明

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