KiCAD या सर्किटप्रो में अण्डाकार बोर्ड के किनारे?


11

मैं एक पीसीबी को डिजाइन करने के लिए KiCAD का उपयोग करने की कोशिश कर रहा हूं जो एक मौजूदा मामले में फिट होना चाहिए। पीसीबी के एक तरफ को एक विशिष्ट अण्डाकार चाप खंड के रूप में आकार देने की आवश्यकता है। मैं वांछित दीर्घवृत्त के मापदंडों का पता लगा सकता हूं, लेकिन मैं यह नहीं देखता कि वास्तव में KiCAD में इस तरह के एज कट को कैसे आकर्षित किया जाए।

क्या यह KiCAD में संभव है, या क्या मैं इसके लिए गलत सॉफ़्टवेयर का उपयोग कर रहा हूं? बोर्ड LPKF प्रोटोमैट पर बनाया जाएगा, इसलिए मैं प्लॉटर के लिए अंतिम निर्देश बनाने के लिए सर्किटप्रो सॉफ्टवेयर का उपयोग करूंगा (पता नहीं कैसे अभी तक काम करता है)।

तो मेरा सवाल यह है कि क्या मुझे KiCAD में बोर्ड के आकार के डिजाइन के बारे में सोचना चाहिए, या इसे बाद के कदम तक छोड़ देना चाहिए?

धन्यवाद।


KiCad के साथ यह संभव है और मैंने पहले भी इस तरह की बोर्ड रूपरेखा बनाई है। मैं अभी मोबाइल पर हूं, हालांकि जब मैं उपलब्ध हूं तो मैं एक उत्तर लिख सकता हूं।
अब्दुल्लाह कहरामन

@abdullahkahraman: मैं आपकी जानकारी की सराहना करता हूँ।
वैल ब्लैंट

जवाबों:


25

मुझे लगता है कि एक उदाहरण एक लाख शब्दों के लायक है, इसलिए मैं इस पर एक ट्यूटोरियल बनाना चाहता था।

यहाँ बॉक्स मैं के लिए एक रूपरेखा बनाने जा रहा हूँ:

यहाँ छवि विवरण दर्ज करें

यहाँ बॉक्स के डेटा पत्रक से एक उदाहरण पीसीबी ड्राइंग है:

यहाँ छवि विवरण दर्ज करें

Pcbnew को खोलने के बाद, किनारों के लिए परत का चयन करें। KiCad (BZR4008) के वर्तमान संस्करण में, इसे "Edge.Cuts" कहा जाता है। सबसे पहले, मैं ऊपरी और निचले किनारों को आकर्षित करने जा रहा हूं, जो 62 मिमी हैं। फिर बाएं और दाएं किनारों, जो 32 मिमी हैं। मैं नीचे दिए गए टूल का उपयोग कर रहा हूं जिसमें "ग्राफिक लाइन या बहुभुज जोड़ें" का टूलटिप है।

यहाँ छवि विवरण दर्ज करें

अब सब कुछ ठीक है, मैं अन्य आकृतियों को आकर्षित कर सकता हूं:

यहाँ छवि विवरण दर्ज करें

यहाँ वह उपकरण है जिसका उपयोग हम करने जा रहे हैं:

यहाँ छवि विवरण दर्ज करें

यह उपकरण मूल रूप से एक आंशिक वृत्त है। इसका उपयोग करने के लिए, उस बिंदु पर क्लिक करें जो आपके सर्कल का केंद्र होगा, फिर माउस के साथ, आप KiCad की दृश्य सहायता के साथ त्रिज्या सेट करेंगे। एक बहुत ही उपयोगी चीज कर्सर को बदलना है ताकि यह पूर्ण निर्देशांक दिखाए, नीचे दिए गए बटन के साथ:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

केवल एक उदाहरण के लिए, आइए किनारे का सामना करें:

यहाँ छवि विवरण दर्ज करें

आप दुर्भाग्य से इस पद्धति से सही दीर्घवृत्त नहीं बना सकते हैं। आपको ग्राफिक एंबेडिंग, या इसके लिए सन्निकटन विधियों का उपयोग करना होगा, जिनका उल्लेख निक अलेक्सीव ने किया था।


4

