KiCAD 또는 CircuitPro의 타원형 보드 가장자리?


11

KiCAD를 사용하여 기존 사례에 맞는 PCB를 설계하려고합니다. PCB의 한쪽은 특정 타원형 호 세그먼트로 형성되어야합니다. 원하는 타원의 매개 변수를 알아낼 수는 있지만 KiCAD에서 이러한 모서리 절단을 실제로 그리는 방법은 보이지 않습니다.

KiCAD에서 가능합니까, 아니면 잘못된 소프트웨어를 사용하고 있습니까? 이 보드는 LPKF ProtoMat에서 만들어 질 것이므로 CircuitPro 소프트웨어를 사용하여 플로터에 대한 최종 지침을 작성합니다 (아직 작동 방식을 모름).

그래서 내 질문은 KiCAD에서 보드 모양 디자인에 대해 생각해야하는지 아니면 이후 단계까지 남겨야하는지 여부입니다.

감사합니다.


이것은 KiCad에서 가능하며 이전에 그러한 보드 개요를 작성했습니다. 나는 지금 모바일에 있지만, 가능할 때 답을 쓸 수 있습니다.
압둘라 카흐 라만

@abdullahkahraman : 귀하의 통찰력에 감사드립니다.
발 블런트

답변:


25

나는 백만 단어의 가치가있는 예제를 생각하므로 이것에 대한 자습서를 만들고 싶었습니다.

다음은 개요를 만들려는 상자입니다.

여기에 이미지 설명을 입력하십시오

상자의 데이터 시트에서 PCB 도면의 예는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

Pcbnew를 연 후 모서리 레이어를 선택하십시오. KiCad (BZR4008)의 현재 버전에서는 "Edge.Cuts"라고합니다. 먼저 62mm 인 위쪽 및 아래쪽 가장자리를 그립니다. 그런 다음 왼쪽과 오른쪽 가장자리는 32mm입니다. 아래의 툴팁이 "그래픽 라인 또는 다각형 추가"인 툴을 사용하고 있습니다.

여기에 이미지 설명을 입력하십시오

이제 모든 것이 잘되었으므로 다른 모양을 그릴 수 있습니다.

여기에 이미지 설명을 입력하십시오

우리가 사용할 도구는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

이 도구는 기본적으로 부분 원입니다. 이를 사용하려면 원의 중심이 될 지점을 클릭 한 다음 마우스를 사용하여 KiCad의 시각 보조 도구로 반경을 설정합니다. 매우 유용한 것은 커서를 변경하여 아래 표시된 단추와 함께 전체 좌표를 표시하는 것입니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

예를 들어, 가장자리가 바깥 쪽을 향하도록합시다.

여기에 이미지 설명을 입력하십시오

불행히도이 방법으로 올바른 줄임표를 만들 수 없습니다. Nick Alexeev가 언급 한 그래픽 임베딩 또는 근사 방법을 사용해야합니다.


4

내 생각에 KiCad의 절약 은혜는 그것이 만든 파일은 사람이 읽을 수 있고 파일 형식이 합리적으로 잘 문서화되어 있다는 것입니다. X 및 Y 좌표는 왼쪽 위의 (0,0)을 참조하여 1/10 인치로 지정됩니다. 보드 외곽선은 선분과 반원 호로 표현할 수 있습니다.

선택한 스크립팅 언어 (예 : Python)를 사용하여 Kicad의 .brd 파일을 조작하는 것은 간단합니다. 내가 당신이라면 아마 타원 윤곽선을 근사하기 위해 조각 별 선분을 계산하고 선분을 .brd 파일에 쓰는 스크립트를 작성했을 것입니다.


그것이 내가 결국 한 일입니다. 고마워 Rob! 솔루션에 대한 자세한 설명을 조금만 게시하겠습니다.
발 블런트

4

이 모든 정보를 요약하는 데 며칠이 걸렸지만이 문제에 대한 2 가지 해결책으로 끝났습니다. 여기에 두 솔루션을 모두 설명하겠습니다.

