마우스를 클릭하는 대신 코드를 사용하는 PCB 설계? [닫은]


14

나는 단지 PCB 디자인에 들어가고 있으며 일반적으로 메뉴와 마우스 클릭으로 GUI를 사용하는 방법을 배우는 데 어려움이 있습니다. 일부 엔지니어는 PCB와 같은 코드를 사용하여 PCB를 생성합니까?


7
평범한 거버 파일을 작성하는 것은 좋지 않습니다 ...
Huisman

31
PCB 레이아웃은 대부분 시각적 인 작업입니다. 코드로 처리하는 것은 고통스러워 보입니다.
JRE

3
일반적으로 대부분의 메뉴 항목에 대한 바로 가기 키가 있습니다. 대부분의 도구는 위치와 방향에 대한 텍스트 입력을 허용합니다 (단, 마우스로 물건을 옮기는 것보다 훨씬 고통 스럽습니다). 텍스트 도구를 사용하여 비아 및 차동 쌍과 같은 것을 정확하게 배치합니다.
피터 스미스

4
일부 CAD 패키지는 다른 CAD 패키지보다 더 클릭합니다. 내 경험상 Orcad Allegro는 가장 간단한 작업을 수행하기 위해 무의미한 GUI 작업을 많이 수행하는 최악의 상황입니다. Diptrace는 가장 쉽고 유동적 인 사용자 경험입니다. PADS는 직관적 인 UI와 많은 고급 기능을 갖춘 매우 훌륭한 툴체인입니다. PADS는 작업을 수행하려는 엔지니어를위한 것이며 Orcad는 마조히스트를위한 것입니다. : D
Wossname

2
프로그래밍 방식의 패턴 생성이 적합한 키보드 단축키와 고유 한 사례가 있지만 PCB 레이아웃은 대부분 대화식 그래픽 작업입니다. 이와 달리 로직 이 FPGA 및 ASIC 디자인과 같은 물리적 구현을 ​​지배 하는 상황에서는 일반적으로 자동화 된 장소 및 경로 도구를 공급하는 로직 컴파일러에 공급되는 하드웨어 설명 언어에 의해 구동됩니다. 우리가 여전히 TTL로 가득 찬 큰 보드에서 메인 프레임 프로세서를 구축하고 있다면 HDL에서 PCB 로의 디자인 흐름이 비슷할 것입니다. 그러나 다행히도 그렇지 않습니다.
Chris Stratton

답변:


19

Altium에는 실제로 여러 언어로 된 스크립팅 언어가 있습니다. 경우에 따라 알고리즘을 사용하는 것이 합리적 일 수 있습니다. 예를 들어, 특정 위치에 정확하게 배치 된 반복적 인 레이아웃 또는 부품을 생성 할 수 있습니다.

예를 들어, 부품 (LED)을 원형 패턴으로 배치하는 데 사용되는 것을 보았습니다. 극좌표 스냅 그리드를 도입하면 번거롭지 않을 것입니다.

우리는 알고리즘을 사용하여 .dxf 형식으로 직접 모양 (안테나와 같은 종류의 생각)을 만든 다음 구리 층으로 가져올 수있었습니다.

일반적으로 코드는 PCB 레이아웃 목적, 특히 라우팅 작업에 적합하지 않습니다.


17

EAGLE CAD에서는 명령 줄에서 수행 할 수있는 마우스로 수행 할 수있는 모든 작업을 수행합니다. 또한 기본적으로 프로그래밍 할 수있는 사용자 언어가 있습니다.


2
패턴 등을 수행 할 때 매우 유용합니다. 레이아웃의 99 %를 수동으로 수행하더라도 코드로 부품 / 기능을 정렬 할 수 있습니다.
웨슬리 리

1
종종 Matlab 또는 텍스트 프로세서로 코딩하여 스크립팅 언어를 출력합니다.
Scott Seidman

3
예! 나는 파이썬에서 그것을 사용했다 :)
Wesley Lee

1
이것은 Eagle의 주요 장점 중 하나입니다. 시작하면 명령 줄 만 사용합니다.
D Duck

7

코드를 사용하여 PCB 넷리스트 . 문서화 수있는 형식으로, 다행히 KiCAD 네트리스트 파일은 텍스트는 (그것은 힘들게 개략적에 모든 물건을 그리려면보다. N 비트 멀티플렉서를 구축하기위한 루프를 작성하는 훨씬 더 빨리, 멀리이다)하지만 합리적으로 역전 쉽게 -공학자.

작은 C # 라이브러리를 작성하여 재사용 가능한 매개 변수 회로 블록으로 무엇에 연결하고 싶은지 입력하고 자동으로 넷리스트를 뱉어냅니다. 이제 KiCAD로 직접 가져 와서 시간을 낭비하거나 회로도를 그릴 필요없이 PCB 구축을 시작할 수 있습니다. (이 라이브러리는 KiCAD 자체가 그 일을 더 잘 할 것으로 생각되지만 내 지시 사항이 완전히 허위 인지 확인하기 위해 매우 기본적인 검사를 수행합니다.)