KiCad की बचत अनुग्रह, मेरी राय में, यह है कि इसे बनाने वाली फाइलें मानव-पठनीय हैं और फ़ाइल प्रारूप यथोचित अच्छी तरह से प्रलेखित है। X और Y निर्देशांक एक इंच के दस-हज़ारवें हिस्से में निर्दिष्ट होते हैं, ऊपरी बाएँ में (0,0) के लिए संदर्भित होते हैं। एक बोर्ड की रूपरेखा को रेखाखंडों और अर्धवृत्ताकार आर्क द्वारा दर्शाया जा सकता है।

यह आपकी पसंद की स्क्रिप्टिंग भाषा (जैसे पायथन) का उपयोग करते हुए किकाड की .brd फ़ाइलों में हेरफेर करने के लिए सीधा है। अगर मैं आप होते, तो मैं शायद एक स्क्रिप्ट लिखता जो आपके अण्डाकार रूपरेखा के अनुमानित टुकड़े खंडों की गणना करता और लाइन सेगमेंट को आपकी .brd फ़ाइल में लिखता।


यह वही है जो मैंने किया। धन्यवाद रोब! मैं एक बिट में समाधान का पूरा विवरण पोस्ट करूँगा।
वैल ब्लैंट

4

यह सब जानकारी पचाने में मुझे कुछ दिन लगे, लेकिन मैंने इस समस्या के 2 समाधानों के साथ समाप्त कर दिया। मैं यहाँ दोनों समाधानों का वर्णन करूँगा।

मैं खिचड़ी-उपयोगकर्ता मंच से लोरेंजो और रॉब गिलिओम को धन्यवाद देना चाहता हूं, जिन्होंने मुझे उन सभी विचारों और सूचनाओं के साथ प्रदान किया है जिन्हें मुझे नीचे समाधान ( http://tech.groups.yahoo.com/) को एक साथ रखने की आवश्यकता थी। समूह / किकाड-उपयोगकर्ता / संदेश / 15220 )।

= विकल्प 1 =

यदि आप एक एकल अण्डाकार खंड को आयात करना चाहते हैं और KiCAD में बोर्ड के बाकी हिस्सों को डिजाइन करना चाहते हैं, तो यह रूबी स्क्रिप्ट संभवतः जाने का सबसे आसान तरीका है:

#
# 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_pcbKicad में एक रिक्त फ़ाइल को सहेजें और फिर समापन ब्रेस से पहले अंतिम खंड के बाद इस स्क्रिप्ट द्वारा बनाई गई लाइनें डालें।

KiCAD में नई बोर्ड फ़ाइल खोलें और लाइन सेगमेंट द्वारा प्रक्षेपित अपने दीर्घवृत्त का आनंद लें :)। 256 बिंदुओं का उपयोग करने से दीर्घवृत्त इतना चिकना हो जाता है कि आप यह नहीं बता सकते कि इसमें KiCAD की लाइनें शामिल हैं।

यदि आप दीर्घवृत्त (आपके पीसीबी का एक किनारा, उदाहरण के लिए) का केवल एक भाग चाहते हैं, तो ऊपर दी गई स्क्रिप्ट में एक बाउंडिंग बॉक्स जोड़ना और बॉक्स के बाहर झूठ बोलने वाले सभी बिंदुओं को छोड़ना तुच्छ है।


= विकल्प 2 =

एक और तरीका यह होगा कि आप अपने बोर्ड को पूरी तरह से इंकस्केप (या कुछ और जो वेक्टर ग्राफिक्स एक्सपोर्ट कर सकते हैं) को डिजाइन करें, और किएकेएडी में आयात करने का तरीका खोजें।

लोरेंजो ने एक समाधान प्रदान किया है जो इंक्सस्केप से गेरबर तक जा सकता है: http://tech.groups.yahoo.com/group/kicad-users/message/15229

मैं तब रूबी स्क्रिप्ट बनाने के लिए लोरेंजो के समाधान पर निर्माण करने में सक्षम था जो गेरबर चरण को बायपास करता है और सीधे KiCAD बोर्ड फ़ाइल लाइनों को उत्पन्न करता है।

प्रक्रिया इस प्रकार है:

  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 द्वारा bezier splines से लाइन सेगमेंट में कनवर्ट करने की सभी कड़ी मेहनत की जाती है।

= विकल्प 2 सीमाएँ =

