728x90
반응형

pads에서 부품이 모듈 단위로 회로가 그려져 있으며 각 부품 위치와 부품 번호 증분 값이 동일 할때 자동으로 모듈 단위 배치를 해주는 스크립트 이다.

 

채굴기 관련 보드 설계에서 사용했다. 배치가 편하게 수정 된다.

배선은 모듈 4가지 모듈을 사용했는데 각각 1개씩만 배선후 복사 붙여 넣기로 쉽게 작업을 했다.

 

이거 찾고 만드는데 약 5일정도 소요 된듯 하다. 5일이면 그냥 artworks 끝났을텐데 다음버전이나 조금씩 위치 변경 등등 여러 가지 발생 상황을 가정했을때 꼭 만들어 놓아야 하겠다고 판단하여 만들어 놨다.

 

Dim doc As Document
Dim tgtName As String
Dim refName As String
Dim tgtComp As Component
Dim refComp As Component
Dim dx As Double
Dim dy As Double
Dim rotation As Double

Dim page_count As Double
Dim part_count As Double
Dim input_number As String
Dim r_input_number As String
Dim ic_input_number As String
Dim rd_input_number As String

Dim x_position As Double
Dim y_position As Double
Dim c_start_number As Double
Dim r_start_number As Double
Dim ic_start_number As Double
Dim rd_start_number As Double
Dim x_inc As Double
Dim y_inc As Double
Dim c_inc As Double
Dim r_inc As Double
Dim ic_inc As Double
Dim rd_inc As Double

Dim step_count As Double




Sub Main
x_position = -32
y_position = 0
x_inc = -32
y_inc = 0
c_start_number = 40
c_inc = 30
r_start_number = 15
r_inc = 4
ic_start_number = 3
ic_inc = 2
rd_start_number = 5
rd_inc = 4
step_count = 0
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))


x_position = -16
y_position = 0
x_inc = -32
y_inc = 0
c_start_number = 25
c_inc = 30
r_start_number = 13
r_inc = 4
ic_start_number = 2
ic_inc = 2
rd_start_number = 3
rd_inc = 4
step_count = 0
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
step_count = step_count + 1
Call move1(CStr(c_start_number+(c_inc * step_count)),CStr(r_start_number+(r_inc * step_count)),CStr(ic_start_number+(ic_inc * step_count)), CStr(rd_start_number+(rd_inc * step_count)),(x_position+(x_inc * step_count)),(y_position+(y_inc * step_count)))
'Call move("40","15","3","5",-32,0) //C, R, IC, RD, X OFFSET, Y OFFSET
'Call move("70","19","5","9",-64,0) //C, R, IC, RD, X OFFSET, Y OFFSET
'Call move("100","23","7","13",-96,0) //C, R, IC, RD, X OFFSET, Y OFFSET
'Call move("130","27","9","17",-128,0) //C, R, IC, RD, X OFFSET, Y OFFSET
'Call move("160","31","11","21",-160,0) //C, R, IC, RD, X OFFSET, Y OFFSET
'Call move("190","35","13","25",-192,0) //C, R, IC, RD, X OFFSET, Y OFFSET
End Sub


Sub move(ByVal cstart As String, ByVal rstart As String, ByVal icstart As String, ByVal rdstart As String, ByVal xoffset As Double, ByVal yoffset As Double)

Dim ret As Integer

'part_count = 0
'input_number = InputBox("RefDes : ", "C") 'ref number Input
'If input_number = "" Then
'Exit Sub
'End If
'r_input_number = InputBox("RefDes : R ", "R") 'ref number Input
'If r_input_number = "" Then
'Exit Sub
'End If
'ic_input_number = InputBox("RefDes : regulator ", "IC") 'ref number Input
'If ic_input_number = "" Then
'Exit Sub
'End If
    'rd_input_number = InputBox("RefDes : regulator ", "RD") 'ref number Input
'If rd_input_number = "" Then
'Exit Sub
'End If
input_number = cstart
r_input_number = rstart
ic_input_number = icstart
rd_input_number = rdstart

    tgtname = "c" + input_number 'Step 1 c part 10
   
    dx = 0 + xoffset 'x position
    dy = 10 + yoffset 'y position
    rotation = 270 'rotation
