1394/04/20

همونطوریکه میدونید PCB2Altium یه نرم افزار تبدیل فرمته که اولین بار مهندس حمید رستمی اونو به زبان پایتون نوشتن و نسخه اولیه اون فایلهای نرم افزار رایگان طراحی فیبر مدار چاپی (PCB) رو به پروتل (Protel 99) تبدیل میکرد. من این اسکریپت رو زمانی پیدا کردم که دنبال یه برنامه ای می گشتم تا خروجی Kicad رو به پروتل یا آلتیوم تبدیل کنه. مشکل از اینجا شروع شده بود که برای تولید پروگرامر STK200/300 به صورت انبوه مجبور بودم فایل خودم رو که با Kicad کشیده بودم به یکی از فرمت های قابل قبول شرکت های تولید انبوه برد تبدیل کنم و فرمت های تمام شرکت ها هم یا پروتل بود یا آلتیوم دی ایکس پی (Protel, Altium DXP). به همین خاطر حاضر شدم حتی طرحم رو دوباره تو هر نرم افزاری که قابلیت اکسپورت فایل به یکی از نرم افزارهای تجاری رو داشته باشه بکشم. یعنی حل کردن سوال از جواب بجای حل کردن از صورت مساله! (هر نرم افزار طراحی برد رایگان -> اسکریپت مبدل به پروتل یا آلتیوم -> مشاهده پیش نمایش)

دنبال نرم افزار فرضی با این اسم بودم convert to protel یا pcb2protel و از این قبیل. تو همین سرچ ها بود که اسکریپت pcb2paf.py رو تو گیت هاب پیدا کردم که فایلهای نرم افزار pcb رو که یه نرم افزار رایگان طراحی برد مدار چاپی هست (pcb یکی از زیر مجموعه های geda-project بشمار میره، خود گدا پراجکت هم مخفف gEDA هست یعنی ترکیب GPL و EDA که GPL به نرم افزارهای رایگان و اوپن سورس گفته میشه و EDA مخفف Electronic Design Automation هست و اینا گروهی هستن که درحال ساختن یه مجموعه رایگان از نرم افزارهای طراحی شماتیک و برد و تحلیل و غیره هستن) به فرمت paf تبدیل می کرد. paf هم مخفف protel ASCII file هست.

تقریباً مشکل حل شده بود چون مبدل رو پیدا کرده بودم و با پروتل 99 هم آشنایی داشتم و میشد فایلهای پروتل رو با نسخه آزمایشی پروتل مشاهده کرد ولی مشکل بعدی نرم افزار pcb بود. خوشبختانه PCB هم زیاد سخت نبود و با توجه به اینکه هیچ منبع فارسی آموزشی در موردش نبود میشد از روی منابع خارجی کار با اون رو یاد گرفت. مشکل بعدی یادگیری زبان پایتون بود چون کار با اسکریپت مبدل PCB به Protel نیاز با یادگیری این زبان و نصب پایتون روی سیستم داشت که با وجود منابع آموزشی فراوان میشد با این زبان آشنا شد. ولی این کارها یعنی یادگیری یه نرم افزار و یه زبان برنامه نویسی برای یه فرد مبتدی که فقط قصد داره یه برد طراحی کنه ممکنه کمی خسته کننده باشه. برای همین تصمیم گرفتم که نسخه تحت ویندوز این مبدل رو طراحی کنم و اتفاقاً در همین مواقع بود که از طریق سایت یزد کیت با نسخه رایگان Altium Viewer آشنا شدم که شرکت Altium برای مشاهده فایلهای PCBdoc منتشر کرده بود. با وجود این نرم افزار رایگان دیگه نیازی به پروتل آزمایشی هم نبود و خوبی این نرم افزار این بود که یه جورایی ادامه همون پروتل 99 بود و حداقل از فرمت Protel ASCII File که یه فرمت متنی برای ذخیره فایل های برد هست پشتیبانی میکرد.

نرم افزار PCB2Altium حاصل داستان بالا بود که الان نسخه 1.1 اون بصورت رایگان منتشر شده و این ورژن جدید (تابستان 94) از قطعات SMD هم پشتیبانی می کنه. نوشتن برنامه های تبدیل فرمت واقعاً کار دشواریه، چون باید در خصوص فرمت هر دو نرم افزار مبداً و مقصد اطلاعات کافی جمع کرد و با رعایت تمام حالت ها و استثناها کد رابط رو نوشت. این بخش SMD واقعاً عذاب آور بود چون PCB برای Pad های SMD یه خط در نظر میگیره که دو تا مختصات مبدا و مقصد داره و پد در راستای خط کشیده میشه و پدهای مستطیلی اینطوری ایجاد میشن که خط طولانی تر میشه ولی پروتل بجای خط، پد رو یه مستطیل با x و y در نظر میگیره که مرکز اون دقیقاً وسطشه. حالا باید برای تبدیل فرمت اول بفهمیم که خط عمودی یا افقیه(از روی برابر بودن x ها یا y ها) و بعدش طول خط رو بدست بیاریم (با قدر مطلق، چون مختصات دو سر خط فرضی، نسبی هستن و در یک محور مختصات فرضی قرار دارن که مرکز اون محور مرکز قطعه هست) وبعدش اگه پد افقی بود مرکز پد جدید میشه موقعیت x قطعه + موقعیت x نسبی پد نسبت به مرکز قطعه + نصف طول خط (چون پروتل مرکز پد، رو به عنوان مرکز میگیره ولی PCB گوشه سمت چپ یا همون x1 و y1 رو) و اگه قطعه عمودی باشه باید مرکز جدید رو از طول نصف خط فرضی داخل پد کم کنیم تا پد در جای صحیح خودش قرار بگیره! ولی بازم دم مهندس رستمی گرم که این کارو شروع کرد و کد پایه رو با پایتون نوشت، اینقدر اصولی نوشته که بعد از تبدیل به ویژوال بیسیک هم براحتی میشه اونو توسعه داد.









این نرم افزار رو با Visual Basic 2010 Express نوشتیم که سورسش هم در کنار فایل اصلی موجوده و می تونید بررسی کنید. به نظر من ترکیب PCB با PCB2Altium و Altuim Viewer بهترین ترکیب ممکن برای طراحی برد مدار چاپی و ارائه اون به شرکت های تولید برد در ایران هست چون اولاً تمام این سه نرم افزار رایگان هستن و ثانیاً برای کشیدن برد از نرم افزار فوق العاده ساده و سبک PCB استفاده میشه و طراح درگیر نرم افزار تجاری و مشکل Altium نمیشه، هر چند اگه یادگیری Altium مشکل هم نباشه رایگان نیست و حتی اگه طراح ایرانی حاضر باشه نسخه اصلی رو بخره بخاطر تحریم نمیتونه!






در کل به عنوان یه طراح برد های الکترونیکی برای شروع به کار و کشیدن برد مدار چاپی باید کارهای زیر رو به ترتیب انجام بدید:
1- دانلود نرم افزار PCB
2- دانلود نرم افزار PCB2Altium نسخه 1.1 برای تبدیل PCB به Altium
3- دانلود Dot Net 4 برای اجرای PCB2Altium
4- دانلود Altium Viewer Free برای مشاهده فایلهای آلتیوم
5- دانلود PDF آموزش طراحی برد در PCB و نحوه تبدیل و نحوه پرینت در آلتیوم.


© 2009-2016 AVR64.com