इस दृष्टिकोण के साथ कुछ सीमाएँ हैं:

  1. ऐसा लगता है कि इंकस्केप HPGL में आयतों को निर्यात नहीं कर सकता है। आप स्पष्ट रूप से अपने स्वयं के आयतों का निर्माण करके इसे हल कर सकते हैं।
  2. मैं वर्तमान में निर्यात की गई वस्तुओं के आकार को ठीक से प्राप्त करने में सक्षम नहीं हूं। वस्तुएं KiCAD में लगभग दोगुनी बड़ी होती हैं। मैं जल्द ही इसके समाधान पर काम करूंगा।

3

मुझे थोड़ी देर पहले कीकड के साथ भी ऐसी ही समस्या थी, इसे कभी भी गैर मानक आकृतियों के लिए सीमित समर्थन मिला है या यह केवल अच्छी तरह से प्रलेखित नहीं है। मैंने जो काम किया, वह जिम्प के साथ अपना आकार (मेरे मामले में गैर मानक पैड) बना रहा था और इसे उपकरण में निर्मित का उपयोग करके एक मॉड्यूल में परिवर्तित कर रहा था। मैंने तब इस मॉड्यूल फ़ाइल को खोला और परत को तांबे की परतों में बदल दिया। इसे वापस Kicad में खोलें और आपके पास किसी भी परत पर आपकी पसंद के गैर-मानक आकार हैं। आदर्श नहीं है लेकिन यह काम करता है।


कदम:

  1. जिम्प में ड्राइंग बनाएं
  2. इसे एक घटक में बदलने के लिए Kicad के साथ शामिल बिटमैप 2 कॉम्पोनेंट का उपयोग करें
  3. मॉड्यूल को gedit / नोटपैड में खोलें और निम्न दस्तावेज़ के अनुसार परत की जानकारी संपादित करें (धारा 3.4):

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

4. परिवर्तन करें और मॉड्यूल को Pcbnew में खोलें

परिणाम (सोल्डरमास्क द्वारा कवर नहीं किया जाने वाला गोलाकार किनारे बनाने के किसी अन्य तरीके के बारे में नहीं सोच सकता है, यह वास्तव में इसके साथ घटकों के साथ एक एसएमडी पैड है:)

यहाँ छवि विवरण दर्ज करें


हम्म - यह एक दिलचस्प दृष्टिकोण की तरह दिखता है, लेकिन मुझे यकीन नहीं है कि आपके द्वारा "इस मॉड्यूल फ़ाइल को खोलने और तांबे की परतों में परत को बदल दिया" से क्या मतलब है। मुझे लगा कि पैड में मॉड्यूल के बजाय एक टारगेट लेयर होती है। क्या आप अपनी पसंद की परत पर एक वास्तविक आरेखण के लिए वांछित आकार के एक मॉड्यूल से जाने पर थोड़ा विस्तार कर सकते हैं? धन्यवाद!
वैल ब्लैंट

उत्तर अपडेट किया गया।
s3c

1
आप केवल सर्कल टूल द्वारा एक गोलाकार किनारे बना सकते हैं, फिर, चूंकि क्षेत्र पहले से ही तांबे से भरा है, आप एक सर्कल खींचकर मिलाप मास्क को हटा सकते हैं लेकिन इस बार फ्रंट मास्क परत पर।
अब्दुल्लाह कहरामन

यह एक बहुत अच्छा सुझाव है, मैं एक मॉड्यूल चाहता था जिसे मैं जल्दी से विभिन्न डिजाइनों में छोड़ सकता था, लेकिन लगता है कि दोनों काम करेंगे। +1
s3c

1

मैंने ORCAD, ईगल, अल्टियम के साथ काम किया है। KiCAD के साथ काम नहीं किया। तो, निम्नलिखित एक शिक्षित अनुमान है।

आमतौर पर, लेआउट प्रोग्राम में गोलाकार आर्क को खींचने के लिए कार्य होते हैं, लेकिन दीर्घवृत्त खींचने के लिए अंतर्निहित फ़ंक्शन नहीं होते हैं। आप परिपत्र चाप ( अधिक यहां ) के साथ एक दीर्घवृत्त का अनुमान लगा सकते हैं । आप प्रारूपण कार्यक्रम के साथ एक दीर्घवृत्त भी खींच सकते हैं और एक DXF को लेआउट प्रोग्राम में आयात करने का प्रयास कर सकते हैं (यह नहीं जानते कि KiCAD इसका समर्थन कैसे कर सकता है)।

अंत में, पीसीबी फैब, शायद, लगभग पॉलीगॉन के साथ घटता घटता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.