Call ApplyMove()


tgtname = "c" + CStr(Val(input_number) + 1) 'next part 11
    dx = 0 + xoffset
    dy = 8 + yoffset
    rotation = 90
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 2) 'next part 12
    dx = 5 + xoffset
    dy = 8 + yoffset
    rotation = 90
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 3) 'next part 13
    dx = 5 + xoffset
    dy = 10 + yoffset
    rotation = 90
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 4) 'next part 14
    dx = -5 + xoffset
    dy = 8 + yoffset
    rotation = 270
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 9) 'next part 19
    dx = 2.5 + xoffset
    dy = -46.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 10) 'next part c20
    dx = 2.5 + xoffset
    dy = -6.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 11) 'next part c21
    dx = 1.5 + xoffset
    dy = 6.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 12) 'next part c22
    dx = 4.5 + xoffset
    dy = -6.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 13) 'next part c23
    dx = 4.5 + xoffset
    dy = -46.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 14) 'next part c24
    dx = 3.5 + xoffset
    dy = 6.5 + yoffset
    rotation = 0
Call ApplyMove()

    tgtname = "r" + r_input_number 'Step 1 c part R8
   
    dx = -5 + xoffset 'x position
    dy = 10 + yoffset 'y position
    rotation = 270 'rotation
Call ApplyMove()


tgtname = "r" + CStr(Val(r_input_number) + 1) 'next part R9 (R11)
    dx = -0.5 + xoffset
    dy = 6.5 + yoffset
    rotation = 0
Call ApplyMove()

    tgtname = "ldo" + ic_input_number 'Step 1 c part
   
    dx = -2.5 + xoffset 'x position
    dy = 9 + yoffset 'y position
    rotation = 180 'rotation
Call ApplyMove()


tgtname = "ldr" + CStr(Val(ic_input_number)) 'next part
    dx = 2.5 + xoffset
    dy = 9 + yoffset
    rotation = 90
Call ApplyMove()

    tgtname = "rd" + rd_input_number 'Step 1 c part
   
    dx = 0 + xoffset 'x position
    dy = -10.5 + yoffset 'y position
    rotation = 180 'rotation
Call ApplyMove()


tgtname = "rd" + CStr(Val(rd_input_number)+1) 'next part
    dx = 0 + xoffset
    dy = -29.5 + yoffset
    rotation = 180
Call ApplyMove()

End Sub

Sub move1(ByVal cstart As String, ByVal rstart As String, ByVal icstart As String, ByVal rdstart As String, ByVal xoffset As Double, ByVal yoffset As Double)

Dim ret As Integer

'part_count = 0
'input_number = InputBox("RefDes : ", "C") 'ref number Input
'If input_number = "" Then
'Exit Sub
'End If
'r_input_number = InputBox("RefDes : R ", "R") 'ref number Input
'If r_input_number = "" Then
'Exit Sub
'End If
'ic_input_number = InputBox("RefDes : regulator ", "IC") 'ref number Input
'If ic_input_number = "" Then
'Exit Sub
'End If
    'rd_input_number = InputBox("RefDes : regulator ", "RD") 'ref number Input
'If rd_input_number = "" Then
'Exit Sub
'End If
input_number = cstart
r_input_number = rstart
ic_input_number = icstart
rd_input_number = rdstart

    tgtname = "c" + input_number 'Step 1 c part 25
   
    dx = -2 + xoffset 'x position
    dy = -48 + yoffset 'y position
    rotation = 270 'rotation
Call ApplyMove()


tgtname = "c" + CStr(Val(input_number) + 1) 'next part 26
    dx = 3 + xoffset
    dy = -48 + yoffset
    rotation = 270
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 2) 'next part 27
    dx = 3 + xoffset
    dy = -50 + yoffset
    rotation = 90
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 3) 'next part 28
    dx = 6.5 + xoffset
    dy = -46.5 + yoffset
    rotation = 180
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 4) 'next part 29
    dx = -0.5 + xoffset
    dy = -50.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 9) 'next part c34
    dx = 2.5 + xoffset
    dy = 6.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 10) 'next part c35
    dx = 2.5 + xoffset
    dy = -33.6 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 11) 'next part 36
    dx = 2.5 + xoffset
    dy = -46.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 12) 'next part 37
    dx = 4.5 + xoffset
    dy = -33.6 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 13) 'next part 38
    dx = 4.5 + xoffset
    dy = 6.5 + yoffset
    rotation = 0
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 14) 'next part 39
    dx = 4.5 + xoffset
    dy = -46.6 + yoffset
    rotation = 0
