|
Таблица выводов земли и питания ? |
|
|
|
 |
Ответов
(1 - 11)
|
Nov 7 2006, 12:33
|

Гуру
     
Группа: Модераторы
Сообщений: 4 361
Регистрация: 17-08-04
Из: КП Две Поляны
Пользователь №: 512

|
Цитата(Jul @ Oct 24 2006, 05:49)  Символы (УГО) и схема созданы в PowerLogic. При этом стандартные земля и питание определены как Signal Pins, и на схеме эти пины не появятся. А по ГОСТу их надо показать, например, в виде таблицы. Как это сделать ? (Можно просто нарисовать таблицу и вписать ручками, но слишком велика вероятность ошибок, хочется это получить от PowerLogic) В принципе можно написать макрос для этого. Но можно поступить и просто: -открыть файл нетлиста, в нем практически в самом начале расписана каждая цепь, например для схемы из примеров PREVIEW: *NET* *SIGNAL* GNDJ1.1 J1.2 R5.2 Q1.3 C8.2 C9.2 C2.2 C3.2 C4.2 C5.2 C6.2 C7.2 C1.2 C10.2 D2.K D1.K U1.14 U2.14 U4.8 U5.7 U7.10 U6.7 Y1.2 U3.8 *SIGNAL* +5VR1.2 J1.26 R2.2 Q1.2 C9.1 C2.1 C3.1 C4.1 C5.1 C6.1 C7.1 C1.1 R7.1 C10.1 U1.28 U2.28 U4.16 U5.14 U7.20 U6.14 Y1.4 U3.16 Т.е практически таблица с номерами компонентов и выводов подключенных к земле и питанию. Нужно только скопировать это в файл и форматировать, затем разместить в схему.
--------------------
Чем больше познаю, тем больше понимаю ... насколько мало я все таки знаю. www.megratec.ru
|
|
|
|
|
Nov 8 2006, 10:47
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 29-06-05
Пользователь №: 6 404

|
Jul,
Вот скрипт, который находит сигнальные пины, но может формат отчета не совсем тот:
Dim signal As String Sub Main report = DefaultFilePath & "\report.rep" Open report For Output As #1 Print #1, "Signal Pins for "; ActiveDocument; " on "; Date sep = Chr(9) item = 1 For Each comp In ActiveDocument.Components For Each Pin In comp.Pins signal = SigName(Pin) If signal <> "" Then Print #1, item; Print #1, sep; Pin.Name; Print #1, sep; comp.PartType; Print #1, sep; signal; Print #1 item = item + 1 End If Next Next Close #1 Shell "notepad " & report, 1 End Sub
Function SigName (pin As Object) As String Dim Gate As Object Dim Net As Object Dim Name As String Name = "" If Pin.Gate Is Nothing Then If Pin.Net Is Nothing Then Name = "" Else Name = Pin.Net.Name End If End If SigName = Name End Function
|
|
|
|
|
Nov 10 2006, 10:16
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 27-12-04
Пользователь №: 1 692

|
Jul попробуй вот этот скрипт.
'This script add SignalPins tab. 'It will create reports in Text format. 'For better look, turn off 'Word Wrap' item in the Edit menu of Notepad and use Courier or any other fixed width font.
'Arrays of column name and widths. You can modify them to rename, shrink, or expand columns Const Columns = Array("Поз.", "Вывод", "Цепь") Const Widths = Array( 8, 6, 6, 22)
Sub Main fname = ActiveDocument If fname = "" Then fname = "Untitled" End If report = DefaultFilePath & "\" & "Part Report1.rep" Open report For Output As #1 'Output report header Print #1, "Part Report for "; fname Print #1
StatusBarText = "Generating report..." 'Output table header CurCol = 0 For i = 0 to UBound(Columns) OutCell Columns(i) Next Print #1 'Output table rows For Each part in ActiveDocument.Components CurCol = 0 If GetSignalPins(part).Count = 0 Then GoTo LL For Each aPin In GetSignalPins(part) CurCol = 1 OutCell2 part.Name OutCell1 aPin.Number OutCell3 ObjName(aPin.Net) Print #1 Next aPin Print #1 Print #1 LL: Next part Print #1
StatusBarText = "" Close #1 'Do not forget quotes for file name! Shell "Notepad " & Chr(34) & report & Chr(34), 1 End Sub
'Returns collection of signal pins in the given part Function GetSignalPins(obj As Object, Optional Sorted As Boolean = False) Set GetSignalPins = ActiveDocument.GetObjects(0) For Each aPin In obj.Pins If aPin.Gate Is Nothing And Not aPin.Net Is Nothing Then GetSignalPins.Add aPin End If Next If Sorted Then GetSignalPins.Sort End Function
'Pins are not sorted by default (performance issue), so sort them explicitly in report Function GetSortedPins(obj As Object) Set GetSortedPins = obj.Pins GetSortedPins.Sort End Function
Function ObjName (obj As Object) ObjName = IIf(obj Is Nothing, "", obj) End Function
Dim CurCol As Integer 'Current column index staring from 0
Sub OutCell (txt As String) w = Widths(CurCol) txt = Left(txt, w) Print #1, txt; Space(w - Len(txt)); " | "; CurCol = CurCol + 1 End Sub Sub OutCell1 (txt As String) w = Widths(CurCol) txt = Left(txt, w) Print #1, txt; Space(w - Len(txt)); "= "; CurCol = CurCol + 1 End Sub Sub OutCell2 (txt As String) w = Widths(CurCol) txt = Left(txt, w) Print #1, txt; Space(w - Len(txt)); "( "; CurCol = CurCol + 1 End Sub Sub OutCell3 (txt As String) w = Widths(CurCol) txt = Left(txt, w) Print #1, txt; Space(w - Len(txt)); " ) "; CurCol = CurCol + 1 End Sub
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|