এই সমস্ত তথ্য হজম করতে আমার কয়েক দিন সময় লেগেছে, তবে আমি এই সমস্যার 2 টি সমাধান দিয়ে শেষ করেছি। আমি উভয় সমাধান এখানে বর্ণনা করব।
আমি কিক্যাড-ব্যবহারকারীদের ফোরামের লরেঞ্জো এবং রব গিলিওমকে ধন্যবাদ জানাতে চাই, যারা নীচে সমাধানগুলি একসাথে রাখার জন্য আমার প্রয়োজনীয় সমস্ত ধারণাগুলি এবং তথ্য সরবরাহ করেছেন ( http://tech.groups.yahoo.com/ গ্রুপ / কিক্যাড-ব্যবহারকারী / বার্তা / 15220 )।
= বিকল্প 1 =
আপনি যদি কোনও একক উপবৃত্তাকার অংশটি আমদানি করতে চান এবং কিিক্যাডে বাকী বোর্ডটি ডিজাইন করতে চান তবে এই রুবি স্ক্রিপ্টটি সম্ভবত সবচেয়ে সহজতম উপায়:
#
# 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
কেবলাডে একটি ফাঁকা ফাইল সংরক্ষণ করুন এবং তারপরে বন্ধনী বন্ধনীটির আগে শেষ বিভাগের পরে এই স্ক্রিপ্টটির দ্বারা উত্পন্ন লাইনগুলি সন্নিবেশ করান।
কিসিএডে নতুন বোর্ড ফাইলটি খুলুন এবং লাইন বিভাগ দ্বারা বিভক্ত আপনার উপবৃত্তটি উপভোগ করুন :)। 256 পয়েন্ট ব্যবহার করে উপবৃত্তটি এতটাই মসৃণ হয় যে আপনি এটি বলতে পারবেন না যে এটি কিক্যাডে লাইন নিয়েছে।
আপনি যদি উপবৃত্তের একটি অংশ চান (উদাহরণস্বরূপ আপনার পিসিবি এর একটি প্রান্ত), তবে উপরের স্ক্রিপ্টে একটি বাউন্ডিং বক্স যুক্ত করা এবং বাক্সের বাইরে থাকা সমস্ত পয়েন্ট বাতিল করা তুচ্ছ।
= বিকল্প 2 =
আর একটি পদ্ধতি হ'ল আপনার বোর্ডটি পুরোপুরি ইনসক্যাপে ডিজাইন করা (বা অন্য কোনও কিছু যা ভেক্টর গ্রাফিক্স রফতানি করতে পারে), এবং এটি কিসিএডি-তে আমদানির কোনও উপায় আবিষ্কার করবে।
লরেঞ্জো এমন একটি সমাধান সরবরাহ করেছেন যা এখানে ইনস্কেপ থেকে গারবারে যেতে পারে: http://tech.groups.yahoo.com/group/kicad-users/message/15229
জারবার স্টেজকে বাইপাস করে সরাসরি কিসিএডি বোর্ড ফাইল লাইন উত্পন্ন করে এমন রুবি স্ক্রিপ্ট তৈরি করার জন্য আমি তখন লরেঞ্জোর সমাধানটি তৈরি করতে সক্ষম হয়েছি।
প্রক্রিয়াটি এরকম হয়:
- ইনসকেপে আপনার বোর্ডটি ডিজাইন করুন
- এইচপিজিএলে রফতানি করুন
- এইচপিজিএলকে জ্ঞানপ্ল্লট এস্কিতে রূপান্তর করুন:
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-তে, উত্পন্ন লাইনগুলি একটি খালি বোর্ড ফাইলগুলিতে যায় যা কিসিএডে সংরক্ষণ করা হয়।
এই সমাধানটি এইচপিজিএল ফর্ম্যাটটি গেরবার ফাইলগুলির সাথে এটির নির্মাণের সাথে অত্যন্ত মিল বলে মনে করে, এটি "পেন আপ" বা "পেন ডাউন" এর সাথে সমন্বিত একটি সিরিজ যা গের্বারের D01 এবং D02 কোডের সাথে মিলে যায়।
সুতরাং বেজিয়ার স্প্লাইনগুলি থেকে লাইন বিভাগে রূপান্তর করার সমস্ত কঠোর পরিশ্রম ইনকস্কেপ এক্ষেত্রে সম্পন্ন করে।
= বিকল্প 2 সীমাবদ্ধতা =
এই পদ্ধতির সাথে কয়েকটি সীমাবদ্ধতা রয়েছে:
- দেখে মনে হচ্ছে যে ইনসকেপ এইচপিজিএলে আয়তক্ষেত্রগুলি রফতানি করতে পারে না। আপনি নিজের আয়তক্ষেত্রগুলি তৈরি করে স্পষ্টতই এটিকে কাজে লাগাতে পারেন।
- আমি বর্তমানে রফতানি করা সামগ্রীর আকারগুলি সঠিকভাবে পেতে সক্ষম নই। কিক্যাডে প্রায় দ্বিগুণ পরিমাণে অবজেক্টগুলি শেষ হয়। আমি শীঘ্রই এর একটি সমাধান নিয়ে কাজ করব।