KiCAD의 PCB 파일, 다른 한편으로는, 또한 텍스트, 그러나 것으로 보인다 까지 프로그램 생성 너무 복잡. KiCAD는 기본적으로 모든 구성 요소를 서로 직접 덤프하도록 기본 설정했기 때문에 20 분 이상을 다시 분리하는 데 시간을 소비하여 내가 무엇을하고 있는지 알 수 있기 때문에 부끄러운 일입니다. (KiCAD는 텍스트 를 이동 하는 대신 부착 된 구성 요소가 . 아마도 PCB를 설계하기 어렵게 만드는 것일까 요?)

아마도 언젠가 초기 구성 요소 레이아웃을 자동화 할 것입니다. 다른 사람들이 말했듯이 실제 "PCB 디자인"비트는 항상 GUI와 관련이 있다고 생각합니다.


초기 배치를 위해 graphviz의 레이아웃 엔진 중 하나 를 KiCAD에 연결하는 것이 좋습니다. 매우 간단한 레이아웃을 위해 LTspice 파일을 만들기 위해 graphviz를 사용했으며 합리적으로 잘 작동했습니다.
파이프

3
kicad에는 구성 요소를 처음에 펼칠 수있는 도구가 있습니다.이를 "전역 펼치기 및 배치"라고합니다. 텍스트 이동을 피하기 위해 일반적으로 레이아웃을 위해 텍스트 레이어를 비활성화합니다. 필요한 경우 클릭하면 텍스트를 볼 수 있습니다.
jpa

4

나는 그것을 권장하지 않지만, 정말로 원한다면 PCB 프로그램없이 PCB 아트 워크를 직접 작성할 수 있습니다. 코드는 다음과 같습니다.

G90 *
1 G70 *
2 G54D10 *
3 G01X0Y0D02 *
4 X450Y330D01 *
5 X455Y300D03 *
6 G54D11 *
7 Y250D03 *
8 Y200D03 *
9 Y150D03 *
10 X0Y0D02 *
11 M02 *
12

가장 오른쪽에있는 줄 번호는 파일의 일부가 아닙니다. Gerber에 대한 사전 지식없이이 파일을 검사하면 각 행이 특정 기계 명령을 나타내고 별표 (*)가 명령 문자의 끝임을 올바르게 추론 할 수 있습니다. G, D, M 및 x, y 좌표 데이터로 시작하는 명령어는 다른 종류의 명령어가있는 것 같습니다.

출처 : https://www.artwork.com/gerber/appl2.htm

다른 명령 을 보여주는 사양은 다음과 같습니다.


2
거버 (RS-274X)는 CNC 프로그래밍에 사용되는 G 코드 (RS-274) 파일과 관련이 있습니다. 간단한 2.5D 작업을 위해 텍스트 편집기를 사용하여 G 코드를 직접 작성하는 경우가 있습니다.
Spehro Pefhany

5
관찰 : 거버를 직접 코딩하는 경우 머리에서 시각화하는 것 외에는 디자인 규칙 검사가 수행되지 않습니다. 나는 당신이 어떤 종류의 다음 단계가 아니라면 GUI 도구에서 파일을 열지 않고 텍스트 거버 파일을 입력하여 fab 하우스로 보내는 것을 상상할 수 없습니다.
mkeith

1
Gerber가 G 코드와 관련이 있는지 확실하지 않았지만 의심이있었습니다. 안테나 나 필터를 위해 간단한 최상위 레이어를 작성해야한다면 직접 코딩하기에는 나쁘지 않을 수 있습니다. G 코드 만 편집했지만 작성하려고 시도하지 않았습니다.
전압 스파이크

6
복잡한 보드를위한 시각적 도구보다 G 코드로 더 잘 작업 할 수있는 사람이라면 누구나 훌륭한 사람 일 것입니다. G 코드에서 직접 작업하고 생산성을 발휘할 수있는 사람이라면 누구나 현명한 것으로 여겨 질 것입니다.
mkeith

1
전 세계에서 75 억 명의 사람들을 모릅니다.하지만 심각한 멀티 레이어 전문가 용 그래픽 디스플레이보다 거버 코드를 더 잘 처리 할 수있는 사람은 한 명도 없다고 자신있게 말할 수 있습니다. 무대.
whatsisname

1

Kicad를 사용하는 경우 Youtube의 첫 번째 KiCon (2019)에서 진행된 대화의 비디오 중 일부를보십시오. 두 차례의 대화는 발표자들이 부품을 생성하기위한 도구를 작성하고 연결에 대해 명시 적으로 설명했습니다. 스크립트 언어로 구워진 파이썬을 하나 이상 사용했습니다.


1
동영상 및 도구에 대한 링크를 정교하게 추가 할 수 있습니까? (컨퍼런스로의 발걸음은 가치있는 의견 일 수 있지만 답변으로 인정받을만한 것은 아닙니다.)
Nick Alexeev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.