Call ApplyMove()

    tgtname = "r" + r_input_number 'Step 1 c part
   
    dx = 1.5 + xoffset 'x position
    dy = -50.5 + yoffset 'y position
    rotation = 180 'rotation
Call ApplyMove()


tgtname = "r" + CStr(Val(r_input_number) + 1) 'next part
    dx = 0.5 + xoffset
    dy = -46.5 + yoffset
    rotation = 0
Call ApplyMove()

    tgtname = "ldo" + ic_input_number 'Step 1 c part
   
    dx = 0.5 + xoffset 'x position
    dy = -48.5 + yoffset 'y position
    rotation = 270 'rotation
Call ApplyMove()


tgtname = "ldr" + CStr(Val(ic_input_number)) 'next part
    dx = 5.5 + xoffset
    dy = -49 + yoffset
    rotation = 0
Call ApplyMove()

    tgtname = "rd" + rd_input_number 'Step 1 c part
   
    dx = 0 + xoffset 'x position
    dy = -10.5 + yoffset 'y position
    rotation = 180 'rotation
Call ApplyMove()


tgtname = "rd" + CStr(Val(rd_input_number)+1) 'next part
    dx = 0 + xoffset
    dy = -29.5 + yoffset
    rotation = 180
Call ApplyMove()

End Sub

Sub ApplyMove()
    Dim doc     As Document
    Dim tgtComp As Component

    Set doc     = Application.ActiveDocument
    Set tgtComp = doc.Components(tgtName)

    tgtComp.Move dx, dy 'component move
    tgtComp.Orientation = rotation 'coponent rotation
    
    
    'MsgBox "[" & tgtName & "] moved by (" & dx & ", " & dy & ")"
End Sub

728x90
반응형

'Hardware' 카테고리의 다른 글

PADS 에서 Script 사용.  (0) 2025.04.28
PADS 창 짤리는 문제  (0) 2024.10.17
변경된 회로 Pads에 적용하기  (1) 2024.10.08
PADS에서 다층 기판 셋팅하기  (0) 2024.10.07
PADS에서 ORCAD Netlist 불러오기.  (4) 2024.10.07
728x90
반응형

Dim doc As Document
Dim tgtName As String
Dim refName As String
Dim tgtComp As Component
Dim refComp As Component
Dim dx As Double
Dim dy As Double
Dim rotation As Double

Dim page_count As Double
Dim part_count As Double
Dim input_number As String



Sub Main
Dim ret As Integer

part_count = 0
input_number = InputBox("RefDes : ", "Target") 'ref number Input
    tgtname = "c" + input_number 'Step 1 c part
   
    dx = 0 'x position
    dy = 10.5 'y position
    rotation = 270 'rotation
Call ApplyMove()

tgtname = "c" + CStr(Val(input_number) + 1) 'next part
    dx = 0
    dy = 10.5
    rotation = 270
Call ApplyMove()

    
End Sub

Sub ApplyMove()
    Dim doc     As Document
    Dim tgtComp As Component

    Set doc     = Application.ActiveDocument
    Set tgtComp = doc.Components(tgtName)

    tgtComp.Move dx, dy 'component move
    tgtComp.Orientation = rotation 'coponent rotation
    
    
    MsgBox "[" & tgtName & "] moved by (" & dx & ", " & dy & ")"
End Sub

728x90
반응형
728x90
반응형

VX 버전

pads 종료후 진행

C:\MentorGraphics\PADSVX.2\SDD_HOME\Programs 폴더 이동

powerlogic.ini, powerpcb.ini, blazerouter.ini 파일을 메모장으로 연다.

각각에 파일에 [general] 글밑에 Dialog_Font_Fix=1 을 추가 해준다.

 

