KiCADまたはCircuitProの楕円形の基板エッジ?


11

KiCADを使用して、既存のケースに適合するPCBを設計しようとしています。PCBの片側は、特定の楕円弧セグメントとして形成する必要があります。目的の楕円のパラメーターを把握できますが、KiCADでこのようなエッジカットを実際に描画する方法がわかりません。

これはKiCADで可能ですか、それとも間違ったソフトウェアを使用していますか?ボードはLPKF ProtoMatで作成されるので、CircuitProソフトウェアを使用して、プロッタの最終的な指示を作成します(それがどのように機能するかはまだわかりません)。

だから私の質問は、KiCADでのボード形状の設計について考えるべきか、それとも後のステップまでそれを残すべきかということです。

ありがとうございました。


これはKiCadで可能で、以前にそのようなボードのアウトラインを作成しました。今はモバイルを利用していますが、空いているときに回答を書くことができます。
abdullah kahraman 2013年

@abdullahkahraman:私はあなたの洞察に感謝します。
Val Blant 2013年

回答:


25

百万語に値する例だと思うので、これについてのチュートリアルを作りたかった。

これが、アウトラインを作成するボックスです。

ここに画像の説明を入力してください

これは箱のデータシートからのPCB描画の例です:

ここに画像の説明を入力してください

Pcbnewを開いた後、エッジのレイヤーを選択します。現在のバージョンのKiCad(BZR4008)では、「Edge.Cuts」と呼ばれています。最初に、上端と下端(62 mm)を描画します。次に、32 mmの左端と右端。「グラフィックラインまたはポリゴンを追加する」というツールチップのある以下のツールを使用しています。

ここに画像の説明を入力してください

すべてがうまくいったので、私は他の形を描くことができます:

ここに画像の説明を入力してください

そのために使用するツールは次のとおりです。

ここに画像の説明を入力してください

このツールは基本的に部分的な円です。使用するには、円の中心となる点をクリックしてから、マウスを使用して、KiCadの視覚的な支援により半径を設定します。非常に役立つことは、下に示すボタンを使用して、完全な座標を表示するようにカーソルを変更することです。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

例として、エッジを外側に向けます。

ここに画像の説明を入力してください

残念ながら、この方法では正しい楕円を作成できません。Nick Alexeevによって言及されたグラフィックの埋め込み、またはその近似方法を使用する必要があります。


4

私の意見では、KiCadの節約の恩恵は、それが作成するファイルが人間が読める形式であり、ファイル形式が適切に文書化されていることです。X座標とY座標は、10000分の1インチ単位で指定され、左上の(0,0)を参照します。ボードの輪郭は、線分と半円弧で表すことができます。

選択したスクリプト言語(Pythonなど)を使用してKicadの.brdファイルを操作するのは簡単です。私があなただったら、おそらく、区分的な線分を計算して楕円形の輪郭を近似し、その線分を.brdファイルに書き込むスクリプトを書くでしょう。


それがまさに私がやったことです。ロブありがとう!ソリューションの完全な説明を少しだけ投稿します。
Val Blant 2013年

4

この情報をすべて消化するのに数日かかりましたが、この問題に対する2つの解決策で終わりました。ここでは両方のソリューションについて説明します。

以下の解決策をまとめるために必要なすべてのアイデアと情報を提供してくれたkicad-usersフォーラムのLorenzoとRob Gilliomに感謝します(http://tech.groups.yahoo.com/ group / 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の1つのエッジ)が必要な場合は、上記のスクリプトに境界ボックスを追加して、ボックスの外側にあるすべてのポイントを破棄するのは簡単です。


=オプション2 =

もう1つのアプローチは、ボード全体をInkscape(またはベクターグラフィックスをエクスポートできるもの)で設計し、それをKiCADにインポートする方法を見つけることです。

LorenzoはInkscapeからGerberに移動できるソリューションをここに提供しました:http : //tech.groups.yahoo.com/group/kicad-users/message/15229

その後、ロレンソのソリューションを構築して、ガーバーステージをバイパスし、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に保存された空のボードファイルに入ります。

このソリューションは、構造がガーバーファイルと非常によく似ているという事実を利用しています。これは、ガーバーのD01およびD02コードに対応する「ペンアップ」または「ペンダウン」のいずれかの一連の座標であるという意味です。

したがって、この場合、ベジェスプラインからラインセグメントへの変換のハードワークはすべてInkscapeによって行われます。

=オプション2の制限=

このアプローチにはいくつかの制限があります。

  1. Inkscapeは長方形をHPGLにエクスポートできないようです。独自の長方形を作成することにより、明らかにこれを回避できます。
  2. 現在、エクスポートされたオブジェクトのサイズを正しく取得できません。オブジェクトは、最終的にKiCADで約2倍の大きさになります。私はすぐにこれの解決策に取り組みます。

3

しばらく前にKicadで同様の問題がありました。非標準の形状のサポートが制限されているか、十分に文書化されていません。私がやったことは、Gimpで自分の形状(私の場合は非標準パッド)を描画し、組み込みツールを使用してそれをモジュールに変換することでした。次に、このモジュールファイルを開き、レイヤーを銅線レイヤーに変更しました。それをKicadで再び開くと、どのレイヤーにも選択した非標準の形状があります。理想的ではありませんが、動作します。


手順:

  1. Gimpで図面を作成する
  2. Kicadに含まれているbitmap2componentを使用して、コンポーネントに変換します
  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パッドです):

ここに画像の説明を入力してください


うーん、これは興味深いアプローチのように見えますが、「このモジュールファイルを開いて、層を銅層に変更した」という意味がわかりません。パッドにはモジュール自体ではなくターゲット層があると思いました。希望の形状のモジュールから、選択したレイヤーの実際の描画にどのように進むかについて少し詳しく説明していただけますか?ありがとう!
Val Blant 2013年

回答を更新しました。
s3c 2013年

1
円形ツールだけで円形のエッジを作成できます。この領域はすでに銅で埋められているため、円形を描くことではんだマスクを削除できますが、今回はフロントマスクレイヤー上に配置します。
abdullah kahraman 2013年

それはかなり良い提案です。私はすぐにさまざまなデザインにドロップできるモジュールが欲しかったのですが、どちらもうまくいくと思います。+1
s3c 2013年

1

私はOrCAD、Eagle、Altiumで働いてきました。KiCADを使用していない。したがって、以下は経験に基づく推測です。

通常、レイアウトプログラムには円弧を描画するための関数がありますが、楕円を描画するための組み込み関数はありません。楕円は円弧で近似できます(詳細はこちら)。また、製図プログラムで楕円を描き、DXFをレイアウトプログラムにインポートしようとすることもできます(KiCADがこれをどれだけサポートできるかわかりません)。

結局、PCBファブはおそらく、とにかく曲線をポリゴンで近似します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.