यह सब जानकारी पचाने में मुझे कुछ दिन लगे, लेकिन मैंने इस समस्या के 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_pcb
Kicad में एक रिक्त फ़ाइल को सहेजें और फिर समापन ब्रेस से पहले अंतिम खंड के बाद इस स्क्रिप्ट द्वारा बनाई गई लाइनें डालें।
KiCAD में नई बोर्ड फ़ाइल खोलें और लाइन सेगमेंट द्वारा प्रक्षेपित अपने दीर्घवृत्त का आनंद लें :)। 256 बिंदुओं का उपयोग करने से दीर्घवृत्त इतना चिकना हो जाता है कि आप यह नहीं बता सकते कि इसमें KiCAD की लाइनें शामिल हैं।
यदि आप दीर्घवृत्त (आपके पीसीबी का एक किनारा, उदाहरण के लिए) का केवल एक भाग चाहते हैं, तो ऊपर दी गई स्क्रिप्ट में एक बाउंडिंग बॉक्स जोड़ना और बॉक्स के बाहर झूठ बोलने वाले सभी बिंदुओं को छोड़ना तुच्छ है।
= विकल्प 2 =
एक और तरीका यह होगा कि आप अपने बोर्ड को पूरी तरह से इंकस्केप (या कुछ और जो वेक्टर ग्राफिक्स एक्सपोर्ट कर सकते हैं) को डिजाइन करें, और किएकेएडी में आयात करने का तरीका खोजें।
लोरेंजो ने एक समाधान प्रदान किया है जो इंक्सस्केप से गेरबर तक जा सकता है: http://tech.groups.yahoo.com/group/kicad-users/message/15229
मैं तब रूबी स्क्रिप्ट बनाने के लिए लोरेंजो के समाधान पर निर्माण करने में सक्षम था जो गेरबर चरण को बायपास करता है और सीधे KiCAD बोर्ड फ़ाइल लाइनों को उत्पन्न करता है।
प्रक्रिया इस प्रकार है:
- Inkscape में अपना बोर्ड डिज़ाइन करें
- HPGL को निर्यात करें
- कन्वर्ट HPGL को GnuPlot Ascii:
hp2xx -t -m gpt file.hpgl
- बोर्ड फ़ाइल लाइनें बनाएं:
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 सीमाएँ =
इस दृष्टिकोण के साथ कुछ सीमाएँ हैं:
- ऐसा लगता है कि इंकस्केप HPGL में आयतों को निर्यात नहीं कर सकता है। आप स्पष्ट रूप से अपने स्वयं के आयतों का निर्माण करके इसे हल कर सकते हैं।
- मैं वर्तमान में निर्यात की गई वस्तुओं के आकार को ठीक से प्राप्त करने में सक्षम नहीं हूं। वस्तुएं KiCAD में लगभग दोगुनी बड़ी होती हैं। मैं जल्द ही इसके समाधान पर काम करूंगा।