실행해보면 정상적으로 나옴.

728x90
반응형
728x90
반응형

기존 회로

 

변경된 회로

변경된 회로에서 Netlist를 만들어 준다.

https://dadaprofit.tistory.com/83

 

ORCAD에서 Netlist 만들기.

프로젝트 창에서 SCHEMATIC1 폴더를 클릭후 화면 가운데 위쪽에 아이콘중 문서 모양에 N이 들어가 있는 아이콘을 클릭하거나Tools에 Create Netlist를 클릭 하자.위와 같이 Create Netlist 창이 열리면 오른

dadaprofit.tistory.com

 

확인을 눌러 파일이름을 ORCAD-1.asc로 만들었다.

temp라는 비여있는 다른 새로운 파일을 만든후 열어준다.

PADS에서 수정된 ORCAD-1.asc 파일을 Import 시켜 준다.

https://dadaprofit.tistory.com/85

 

PADS에서 ORCAD Netlist 불러오기.

Pads를 실행후 File에 Import를 클릭 하자. 앞에서 만들어 놓은 Netlist파일을 선택후 열기를 눌러주자. 파일을 불러오면 위와 같이 노트패드가 열리고 에러나 경고가 표시된다. 아무것도 없는 상태

dadaprofit.tistory.com

수정된 asc 파일을 선택후 열기 누른다.

새로운 파일에 Import 된것을 확인 할수 있다. 수정사항이 잘 반영 되었는지 확인후 파일을 저장 하고 닫는다.

이제 원래 본 파일을 실행하여 연다.

원래 파일이 열렸다.

이제 수정된 회로를 적용 하겠다.

상단 메뉴바에서 Tools에 Compare/ECO를 클릭 한다.

위와 같이 Compare/ECO Tools 창이 열리면 다음 순서를 실행 해주자.

1. 제일 위에 Original Design to Compare and Update 안에 Use Current PCB Design을 체크 해주자.

2. New Design with Changes 창에 변경된 회로를 적용한 PADS 파일을 선택 해준다.

3. Output Options에 두가지 체크 해주고 Browse를 눌러 어디에 어떤 이름으로 저장 할지 설정 해준다. 필자는 D:\blog\pads폴더에 temp.eco로 저장을 해주겠다.

4. Run을 클릭

기존에 있는 파일이면 덮어 쓸것인지 물어보는데 예를 눌러주자.

바로 위와 같은 창이 뜨는데 아래 보면 ECOGEN : Differences found가 나와야 한다. 만약 다르게 나오면 잘못 된것이다. 다시 처음 부터 확인 하면서 해보시길..

Show Report를 클릭하면 무엇이 변경 되었는지 나온다.

맞는지 확인하자.

Close를 눌러 화면을 닫자.

Cancel을눌러 화면을 닫자.

이제 다른 사항을 적용 해주자.

File에 Import를 클릭하자.

화면처럼 파일 형식을 eco로 선택 하자.

Compare/ECO Tools에서 만들었던 temp.eco 파일이 보인다. 선택후 열기 버튼을 누르자.

에러가 없다고 나온다. 정상적으로 불러 들였다. 확인을 클릭 하자.

새로운 회로가 적용되어서 Net가 다른 부분은 삭제 되고 새로운 Net가 연결되어 있다.

다시 Routing을 하여 완료 하면 된다.

 

728x90
반응형

'Hardware' 카테고리의 다른 글

PADS 에서 Script 사용.  (0) 2025.04.28
PADS 창 짤리는 문제  (0) 2024.10.17
PADS에서 다층 기판 셋팅하기  (0) 2024.10.07
PADS에서 ORCAD Netlist 불러오기.  (4) 2024.10.07
ORCAD에서 PL 뽑기.  (0) 2024.10.07
728x90
반응형

PADS에서 LAYER선택을 누르면 Top, Bottom이 바로 온다. 현재 2Layer 모드 이다. 이것을 다층으로 변경 해보자.

Setup에 Layer Definition을 클릭 하자.

위와 같이 창이 열리면 Modify를 클릭 하자.

위와 같이 창이 열리면서 4라고 입력 되어 있다. 여기서 20층까지 설정 할수 있다.