kicad 사용자 포럼의 Lorenzo와 Rob Gilliom에게 감사의 말씀을 전합니다.이 포럼에서 아래 솔루션을 구성하는 데 필요한 모든 아이디어와 정보를 제공했습니다 ( http://tech.groups.yahoo.com/ 그룹 / kicad-users / message / 15220 ).

= 옵션 1 =

단일 타원형 세그먼트를 가져오고 KiCAD에서 나머지 보드를 디자인하려면이 Ruby 스크립트가 가장 쉬운 방법 일 것입니다.

#
# Generates an ellipse for Kicad. You have to copy the 
# generated lines into an existing template inside a .kicad_pcb file
#

Xo = 200.0
Yo = 150.0
MAJOR = 60.0
MINOR = 40.0
N = 256 # Number of points on the ellipse

TEMPLATE = "(gr_line (start %.2f %.2f) (end %.2f %.2f) (layer Edge.Cuts) (width 0.15))\n"

step = Math::PI * 2 / N
points = Array.new

# Calculate coordinates for all N points
(0..N).each {|s|
  x = Xo + MAJOR * Math::cos(step * s)
  y = Yo - MINOR * Math::sin(step * s)
  points << [x, y]
}

# For each pair of points, print a gr_line
points.each_cons(2) { |line| 
  printf(TEMPLATE, line[0][0], line[0][1], line[1][0], line[1][1])
}

이 스크립트를 사용하려면 공백을 저장하십시오. .kicad_pcb 파일을 Kicad에 다음 마지막 섹션 뒤에 닫는 괄호 앞에이 스크립트에 의해 생성 된 줄을 삽입하십시오.

KiCAD에서 새 보드 파일을 열고 선 세그먼트로 보간 된 타원을 즐기십시오 :). 256 점을 사용하면 타원이 매끄럽게되어 KiCAD의 선으로 구성되어 있다고 말할 수 없습니다.

타원의 일부만 (예 : PCB의 한쪽 가장자리) 원하는 경우 위의 스크립트에 경계 상자를 추가하고 상자 외부에있는 모든 점을 버리는 것이 간단합니다.


= 옵션 2 =

또 다른 방법은 Inkscape (또는 벡터 그래픽을 내보낼 수있는 다른 것)로 보드를 디자인하고 KiCAD로 가져올 수있는 방법을 찾는 것입니다.

Lorenzo는 Inkscape에서 Gerber로 이동할 수있는 솔루션을 제공했습니다. http://tech.groups.yahoo.com/group/kicad-users/message/15229

그런 다음 Lorenzo의 솔루션을 기반으로 Gerber 스테이지를 우회하고 KiCAD 보드 파일 라인을 직접 생성하는 Ruby 스크립트를 작성할 수있었습니다.

과정은 다음과 같습니다.

  1. Inkscape에서 보드 디자인
  2. HPGL로 내보내기
  3. HPGL을 GnuPlot Ascii로 변환 : hp2xx -t -m gpt file.hpgl
  4. 보드 파일 행을 생성하십시오. gpt2pcbnew file.hpgl.gpt

gpt2pcbnew스크립트 소스는 다음과 같습니다 .

#
# Convert a GPT file created by hp2xx to Pcbnew gr_lines
#

# That's the line we'll write into the board file
TEMPLATE = "(gr_line (start %.5f %.5f) (end %.5f %.5f) (layer Edge.Cuts) (width 0.15))\n"


gpt_file = ARGV.shift

segments = Array.new

File.open(gpt_file, "r") do |file|
  # Start a new segment
  segment = Array.new 

  while (line = file.gets)
    unless ( line.strip! =~ /^#/ ) # Skip comments
      if ( line =~ /([0-9.]+) *([0-9.]+)/ )
        # Found coordinates. Save this point in the current segment
        #
        segment << line.split
      else
        # No numbers on a line means that we are done drawing the segment,
        # so we need to "lift up the pen" and move to the next segment
        #

        # Add current segment to the list of segments
        segments << segment unless segment.empty?

        # Start a new segment
        segment = Array.new
      end
    end
  end

  # Add the last segment we read
  segments << segment unless segment.empty?
end


# Print out gr_lines for all the segments
segments.each { |segment|  
  # For each pair of points print a line
  segment.each_cons(2) { |line| 
    printf(TEMPLATE, line[0][0], "-#{line[0][1]}", line[1][0], "-#{line[1][1]}")
  }  
}

옵션 1에서와 같이 생성 된 라인은 KiCAD에 저장된 빈 보드 파일로 들어갑니다.

이 솔루션은 HPGL 형식이 Gerber 파일과 구성이 매우 유사하다는 사실을 활용합니다. 이는 Gerber의 D01 및 D02 코드에 해당하는 "펜업"또는 "펜 다운"과의 일련의 좌표라는 점에서 다릅니다.

따라서 베 지어 스플라인에서 선분으로 변환하는 모든 노력은 Inkscape에 의해 수행됩니다.

= 옵션 2 제한 사항 =

이 방법에는 몇 가지 제한 사항이 있습니다.

  1. Inkscape는 사각형을 HPGL로 내보낼 수없는 것 같습니다. 자신만의 직사각형을 구성 하여이 문제를 해결할 수 있습니다.
  2. 현재 내 보낸 객체의 크기를 올바르게 가져올 수 없습니다. KiCAD에서 객체의 크기는 대략 두 배입니다. 나는 이것에 대한 해결책을 곧 연구 할 것이다.

3

Kicad와 비슷한 문제가 있었지만 표준이 아닌 모양에 대한 지원이 제한적이거나 문서화가 잘되어 있지 않습니다. 내가 한 일은 Gimp로 모양 (표준이 아닌 표준 패드)을 그리고 내장 도구를 사용하여 모듈로 변환하는 것이 었습니다. 그런 다음이 모듈 파일을 열고 레이어를 구리 레이어로 변경했습니다. Kicad에서 다시 열면 어떤 레이어에서든 비표준 모양을 선택할 수 있습니다. 이상적이지는 않지만 작동합니다.


단계 :

  1. 김프에서 그림 만들기
  2. Kicad에 포함 된 bitmap2 구성 요소를 사용하여 구성 요소로 변환
  3. gedit / notepad에서 모듈을 열고 다음 문서에 따라 레이어 정보를 편집하십시오 (3.4 절).

https://bazaar.launchpad.net/~kicad-developers/kicad/doc/view/head:/doc/help/file_formats/file_formats.pdf

4. Pcbnew에서 변경 사항을 저장하고 모듈을 엽니 다

결과 (땜납 마스크로 덮지 않은 원형 모서리를 만드는 다른 방법을 생각할 수 없었습니다. 실제로 내부에 구성 요소가있는 SMD 패드입니다).

여기에 이미지 설명을 입력하십시오


흠-이것은 흥미로운 접근법처럼 보이지만 "이 모듈 파일을 열고 레이어를 구리 레이어로 변경했다"는 것이 무슨 의미인지 잘 모르겠습니다. 패드에는 모듈 자체가 아니라 대상 레이어가 있다고 생각했습니다. 원하는 모양의 모듈에서 선택한 도면층의 실제 도면으로 이동하는 방법을 조금 확장 할 수 있습니까? 감사!
발 블런트

답변이 업데이트되었습니다.
s3c

1
원 도구만으로 원형 모서리를 만들 수 있습니다. 영역이 이미 구리로 채워져 있기 때문에 이번에는 Front Mask 레이어에 원을 그려 솔더 마스크를 제거 할 수 있습니다.
abdullah kahraman

그것은 꽤 좋은 제안입니다. 나는 다양한 디자인에 빠르게 들어갈 수있는 모듈을 원했습니다. 둘 다 작동 할 것이라고 생각합니다. +1
s3c

1

OrCAD, Eagle, Altium에서 일했습니다. KiCAD와 함께 일하지 않았습니다. 따라서 다음은 교육받은 추측입니다.

일반적으로 레이아웃 프로그램에는 원호를 그리는 기능이 있지만 타원을 그리는 기능은 내장되어 있지 않습니다. 원호로 타원을 근사화 할 수 있습니다 ( 자세한 내용은 여기 참조 ). 제도 프로그램으로 타원을 그리고 DXF를 배치 프로그램으로 가져 오려고 시도 할 수도 있습니다 (KiCAD가이를 얼마나 잘 지원할 수 있는지 모름).

결국, PCB 팹은 아마도 다각형을 가진 대략적인 곡선 일 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.