4가 입력된 상태에서 OK를 눌러서 4층 기판으로 설정하자. 4층에서 다시 2층으로 셋팅은 안되니 조심하자.2층으로 셋팅 된다. pcb inport한 라이브러리에 문제가 있어서 안돼었었다...

위와 같은 창이 열리는데 기존 Top Layer는 1번 Layer로 위치 되고 기존 Bottom Layer는 4번째 Layer로 위치 된다고 나온다. 그냥 OK 클릭하자.

처음에 Layers Setup 창에 1번이 Top, 2번이 Bottom이였던것이 2번에 Inner Layer2, 3번에 Inner Layer3이 추가 되고 4번에 Bottom으로 변경 된것을 확인 할수 있다.

OK를 눌러 셋팅을 완료 하자.

Ctrl + Alt + C를 누르거나 Setup에 Display Colors를 클릭하자.

Color Setup 창을 보면 Inner Layer 2 와 Inner Layer 3는 모두 검은색으로 되어 있을수 있다. 색상을 지정 하지 않으면 화면에 표시가 안된다. 변경을 해주자.

대충 설정 했다.

다른때에도 사용하기 위해 Save를 눌러 저장을 해주자.

이제 다른 프로젝트에서도 Color를 불러와서 동일하게 셋팅 할수 있다.

배선을 하면서 왼쪽 상단에 Layer를 선택하면서 다층 기판 작업을 할수가 있다.

대충 작업을 완료 해 놓은 상태 이다. 배선 색상이 다른것은 다른 층에 있다는 이야기 이다.

728x90
반응형

'Hardware' 카테고리의 다른 글

PADS 창 짤리는 문제  (0) 2024.10.17
변경된 회로 Pads에 적용하기  (1) 2024.10.08
PADS에서 ORCAD Netlist 불러오기.  (4) 2024.10.07
ORCAD에서 PL 뽑기.  (0) 2024.10.07
ORCAD에서 Netlist 만들기.  (1) 2024.10.07
728x90
반응형

Pads를 실행후 File에 Import를 클릭 하자.

 

앞에서 만들어 놓은 Netlist파일을 선택후 열기를 눌러주자.

 

파일을 불러오면 위와 같이 노트패드가 열리고 에러나 경고가 표시된다. 아무것도 없는 상태에서 불러 왔을 경우를 에러 또는 경고가 없어야 정상이다. 무엇인가 뜬다면 어딘가 잘못 돤것이다. ORCAD에서 Footprint값을 pads에 parts값으로 정확히 넣었는지 확인 하자.

 

Pads에서 위와 같은 문구가 뜨는데 그냥 확인을 누르면 된다.

 

PADS에 Netlist가 있는 ASCII파일을 잘 Import 되어  있는것을 확인 할수 있다.

Parts를 전체 선택후 마우스 오른쪽 버튼을 누른후 Disperse를 클릭 하면 보기 좋게 정렬 된다.

728x90
반응형

'Hardware' 카테고리의 다른 글

변경된 회로 Pads에 적용하기  (1) 2024.10.08
PADS에서 다층 기판 셋팅하기  (0) 2024.10.07
ORCAD에서 PL 뽑기.  (0) 2024.10.07
ORCAD에서 Netlist 만들기.  (1) 2024.10.07
ORCAD에서 PADS 라이브러리 입력하기.  (1) 2024.10.07
728x90
반응형

프로젝트 창에서 SCHEMATIC1을 클릭후 그림상에 마우스 위치에 있는 ICON을 누르거나 Tools에 Bill of Materials..를 클릭 하자.

위와 같은 창이 열린다. Open in Excel을 체크 해주고 확인을 누르면 Excel 창이 열리고 부품목록이 나온다. 만약 PCB Footprint 값도 나오게 하고 싶으면 Heater 라인과 Combined property string 라인에 다음과 같이 추가 하면 된다.

추가한후 OK를 누르면 Excel 창이 열리고 다음과 같이 출력 된다.

Part에 맞게 레퍼런스 넘버가 정렬 되어 나온다. 이넘을 이용해서 PARTLIST를 만들면 된다.

주의사항으로는 Part 이름이 조금만 달라도 다른 부품으로 인식한다. 그리고 PCB Footprint에서 0이 먼저 시작하면 표시가 안된다..

728x90
반응형
728x90
반응형

프로젝트 창에서 SCHEMATIC1 폴더를 클릭후 화면 가운데 위쪽에 아이콘중 문서 모양에 N이 들어가 있는 아이콘을 클릭하거나

Tools에 Create Netlist를 클릭 하자.

위와 같이 Create Netlist 창이 열리면 오른쪽 위에 Other 를 클릭후 Formatters에서 orPadspcb.dll 또는 orpads2k.dll을 클릭 해주자. 난 orPadspcb를 사용함.. 크게 상관 없는듯 했음.

그리고 확인을 누르면 Netlist File 1: 밑에 주소(D:\Blog\SCHEMATIC폴더에 ORCAD.asc라는 아스키  파일이 만들어짐.

확인 클릭시 위와 같은 창이 뜨면 그냥 확인 눌러주면 됨.

해당 폴더에 가면 ORCAD.asc 파일이 만들어 진것을 확인 할수 있음.

 

728x90
반응형
728x90
반응형

회로도 부품에 PADS Parts을 입력하기 위한 방법은 여러 가지가 있는데 하나씩 넣거나 수정하는 방법은 해당 부품을 더블 클릭 한다.

만약 위와 같이 화면이 나온다면 Filter by : 선택 창을 변경 해주자.

Orcad-Capture를 선택 하자.

 

PCB Footprint가 나오는것을 확인 할수 있다.

pads에서 사용하는 Parts 이름을 확인후 넣어주자. (Decals 이름 아님!!!)

(DIP14가 있는것을 확인했다. 잘못 넣으면 PADS에서 읽어 들일때 에러가 발생 한다.)

 

Orcad에서 PCB Footprint에 DIP14를 넣어주었다.

다른것들도 넣어주자. 하나씩 더블 클릭 할수도 있지만 전체 정보를 열어 놓고 변경 하자.

 

프로젝트 창에 가서 해당 회로도를 클릭후 마우스 오른쪽 버튼을 눌러 Edit Object Properties를 클릭 하자.

 

위와 같은 창이 열리는 것을 확인 할수 있다. 이제 PCB Footprint 라인에 Pads에 Parts 이름을 넣어주자. (Ctrl + C, Ctrl + V)

 

위와 같이 PCB Footprint 값을 모두 넣었다.

 

 

 

728x90
반응형
728x90
반응형

ORCAD에서 대충 다음과 같은 회로를 만들었다.

레퍼런스 넘버를 순차적으로 정렬해보자.

 

프로젝트 창으로 이동후 마우스로 해당 회로도를 한번 클릭하여 선택 한다.

 

가운데 상단에 U?를 클릭 한다.

 

위와 같은 창이 열리면 Action에 Reset part references to "?" 를 클릭 하고 확인을 눌러준다.

 

위와 같은 창이 열리면 그냥 확인을 클릭 해준다.

 

회로도에 가보면 레퍼런스 넘버 숫자가 ?으로 변경 된것을 확인 할수 있다.

다시 프로젝트 창으로 가서 회로도 선택이 안되어 있다면 클릭후 U?를 클릭 한다.

 

위창에서 Incremental reference upadate를 클릭후 확인을 누른다. (Annotation Type을 변경하여 순서를 변경 할수 있다.)

 

위와 같은 창이 열리면 확인을 눌러주자.

 

회로도에 가보면 레퍼런스 넘버가 위에서부터 왼쪽에서 오른쪽으로 번호가 들어가 있는것을 확인 할수 있다.

 

 

 

728x90
반응형

'Hardware' 카테고리의 다른 글

PADS에서 다층 기판 셋팅하기  (0) 2024.10.07
PADS에서 ORCAD Netlist 불러오기.  (4) 2024.10.07
ORCAD에서 PL 뽑기.  (0) 2024.10.07
ORCAD에서 Netlist 만들기.  (1) 2024.10.07
ORCAD에서 PADS 라이브러리 입력하기.  (1) 2024.10.07

+ Recent posts