PROTEL和DXP都能够生成pcb文件的三维预览图。\n通过这个功能,可以大概预览pcb板的实际形状。\n如下图: \n[img[images|3dprev.JPG]]\n----\n这为经过旋转的三维图像,是不是很形象呢?\n操作方法为按下键盘V,再按下键盘3,即V3。
BOM清单(物料清单),即为pcb板上将用的物料,诸如IC,杂散元件等。\nDXP支持多种格式物料清单输出,如excel,txt,html等。\n常用和方便编辑的格式为excel,这里以excel格式物料清单输出为例说明。\n操作方法为:报告\sBill of materials\n[img[images|bom.JPG]]
// //''Name:'' Calendar plugin\n// //''Version:'' <<getversion calendar>> (<<getversiondate calendar "DD MMM YYYY">>)\n// //''Author:'' SteveRumsby\n\n// //''Syntax:'' \n// //<<{{{calendar}}}>> or <<{{{calendar //year//}}}>> or << {{{calendar //year month//}}}>> or <<{{{calendar thismonth}}}>>\n\n// //''Description:'' \n// //The first form produces an full-year calendar for the current year. The second produces a full-year calendar for the given year. The third produces a single month calendar for the given month and year. The fourth form produces a single month calendar for the current month.\n// // Weekends and holidays are highlighted (see below for how to specify holdays).\n\n// //''Todo:''\n// //* Improve the formatting, especially when included in MainMenu\n// //* Find a better way of specifying holidays. It would be good to support calculated dates (e.g. Easter), and dates for different countries.\n// //* Add browsing facilities like jscalendar has\n// //* Highlight "today", if visible...\n// //* Integrate with the ReminderMacros\n\n// //''Configuration:''\n// //Modify this section to change the text displayed for the month and day names, to a different language for example. You can also change the format of the tiddler names linked to from each date, and the colours used.\n\nconfig.macros.calendar = {};\n\nconfig.macros.calendar.monthnames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];\nconfig.macros.calendar.daynames = ["M", "T", "W", "T", "F", "S", "S"];\n\nconfig.macros.calendar.weekendbg = "#c0c0c0";\nconfig.macros.calendar.monthbg = "#e0e0e0";\nconfig.macros.calendar.holidaybg = "#ffc0c0";\n\n// //''Code section:''\n// (you should not need to alter anything below here)//\n\nconfig.macros.calendar.tiddlerformat = "0DD/0MM/YYYY"; // This used to be changeable - for now, it isn't// <<smiley :-(>> \n\nversion.extensions.calendar = { major: 0, minor: 2, revision: 0, date: new Date(2005, 07, 21)};\nconfig.macros.calendar.monthdays = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nconfig.macros.calendar.holidays = [ "01/01", "25/12", "03/01/2005", "02/05/2005", "30/05/2005", "29/08/2005" ];\n\nfunction calendarIsHoliday(date)\n{\n var longHoliday = date.formatString("0DD/0MM/YYYY");\n var shortHoliday = date.formatString("0DD/0MM");\n\n for(var i = 0; i < config.macros.calendar.holidays.length; i++) {\n if(config.macros.calendar.holidays[i] == longHoliday || config.macros.calendar.holidays[i] == shortHoliday) {\n return true;\n }\n }\n return false;\n}\n\nconfig.macros.calendar.handler = function(place,macroName,params)\n{\n var calendar = createTiddlyElement(place, "table", null, "calendar", null);\n\n if(params[0] == "thismonth") {\n var today = new Date();\n createCalendarOneMonth(calendar, today.getYear()+1900, today.getMonth());\n } else {\n var year;\n if(params[0]) {\n year = params[0];\n } else {\n year = (new Date()).getYear() + 1900;\n }\n\n if(params[1]) {\n var month = params[1] -1;\n createCalendarOneMonth(calendar, year, month);\n } else {\n createCalendarYear(calendar, year);\n }\n }\n}\n\nfunction createCalendarOneMonth(calendar, year, mon)\n{\n var row = createTiddlyElement(calendar, "tr", null, null, null);\n createCalendarMonthHeader(row, config.macros.calendar.monthnames[mon] + " " + year, true);\n row = createTiddlyElement(calendar, "tr", null, null, null);\n createCalendarDayHeader(row, 1);\n createCalendarDayRowsSingle(calendar, year, mon);\n}\n\n\nfunction createCalendarMonth(calendar, year, mon)\n{\n var row = createTiddlyElement(calendar, "tr", null, null, null);\n createCalendarMonthHeader(row, config.macros.calendar.monthnames[mon] + " " + year, false);\n row = createTiddlyElement(calendar, "tr", null, null, null);\n createCalendarDayHeader(row, 1);\n createCalendarDayRowsSingle(calendar, year, mon);\n}\n\nfunction createCalendarYear(calendar, year)\n{\n var row;\n\n row = createTiddlyElement(calendar, "tr", null, null, null);\n var yearHeader = createTiddlyElement(row, "td", null, "calendarYear", year);\n yearHeader.align = "center";\n yearHeader.setAttribute("colSpan", 21);\n\n createCalendarMonthRow(calendar, year, 0);\n createCalendarMonthRow(calendar, year, 3);\n createCalendarMonthRow(calendar, year, 6);\n createCalendarMonthRow(calendar, year, 9);\n}\n\nfunction createCalendarMonthRow(cal, year, mon)\n{\n var row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarMonthHeader(row, config.macros.calendar.monthnames[mon]);\n createCalendarMonthHeader(row, config.macros.calendar.monthnames[mon+1]);\n createCalendarMonthHeader(row, config.macros.calendar.monthnames[mon+2]);\n row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarDayHeader(row, 3);\n createCalendarDayRows(cal, year, mon);\n}\n\nfunction createCalendarMonthHeader(row, name, nav)\n{\n var month;\n if(nav) {\n var back = createTiddlyElement(row, "td", null, null, null);\n createTiddlyButton(back, "<", "Back", onClickCalendarBack)\n back.align = "center";\n back.style.background = config.macros.calendar.monthbg; \n month = createTiddlyElement(row, "td", null, "calendarMonthname", name)\n month.setAttribute("colSpan", 5);\n var fwd = createTiddlyElement(row, "td", null, null, null);\n createTiddlyButton(fwd, ">", "Fwd", onClickCalendarFwd)\n fwd.align = "center";\n fwd.style.background = config.macros.calendar.monthbg; \n } else {\n month = createTiddlyElement(row, "td", null, "calendarMonthname", name)\n month.setAttribute("colSpan", 7);\n }\n month.align = "center";\n month.style.background = config.macros.calendar.monthbg;\n}\n\nfunction onClickCalendarBack(e)\n{\n\n}\n\nfunction onClickCalendarFwd(e)\n{\n\n}\n\nfunction createCalendarDayHeader(row, num)\n{\n var cell;\n for(var i = 0; i < num; i++) {\n for(var j = 0; j < 7; j++) {\n cell = createTiddlyElement(row, "td", null, null, config.macros.calendar.daynames[j]);\n if(j > 4) cell.style.background = config.macros.calendar.weekendbg;\n }\n }\n}\n\nfunction createCalendarDays(row, col, first, max, year, mon)\n{\n var i;\n for(i = 0; i < col; i++) {\n createTiddlyElement(row, "td", null, null, null);\n }\n var day = first;\n for(i = col; i < 7; i++) {\n var daycell = createTiddlyElement(row, "td", null, null, null);\n if(i > 4) daycell.style.background = config.macros.calendar.weekendbg;\n if(day > 0 && day <= max) {\n var celldate = new Date(year, mon, day);\n var title = celldate.formatString(config.macros.calendar.tiddlerformat);\n if(calendarIsHoliday(celldate)) {\n daycell.style.background = config.macros.calendar.holidaybg;\n }\n if(window.findTiddlersWithReminders == null) {\n var link = createTiddlyLink(daycell, title, false);\n link.appendChild(document.createTextNode(day));\n } else {\n var button = createTiddlyButton(daycell, day, title, onClickCalendarDate);\n }\n }\n day++;\n }\n}\n\n// //We've clicked on a day in a calendar - create a suitable pop-up of options.\n// //The pop-up should contain:\n// // * a link to create a new entry for that date\n// // * a link to create a new reminder for that date\n// // * an <hr>\n// // * the list of reminders for that date\nfunction onClickCalendarDate(e)\n{\n var button = this;\n var date = button.getAttribute("title");\n var dat = new Date(date.substr(6,4), date.substr(3,2)-1, date.substr(0, 2));\n\n date = dat.formatString(config.macros.calendar.tiddlerformat);\n var popup = createTiddlerPopup(this);\n popup.appendChild(document.createTextNode(date));\n var newReminder = function() {\n var t = store.tiddlers[date];\n displayTiddler(null, date, 2, null, null, false, false);\n if(t) {\n document.getElementById("editorBody" + date).value += "\sn<<reminder day:" + dat.getDate() +\n " month:" + (dat.getMonth()+1) +\n " year:" + (dat.getYear()+1900) + " title: >>";\n } else {\n document.getElementById("editorBody" + date).value = "<<reminder day:" + dat.getDate() +\n " month:" + (dat.getMonth()+1) +\n " year:" + (dat.getYear()+1900) + " title: >>";\n }\n };\n var link = createTiddlyButton(popup, "New reminder", null, newReminder); \n popup.appendChild(document.createElement("hr"));\n\n var t = findTiddlersWithReminders(dat, 0, null, null);\n for(var i = 0; i < t.length; i++) {\n link = createTiddlyLink(popup, t[i].tiddler, false);\n link.appendChild(document.createTextNode(t[i].tiddler));\n }\n\n}\n\nfunction calendarMaxDays(year, mon)\n{\n var max = config.macros.calendar.monthdays[mon];\n if(mon == 1 && (year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0)) {\n max++;\n }\n return max;\n}\n\nfunction createCalendarDayRows(cal, year, mon)\n{\n var row = createTiddlyElement(cal, "tr", null, null, null);\n\n var first1 = (new Date(year, mon, 1)).getDay() -1;\n if(first1 < 0) first1 = 6;\n var day1 = -first1 + 1;\n var first2 = (new Date(year, mon+1, 1)).getDay() -1;\n if(first2 < 0) first2 = 6;\n var day2 = -first2 + 1;\n var first3 = (new Date(year, mon+2, 1)).getDay() -1;\n if(first3 < 0) first3 = 6;\n var day3 = -first3 + 1;\n\n var max1 = calendarMaxDays(year, mon);\n var max2 = calendarMaxDays(year, mon+1);\n var max3 = calendarMaxDays(year, mon+2);\n\n while(day1 <= max1 || day2 <= max2 || day3 <= max3) {\n row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;\n createCalendarDays(row, 0, day2, max2, year, mon+1); day2 += 7;\n createCalendarDays(row, 0, day3, max3, year, mon+2); day3 += 7;\n }\n}\n\nfunction createCalendarDayRowsSingle(cal, year, mon)\n{\n var row = createTiddlyElement(cal, "tr", null, null, null);\n\n var first1 = (new Date(year, mon, 1)).getDay() -1;\n if(first1 < 0) first1 = 6;\n var day1 = -first1 + 1;\n var max1 = calendarMaxDays(year, mon);\n\n while(day1 <= max1) {\n row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;\n }\n}\n\nsetStylesheet("#mainMenu table, th, tr, td {font-size:10pt;}", "calendarStyles");
[[基本介绍]]\n[[编辑环境通用操作]]\n[[建立项目相关]]\n[[原理图编辑相关]]\n[[PCB绘制相关]]\n[[库文件相关]]\n
[[欢迎]]\n[[使用方法]]
[[下载地址|http://westfrog.googlepages.com/soft]]\n''非常棒的一个网页浏览器,听说IE的开发者都使用这款安全,无广告干扰的浏览器,强烈推荐大家下载使用。''
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:\n* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)\n* MainMenu: The menu (usually on the left)\n* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened\nYou'll also need to enter your username for signing your edits: <<option txtUserName>>
TiddlyWiki\n----\n[[欢迎]]\n[[概念]]\n[[DXP]]\n[[基本介绍]]\n[[通用操作|编辑环境通用操作]]\n[[建立项目|建立项目相关]]\n[[原理图编辑|原理图编辑相关]]\n[[PCB绘制|PCB绘制相关]]\n[[库文件相关]]\n[[其他]]\n----\n[[关于本站]]\n[[留言板]]\n[[RSS|http://kwtswg.googlepages.com/index.xml]]\n[[后台|http://page.google.com/]]\n----\n© Westfrog\nversion <<version>>\n----\n常用链接表 \n[[Google |http://www.google.com]]\n[[Baidu搜|http://www.baidu.com]]\n[[sina新闻|http://www.sina.com]]\n[[sina博客|http://blog.sina.com.cn/main/]]\n[[126邮箱|http://www.126.com]]\n[[sohu中文|http://www.sohu.com]]\n[[hao123|http://www.hao123.com]]\n----\n芯片资料查询\n<html>\n<!-- Alldatasheet Search -->\n<form action="http://www.alldatasheet.com/view.jsp" method="post" target="_blank">\n <table width="140" height="71" border="0" cellspacing="0" cellpadding="0" background="http://www.alldatasheet.com/banner/bg0.gif">\n <tr><td height="30"></td></tr>\n <tr><td align="center"> \n <input type="text" size="11" name="sSearchword"style="border:solid 1; border-color:#31659C;background-color:#ffffff; color:#333333;height:20px;"> \n <input type="submit" value="Go" name="action" style="border:solid 1; border-color:#31659C;background-color:#ffffff; color:#31659C;height:20px;"> \n </td>\n </tr>\n</table>\n<input type="hidden" name="sChk"> \n</form><!-- Alldatasheet Search -->\n</html> \n----\n<html>\n<form method="get" action="http://www.iciba.com/search"\ntarget="_blank">\n<input name="s" id="s" type="text" size="21" style="height:20px;"\naccesskey="c" title="查词热键:alt+c" /> <input type="submit"\nvalue="金山词霸" style="color:#000000;padding:0px 0px 0px 0px;margin:0 0 0\n0;font-weight:" /></form>\n</html> \n
/*\n!Profile\n''功能:''界面简体中文翻译\n''翻译:''[[JJason|mailto:Jiangzhanyong@gmail.com]]\n''版本:''1.0.3(2006/04/24)\n''TiddlyWiki版本:''2.0.10\n!修改历史\n''1.0.3(2006/04/24):''\n*英文版更新至2.0.10。\n*本版本采用了台湾 [[Bram Chen|http://ptw.sf.net/]] 的简体中文翻译,仅对个别词汇依照大陆习惯进行了调整。感谢 Bram Chen 对 TiddlyWiki 社区作出的贡献。\n''1.0.2 (2005/10/24):''\n*英文版更新至1.2.36。\n*更正一些细节上的错误。\n''1.0.1(2005/10/14):''\n*英文版更新至1.2.35。采取模块化方式翻译,以利于维护。\n''1.0.0(2005/10/12):''\n*第一次译出,自用。转译自[[Roberto Tjang|http://linshi.twbbs.org/usr/m/milchflasche/TiddlyWiki.html]]之繁体中文版。\n*/
主要用于原理图绘制\n这个软件基本上是最通用的原理图编辑软件\n它的pcb编辑并不是太常用\n[[ORCAD库介绍]]\n[[ORCAD TIPS]]
CTRL+E 非常方便编辑元件管脚,特别是在建立原理图符号时。
1' AMPLIFIER.OLB共182个零件,存放模拟放大器IC,如CA3280,TL027C,EL4093等。\n2' ARITHMETIC.OLB共182个零件,存放逻辑运算IC,如TC4032B,74LS85等。\n3' ATOD.OLB共618个零件,存放A/D转换IC,如ADC0804,TC7109等。\n4' BUS DRIVERTRANSCEIVER.OLB共632个零件,存放汇流排驱动IC,如74LS244,74LS373等数字IC。\n5' CAPSYM.OLB共35个零件,存放电源,地,输入输出口,标题栏等。\n6' CONNECTOR.OLB共816个零件,存放连接器,如4 HEADER,CON AT62,RCA JACK等。\n7' COUNTER.OLB共182个零件,存放计数器IC,如74LS90,CD4040B。\n8' DISCRETE.OLB共872个零件,存放分立式元件,如电阻,电容,电感,开关,变压器等常用零件。\n9' DRAM.OLB共623个零件,存放动态存储器,如TMS44C256,MN41100-10等。\n10' ELECTRO MECHANICAL.OLB共6个零件,存放马达,断路器等电机类元件。\n11' FIFO.OLB共177个零件,存放先进先出资料暂存器,如40105,SN74LS232。\n12' FILTRE.OLB共80个零件,存放滤波器类元件,如MAX270,LTC1065等。\n13' FPGA.OLB存放可编程逻辑器件,如XC6216/LCC。\n
pcb文件绘制完成之后,千万不要以为工作结束了,这个时候还有非常重要的一步需要完成。\n即后期库文件处理。\n在你绘制pcb文件过程中,用到了许多器件封装,这些封装来自于DXP各个分散的库。\n我们通过后期库文件处理,将这些封装统一到一个库文件中,方便于以后修改。\n操作方法为:设计/生成pcb库\n点击这个菜单后,会自动生成一个库文件,并且默认打开,这个时候我们点击保存库文件,即可保存到项目中。\n当我们需要修改某个器件的封装时,我们无须更改原理图,直接更改库,并更新至pcb。\n操作方法如图: \n[img[images|updatelib.JPG]]\n
[[建立PCB]]\n[[板框绘制及导入]]\n[[网络表导入]]\n[[板层定义]]\n[[摆放元件]]\n[[规则设定]]\n[[网络布线]]\n[[铺铜处理]]\n[[pcb注释编号]]\n[[更新到SCH]]\n[[3D预览图]]\n[[后期处理]]\n[[PCB后期库文件处理]]
这里所说的库文件处理是指原理图库文件的处理,即原理图符号的处理。\n在我们绘制sch的过程中,可能碰到许多元件不是dxp本身带有的,这个时候就需要我们创建原理图符号。\n原理图符号一般存储与schlib文件中,我们可以保存好我们创建的这个schlib,以便再次使用及[[编辑|编辑元件 ]]。\n----\n我个人的习惯是,不管dxp本身库文件是否带有我们需要的原理图符号,在项目图绘制完成后,我都使用dxp生成一个项目库。\n在这个项目库中,包含了我所设计的sch中的所有原理图符号,这样非常方便再次修订项目以及查错处理。\n操作步骤如下:\n*设计\s建立设计项目库\n*选择处理方式:处理第一个实例,忽略其它\n*保存项目库\n操作截图如下\n[img[images|schlib.JPG]]\n\n
!''SMD的特殊性 ''\n\n Protel封装库内有大量SMD封装,即表面焊装器件。这类器件除体积小巧之外的最大特点是单面分布元引脚孔。因此,选用这类器件要定义好器件所在面,以免“丢失引脚(Missing Plns)”。另外,这类元件的有关文字标注只能随元件所在面放置。
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal YYYY0MM0DD>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 偏好设置 '变更 TiddlyWiki 选项'>>
DXP,Altium Designer,PCB,Study Note.
WESTFROG
http://kwtswg.googlepages.com/index.htm
/***\nPlace your custom CSS here\n***/\n/*{{{*/\n\n/*}}}*/\n
/***\n!Colors Used\n*@@bgcolor(#8cf): #8cf - Background blue@@\n*@@bgcolor(#18f): #18f - Top blue@@\n*@@bgcolor(#04b): #04b - Mid blue@@\n*@@bgcolor(#014):color(#fff): #014 - Bottom blue@@\n*@@bgcolor(#ffc): #ffc - Bright yellow@@\n*@@bgcolor(#fe8): #fe8 - Highlight yellow@@\n*@@bgcolor(#db4): #db4 - Background yellow@@\n*@@bgcolor(#841): #841 - Border yellow@@\n*@@bgcolor(#703):color(#fff): #703 - Title red@@\n*@@bgcolor(#866): #866 - Subtitle grey@@\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n background: #fff;\n color: #000;\n}\n\na{\n color: #04b;\n}\n\na:hover{\n background: #04b;\n color: #fff;\n}\n\na img{\n border: 0;\n}\n\nh1,h2,h3,h4,h5 {\n color: #703;\n background: #8cf;\n}\n\n.button {\n color: #014;\n border: 1px solid #fff;\n}\n\n.button:hover {\n color: #014;\n background: #fe8;\n border-color: #db4;\n}\n\n.button:active {\n color: #fff;\n background: #db4;\n border: 1px solid #841;\n}\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n.header {\n background: #04b;\n}\n\n.headerShadow {\n color: #000;\n}\n\n.headerShadow a {\n font-weight: normal;\n color: #000;\n}\n\n.headerForeground {\n color: #fff;\n}\n\n.headerForeground a {\n font-weight: normal;\n color: #8cf;\n}\n\n/*}}}*/\n/***\n!General tabs /%=================================================%/\n***/\n/*{{{*/\n\n.tabSelected{\n color: #014;\n background: #eee;\n border-left: 1px solid #ccc;\n border-top: 1px solid #ccc;\n border-right: 1px solid #ccc;\n}\n\n.tabUnselected {\n color: #fff;\n background: #999;\n}\n\n.tabContents {\n color: #014;\n background: #eee;\n border: 1px solid #ccc;\n}\n\n.tabContents .button {\n border: 0;}\n\n/*}}}*/\n/***\n!Sidebar options /%=================================================%/\n~TiddlyLinks and buttons are treated identically in the sidebar and slider panel\n***/\n/*{{{*/\n#sidebar {\n}\n\n#sidebarOptions input {\n border: 1px solid #04b;\n}\n\n#sidebarOptions .sliderPanel {\n background: #8cf;\n}\n\n#sidebarOptions .sliderPanel a {\n border: none;\n color: #04b;\n}\n\n#sidebarOptions .sliderPanel a:hover {\n color: #fff;\n background: #04b;\n}\n\n#sidebarOptions .sliderPanel a:active {\n color: #04b;\n background: #fff;\n}\n/*}}}*/\n/***\n!Message Area /%=================================================%/\n***/\n/*{{{*/\n#messageArea {\n border: 1px solid #841;\n background: #db4;\n color: #014;\n}\n\n#messageArea .button {\n padding: 0.2em 0.2em 0.2em 0.2em;\n color: #014;\n background: #fff;\n}\n\n/*}}}*/\n/***\n!Popup /%=================================================%/\n***/\n/*{{{*/\n.popup {\n background: #18f;\n border: 1px solid #04b;\n}\n\n.popup hr {\n color: #014;\n background: #014;\n border-bottom: 1px;\n}\n\n.popup li.disabled {\n color: #04b;\n}\n\n.popup li a, .popup li a:visited {\n color: #eee;\n border: none;\n}\n\n.popup li a:hover {\n background: #014;\n color: #fff;\n border: none;\n}\n/*}}}*/\n/***\n!Tiddler Display /%=================================================%/\n***/\n/*{{{*/\n.tiddler .defaultCommand {\n font-weight: bold;\n}\n\n.shadow .title {\n color: #866;\n}\n\n.title {\n color: #703;\n}\n\n.subtitle {\n color: #866;\n}\n\n.toolbar {\n color: #04b;\n}\n\n.tagging, .tagged {\n border: 1px solid #eee;\n background-color: #eee;\n}\n\n.selected .tagging, .selected .tagged {\n background-color: #ddd;\n border: 1px solid #bbb;\n}\n\n.tagging .listTitle, .tagged .listTitle {\n color: #014;\n}\n\n.tagging .button, .tagged .button {\n border: none;\n}\n\n.footer {\n color: #ddd;\n}\n\n.selected .footer {\n color: #888;\n}\n\n.sparkline {\n background: #8cf;\n border: 0;\n}\n\n.sparktick {\n background: #014;\n}\n\n.errorButton {\n color: #ff0;\n background: #f00;\n}\n\n.cascade {\n background: #eef;\n color: #aac;\n border: 1px solid #aac;\n}\n\n.imageLink, #displayArea .imageLink {\n background: transparent;\n}\n\n/*}}}*/\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n\n.viewer .listTitle {list-style-type: none; margin-left: -2em;}\n\n.viewer .button {\n border: 1px solid #db4;\n}\n\n.viewer blockquote {\n border-left: 3px solid #666;\n}\n\n.viewer table {\n border: 2px solid #333;\n}\n\n.viewer th, thead td {\n background: #db4;\n border: 1px solid #666;\n color: #fff;\n}\n\n.viewer td, .viewer tr {\n border: 1px solid #666;\n}\n\n.viewer pre {\n border: 1px solid #fe8;\n background: #ffc;\n}\n\n.viewer code {\n color: #703;\n}\n\n.viewer hr {\n border: 0;\n border-top: dashed 1px #666;\n color: #666;\n}\n\n.highlight, .marked {\n background: #fe8;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor input {\n border: 1px solid #04b;\n}\n\n.editor textarea {\n border: 1px solid #04b;\n width: 100%;\n}\n\n.editorFooter {\n color: #aaa;\n}\n\n/*}}}*/
/***\n!Sections in this Tiddler:\n*Generic rules\n**Links styles\n**Link Exceptions\n*Header\n*Main menu\n*Sidebar\n**Sidebar options\n**Sidebar tabs\n*Message area\n*Popup\n*Tabs\n*Tiddler display\n**Viewer\n**Editor\n*Misc. rules\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n font-size: .75em;\n font-family: arial,helvetica;\n position: relative;\n margin: 0;\n padding: 0;\n}\n\nh1,h2,h3,h4,h5 {\n font-weight: bold;\n text-decoration: none;\n padding-left: 0.4em;\n}\n\nh1 {font-size: 1.35em;}\nh2 {font-size: 1.25em;}\nh3 {font-size: 1.1em;}\nh4 {font-size: 1em;}\nh5 {font-size: .9em;}\n\nhr {\n height: 1px;\n}\n\na{\n text-decoration: none;\n}\n\nol { list-style-type: decimal }\nol ol { list-style-type: lower-alpha }\nol ol ol { list-style-type: lower-roman }\nol ol ol ol { list-style-type: decimal }\nol ol ol ol ol { list-style-type: lower-alpha }\nol ol ol ol ol ol { list-style-type: lower-roman }\nol ol ol ol ol ol ol { list-style-type: decimal }\n/*}}}*/\n/***\n''General Link Styles'' /%-----------------------------------------------------------------------------%/\n***/\n/*{{{*/\n.externalLink {\n text-decoration: underline;\n}\n\n.tiddlyLinkExisting {\n font-weight: bold;\n}\n\n.tiddlyLinkNonExisting {\n font-style: italic;\n}\n\n/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */\na.tiddlyLinkNonExisting.shadow {\n font-weight: bold;\n}\n/*}}}*/\n/***\n''Exceptions to common link styles'' /%------------------------------------------------------------------%/\n***/\n/*{{{*/\n\n#mainMenu .tiddlyLinkExisting, \n#mainMenu .tiddlyLinkNonExisting,\n#sidebarTabs .tiddlyLinkExisting,\n#sidebarTabs .tiddlyLinkNonExisting{\n font-weight: normal;\n font-style: normal;\n}\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n\n.header {\n position: relative;\n}\n\n.header a:hover {\n background: transparent;\n}\n\n.headerShadow {\n position: relative;\n padding: 4.5em 0em 1em 1em;\n left: -1px;\n top: -1px;\n}\n\n.headerForeground {\n position: absolute;\n padding: 4.5em 0em 1em 1em;\n left: 0px;\n top: 0px;\n}\n\n.siteTitle {\n font-size: 3em;\n}\n\n.siteSubtitle {\n font-size: 1.2em;\n}\n\n/*}}}*/\n/***\n!Main menu /%==================================================%/\n***/\n/*{{{*/\n#mainMenu {\n position: absolute;\n left: 0;\n width: 10em;\n text-align: right;\n line-height: 1.6em;\n padding: 1.5em 0.5em 0.5em 0.5em;\n font-size: 1.1em;\n}\n\n/*}}}*/\n/***\n!Sidebar rules /%==================================================%/\n***/\n/*{{{*/\n#sidebar {\n position: absolute;\n right: 3px;\n width: 16em;\n font-size: .9em;\n}\n/*}}}*/\n/***\n''Sidebar options'' /%----------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n#sidebarOptions {\n padding-top: 0.3em;\n}\n\n#sidebarOptions a {\n margin: 0em 0.2em;\n padding: 0.2em 0.3em;\n display: block;\n}\n\n#sidebarOptions input {\n margin: 0.4em 0.5em;\n}\n\n#sidebarOptions .sliderPanel {\n margin-left: 1em;\n padding: 0.5em;\n font-size: .85em;\n}\n\n#sidebarOptions .sliderPanel a {\n font-weight: bold;\n display: inline;\n padding: 0;\n}\n\n#sidebarOptions .sliderPanel input {\n margin: 0 0 .3em 0;\n}\n/*}}}*/\n/***\n''Sidebar tabs'' /%-------------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n\n#sidebarTabs .tabContents {\n width: 15em;\n overflow: hidden;\n}\n\n/*}}}*/\n/***\n!Message area /%==================================================%/\n***/\n/*{{{*/\n#messageArea {\nposition:absolute; top:0; right:0; margin: 0.5em; padding: 0.5em;\n}\n\n*[id='messageArea'] {\nposition:fixed !important; z-index:99;}\n\n.messageToolbar {\ndisplay: block;\ntext-align: right;\n}\n\n#messageArea a{\n text-decoration: underline;\n}\n/*}}}*/\n/***\n!Popup /%==================================================%/\n***/\n/*{{{*/\n.popup {\n font-size: .9em;\n padding: 0.2em;\n list-style: none;\n margin: 0;\n}\n\n.popup hr {\n display: block;\n height: 1px;\n width: auto;\n padding: 0;\n margin: 0.2em 0em;\n}\n\n.popup li.disabled {\n padding: 0.2em;\n}\n\n.popup li a{\n display: block;\n padding: 0.2em;\n}\n/*}}}*/\n/***\n!Tabs /%==================================================%/\n***/\n/*{{{*/\n.tabset {\n padding: 1em 0em 0em 0.5em;\n}\n\n.tab {\n margin: 0em 0em 0em 0.25em;\n padding: 2px;\n}\n\n.tabContents {\n padding: 0.5em;\n}\n\n.tabContents ul, .tabContents ol {\n margin: 0;\n padding: 0;\n}\n\n.txtMainTab .tabContents li {\n list-style: none;\n}\n\n.tabContents li.listLink {\n margin-left: .75em;\n}\n/*}}}*/\n/***\n!Tiddler display rules /%==================================================%/\n***/\n/*{{{*/\n#displayArea {\n margin: 1em 17em 0em 14em;\n}\n\n\n.toolbar {\n text-align: right;\n font-size: .9em;\n visibility: hidden;\n}\n\n.selected .toolbar {\n visibility: visible;\n}\n\n.tiddler {\n padding: 1em 1em 0em 1em;\n}\n\n.missing .viewer,.missing .title {\n font-style: italic;\n}\n\n.title {\n font-size: 1.6em;\n font-weight: bold;\n}\n\n.missing .subtitle {\n display: none;\n}\n\n.subtitle {\n font-size: 1.1em;\n}\n\n/* I'm not a fan of how button looks in tiddlers... */\n.tiddler .button {\n padding: 0.2em 0.4em;\n}\n\n.tagging {\nmargin: 0.5em 0.5em 0.5em 0;\nfloat: left;\ndisplay: none;\n}\n\n.isTag .tagging {\ndisplay: block;\n}\n\n.tagged {\nmargin: 0.5em;\nfloat: right;\n}\n\n.tagging, .tagged {\nfont-size: 0.9em;\npadding: 0.25em;\n}\n\n.tagging ul, .tagged ul {\nlist-style: none;margin: 0.25em;\npadding: 0;\n}\n\n.tagClear {\nclear: both;\n}\n\n.footer {\n font-size: .9em;\n}\n\n.footer li {\ndisplay: inline;\n}\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n* html .viewer pre {\n width: 99%;\n padding: 0 0 1em 0;\n}\n\n.viewer {\n line-height: 1.4em;\n padding-top: 0.5em;\n}\n\n.viewer .button {\n margin: 0em 0.25em;\n padding: 0em 0.25em;\n}\n\n.viewer blockquote {\n line-height: 1.5em;\n padding-left: 0.8em;\n margin-left: 2.5em;\n}\n\n.viewer ul, .viewer ol{\n margin-left: 0.5em;\n padding-left: 1.5em;\n}\n\n.viewer table {\n border-collapse: collapse;\n margin: 0.8em 1.0em;\n}\n\n.viewer th, .viewer td, .viewer tr,.viewer caption{\n padding: 3px;\n}\n\n.viewer pre {\n padding: 0.5em;\n margin-left: 0.5em;\n font-size: 1.2em;\n line-height: 1.4em;\n overflow: auto;\n}\n\n.viewer code {\n font-size: 1.2em;\n line-height: 1.4em;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor {\nfont-size: 1.1em;\n}\n\n.editor input, .editor textarea {\n display: block;\n width: 100%;\n font: inherit;\n}\n\n.editorFooter {\n padding: 0.25em 0em;\n font-size: .9em;\n}\n\n.editorFooter .button {\npadding-top: 0px; padding-bottom: 0px;}\n\n.fieldsetFix {border: 0;\npadding: 0;\nmargin: 1px 0px 1px 0px;\n}\n/*}}}*/\n/***\n!Misc rules /%==================================================%/\n***/\n/*{{{*/\n.sparkline {\n line-height: 1em;\n}\n\n.sparktick {\n outline: 0;\n}\n\n.zoomer {\n font-size: 1.1em;\n position: absolute;\n padding: 1em;\n}\n\n.cascade {\n font-size: 1.1em;\n position: absolute;\n overflow: hidden;\n}\n/*}}}*/
本页面依托于~TiddlyWiki这个好玩的东东!\n~TiddlyWiki为类似于wiki的个人数字记事本。\n!为了体会到更好的浏览效果,请下载FireFox\n[[下载地址|http://westfrog.googlepages.com/soft]]
''tag''\n<<tag 例子 李子 李子>>\n<<tag DXP>>\n----\n''tabs''\n<<tabs tabclass\nDXP '说明文字' DXP\nPADS '说明文字' PADS\nALLEGRO '说明文字' ALLEGRO\nMCU '说明文字' MCU\n>>\n----\nTiddlyWiki tiddlywiki区分wikiword\n----\n''link''\n[[LINK TO OTHER WEBSITE OR MY WEB FILE | HTTP:///WWW.126.COM]]\n----\n''silider''\n功能很好玩,可以把一個 Tiddler 製作成滑動式方塊,用滑鼠點選產生的連結,可以滑動式的展開或收合 Tiddler 的內容。\n<<slider chkSlider MainMenu 如何做… '点击滑动拉开'>>\n\n语法开始,,,,状态,,,,目的,,,,,标题,,,,说明文字\n----\n<<toolbar closeOthers>>\n<<toolbar closeTiddler>>
/***\n|''Name:''|ArchivedTimeline|\n|''Version:''|0.5.0 (Apr 19, 2006)|\n|''Source:''|https://sourceforge.net/projects/ptw/|\n|''Author:''|BramChen|\n|''Type:''|Macro|\n!Description\nTimeline archived monthly.\n!Syntax/Examples\n>{{{<<timeline [modified | created]>>}}}\n\n!Known issues/Todos\n* \n\n!Instructions\n\n!Notes\n*\n!Revision history\n* v0.5.0 (Apr 19, 2006)\n** Fixed bug for twice records of the same date ()\n** Added Date.prototype.convertToLocalYYYYMMDDHHMM for backward compatible with 2.0.6-\n* v0.4.0 (Apr 03, 2006)\n** Added new parameter to <<timeline sortfield maxentries>>\n** Added config.options.txtTimelineMaxentries\n* v0.3.1 (Feb 04, 2006)\n** JSLint checked\n* v0.3.0 (Feb 04, 2006)\n** Fixed several missing variable declarations\n* v0.2.0 (Dec 26, 2005)\n** changed for the new feature of Macro timeline of TW 2.0.0 beta 6\n* v0.1.0 (Nov 3, 2005)\n** Initial release.\n\n!Code\n***/\n//{{{\nversion.extensions.archivedTimeline = {major: 0, minor: 5, revision: 0,\n date: new Date("Apr 19, 2006"),\n name: "ArchivedTimeline",\n type: "Macro",\n author: "BramChen",\n source: "http://sourceforge.net/project/showfiles.php?group_id=150646"\n};\nconfig.options.txtTimelineMaxentries=0;\nconfig.macros.archivedTimeline = {\n tooltips: "档案排序: ",\n msg : "The param of macro timeline should be 'created' or 'modified'",\n dateFormat: "YYYY0MM0DD"\n};\nconfig.macros.timeline = config.macros.archivedTimeline;\n\nconfig.macros.timeline.handler = function(place,macroName,params) {\n var field = params[0] ? params[0] : "modified";\n if (field != "modified" && field != "created") {\n displayMessage(config.macros.timeline.msg);\n return;\n }\n place.appendChild(document.createTextNode(this.tooltips + field));\n var tiddlers = store.reverseLookup("tags","excludeLists",false,field);\n var lastMonth = ""; var lastDay = ""; var theText = "----\sn"; var i = 0;\n var last = (params[1])?params[1]:config.options.txtTimelineMaxentries;\n last = (isNaN(last)||last<1) ? 0:tiddlers.length-Math.min(tiddlers.length,parseInt(last));\n var cookie; var archives;\n for (var t=tiddlers.length-1; t>=last; t--) {\n var tiddler = tiddlers[t];\n var theMonth = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,6);\n var theDay = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,8);\n if(theMonth != lastMonth) {\n if (lastMonth === "") {\n lastMonth = theMonth;\n }\n else {\n place.appendChild(document.createElement("hr"));\n cookie = 'chktimeline'+(i++);\n archives = this.formatString(this.dateFormat, lastMonth);\n this.slider(place,cookie,theText,archives,this.tooltips + archives);\n lastMonth = theMonth; theText = "----\sn";\n }\n }\n if(theDay != lastDay){\n theText += tiddler[field].formatString(this.dateFormat) + '\sn';\n lastDay = theDay; \n }\n theText += '* [[' + tiddler.title + ']]\sn';\n }\n place.appendChild(document.createElement("hr"));\n cookie = 'chktimeline'+(i++);\n archives = this.formatString(this.dateFormat, lastMonth);\n this.slider(place,cookie,theText,archives,this.tooltips + archives);\n place.appendChild(document.createElement("hr"));\n};\n\nconfig.macros.timeline.onClickSlider = config.macros.slider.onClickSlider;\n\nconfig.macros.timeline.slider = function(place,cookie,text,id,tooltips)\n{\n var btn = createTiddlyButton(place,id,tooltips,this.onClickSlider);\n var panel = createTiddlyElement(place,"div",null,"timelineSliderPanel",null);\n panel.setAttribute("cookie",cookie);\n panel.style.display = config.options[cookie] ? "block" : "none";\n if(text){\n wikify(text,panel);\n }\n};\n\nconfig.macros.timeline.formatString = function(template, yyyymm)\n{\n var dateString = new Date(yyyymm.substr(0,4)+'/'+yyyymm.substr(4,2)+'/01');\n template = template.replace(/DDD|0DD|DD|hh|mm|ss/g,'');\n return dateString.formatString(template);\n};\nif (!Date.prototype.convertToLocalYYYYMMDDHHMM){\n Date.prototype.convertToLocalYYYYMMDDHHMM = function(){\n return(String.zeroPad(this.getFullYear(),4) + String.zeroPad(this.getMonth()+1,2) + String.zeroPad(this.getDate(),2) + String.zeroPad(this.getHours(),2) + String.zeroPad(this.getMinutes(),2));\n }\n}\n//}}}
这里所说的pcb注释编号为对pcb文件每个元件重新编号。\n重新编号的好处为:元件序号在板上按照一定的顺序递增或者递减,非常方便查错及焊接。\n由于从原理图更新至pcb文件之后,受元件布局的限制,元件编号一般是混乱的,这个时候我们可以进行编号处理。\n编号处理的操作为:工具\s重新注释\n截图如下:\n[img[images|renote.JPG]]\n----\n如图示,选择一种编号递增方式,点击确定。\n对于再次编号的pcb文件,我们需要再次与pcb文件同步。\n即将新的编号传递给原理图(SCH)。\n操作方法参见[[更新到SCH]]。
[[westfrog]]\n!personal message\n----\nsz , China\n----\nwestfrog@gmail.com\n<html>\n<IMG src="http://jabberland.com/status/90a620b913555415160e7680a6c49340-info2-pack11" twffan="done" kl="596"></A>\n</html>\n----\nQQ:378586452\n<html>\n<A href="tencent://message/?uin=378586452&amp;Site=westfrog&amp;Menu=yes" target=blank><IMG alt=Q--me src="http://wpa.qq.com/pa?p=1:378586452:5" border=0 twffan="done"></A>\n</html>\n----\nMSN: kwtswg@hotmail.com\n<html>\n<A HREF="http://ph15.net:8000/message/msn/kwtswg@hotmail.com">\n<IMG SRC="http://ph15.net:8000/msn/kwtswg@hotmail.com"\nalign="absmiddle" border="0" ALT="MSN Online Status Indicator"\nonerror="this.onerror=null;this.src='http://ph15.net:8000/image/msnunknown.gif';"></A>\n</html>\n----\nSKYPE:westfrog\n<html>\n<!-- Skype 'My status' button http://www.skype.com/go/skypebuttons --> <SCRIPT src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js" type=text/javascript></SCRIPT> <A href="skype:szswg0?call"><IMG style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height=20 alt="My status" src="http://mystatus.skype.com/smallclassic/szswg0" width=114 twffan="done"></A>\n</html>\n\n
!''丝印层(Overlay)''\n\n 为方便电路的安装和维修等,在印刷板的上下两表面印刷上所需要的标志图案和文字代号等,例如元件标号和标称值、元件外廓形状和厂家标志、生产日期等等。不少初学者设计丝印层的有关内容时,只注意文字符号放置得整齐美观,忽略了实际制出的PCB效果。他们设计的印板上,字符不是被元件挡住就是侵入了助焊区域被抹赊,还有的把元件标号打在相邻元件上,如此种种的设计都将会给装配和维修带来很大不便。正确的丝印层字符布置原则是:”不出歧义,见缝插针,美观大方”。
报告, REPORT\n一般常用的报告就是材料清单,即所谓的bom, bill of materilas,初学者来说掌握bom输出就可以\n操作方法\n*报告\s BILL OF MATERILAS\n*选择输出内容,比如标号,类型,数量等 \n*选择输出数据格式 支持excel数据格式,txt,html\n*点输出,保存清单 \n----\n具体输出图见下:\n[img[images|bom.JPG]]\n\n\n\n
左边导航你的目的地,中间作为主要内容显示区域\n右边,可以不必理会了\n鼠标点击页面上每一个链接时候,会酷酷的弹出你想阅读的内容,HOHO~\n对你不需用的文章,当你把鼠标放到页面上时,左上角会出现关闭按钮,你可以关闭你不需要阅读的内容\n好了,至此你可以完全明白这个站点的浏览方法了\n!切记:本页只有一个页面,浏览器的后退,前进是无效的。
元件间距即为pcb板上相邻元件的距离,一般有经验的设计者无须设置这个规则,即可把握元件该有的距离。\n但对于初学者来说,为了避免元件间距太小而产生错误,可设置好这个规则。\n实际上,元件间距的影响因素是很多的,比如元件高度,焊机难易度,都需要考虑。\n这里仅介绍10mil的间距设置(双面布元件),如下图: \n[img[images|ICclearance.JPG]]
本站为[[westfrog]]个人学习笔记记录站点,也可以作为同行入门者指导教程
[[ORCAD]]\n[[POWERPCB]]\n[[ALLEGRO]]
内层分割,顾名思义,将内电层分割为若干部分。\n本质为依据pcb文件给各分割部分指定不同的网络。\n这里仅讲负片层内层分割。\n首先使用放置直线(P/L) 的方法将内电层划分为若干闭合的区域,这些区域应该“包括”你要指定的网络。\n如图所示,假如制定左边部内层网络为GND,双击分割部分,指定网络,选择GND。\n同理,指定其余部分。\n板厂在处理负片层文件时,你放置直线的地方,将为"空 ",即无铜皮,闭合的区域内,将为某一个网络的铜皮。\n在文件上看来,正好是反向的,这就是负片层叫法的来源。\n[img[images|assignnet.JPG]]\n----
在创建一个项目之前,首先创建一个[[工作区|工作区的概念]]是一个良好得习惯,再次编辑这个项目的时候,我们直接从projects管理栏的第一个下拉列表中打开工作区,与此同时,你的设计相关文件都会打开,并且很容易切换到另外一个工作区,从而无需在资源管理器里面找你的项目文件(.prj***)。\n工作区的创建有两种方法:\n*文件\s创建\s设计工作区 \n*点开左边projects栏,点工作区,弹出菜单,选择保存设计工作区,或“另存设计工作区为”\n----\n以上两种方式都会提示你选择保存位置,原则上说你可以保存到任意位置,但是为了方便管理,最好保存的项目相关文件夹下,这样方便于日后的管理。\n为工作区起一个见名思义的名称也是非产重要的,否则你不知道这个工作区下到底是什么文件。\n如果你对工作区进行过编辑,比如添加、删除文件,每次在退出DXP时都会提示你保存工作区,选择保存则可。这样下次打开工作区时projects栏为你上次编辑的最后状态。
[[建立原理图]]\n[[放置元件]]\n[[编辑元件]]\n[[批量修改]]\n[[查找元件]]\n[[链接封装]]\n[[连线操作]]\n[[注释编号]]\n[[产生报告]]\n[[更新到PCB]]\n[[SCH后期库文件处理]]
!''各类膜(Mask) ''\n \n 这些膜不仅是PCB制作工艺过程中必不可少的,而且更是元件焊装的必要条件。按“膜”所处的位置及其作用,“膜”可分为元件面(或焊接面)助焊膜(top or bottom 和元件面(或焊接面)阻焊膜(TOp or BottomPaste Mask)两类。顾名思义,助焊膜是涂于焊盘上,提高可焊性能的一层膜,也就是在绿色板子上比焊盘略大的各浅色圆斑。阻焊膜的情况正好相反,为了使制成的板子适应波峰焊等焊接形式,要求板子上非焊盘处的铜箔不能粘锡,因此在焊盘以外的各部位都要涂覆一层涂料,用于阻止这些部位上锡。可见,这两种膜是一种互补关系。由此讨论,就不难确定菜单中类似“solder Mask En1argement”等项目的设置了。
后期处理主要为:\n*设计规则检查。\n*绘制标识性文字及指示符。\n*产生BOM(物料)清单。\n<<tabs tabclass\n设计规则检查 '点开为设计规则检查' 设计规则检查\n标识绘制 '点开为标识绘制说明' 标识绘制\nBOM清单 '点开为BOM清单说明' BOM清单\n>>\n\n
*Protel DXP是[[Altium|http://www.altium.com]]公司推出的EDA软件,它拓展了Prote原有的设计领域,集成原理图设计,FPGA前端设计,PCB设计,自动布线,混合信号仿真,CAM等多种功能。\n*如果你以前会使用Protel99se,那转到DXP是非常容易的,并且会发现DXP的交互性能更好,在库管理,批量编辑,规则设定方面有很大的改进。\n*本站点的偏重点为DXP中最常用的功能介绍:[[原理图编辑|原理图编辑相关]],[[PCB绘制部分|PCB绘制相关]]。\n*原版DXP为英文版本,但DXP[[自带汉化]],本站点内容都在汉化软件基础上编辑整理。\n*未列入的内容,如果有疑问,可以在[[这里|留言板]]留下你的问题,我会尽快为你答复。\n----\n目前官方已经公布了~AD6.3版本,但是bug太多,部分功能并不是太好用,如果会用dxp,过渡到ad6.0以上是很容易。\n所以本站内容以dxp为主。
!''网格状填充区(External Plane )和填充区(Fill)''\n\n正如两者的名字那样,网络状填充区是把大面积的铜箔处理成网状的,填充区仅是完整保留铜箔。初学者设计过程中在计算机上往往看不到二者的区别,实质上,只要你把图面放大后就一目了然了。正是由于平常不容易看出二者的区别,所以使用时更不注意对二者的区分,要强调的是,前者在电路特性上有较强的抑制高频干扰的作用,适用于需做大面积填充的地方,特别是把某些区域当做屏蔽区、分割区或大电流的电源线时尤为合适。后者多用于一般的线端部或转折区等需要小面积填充的地方。
在[[散热部分的铺铜]]部分,已经涉及到填充区域的应用。\n填充区域为人为画在线路板上的各种对象,比如填充铜皮,填充solder,以及填充丝印。\n填充铜皮常用于散热处理。\n填充sloder常用于开窗处理,即放置阻焊漆,打板时那部分不喷阻焊漆。\n填充丝印,常用于pcb板指示,防短路处理。\n!操作方法\n切换到要放置填充区的pcb板层,如solder层。\n按下P/E(放置矩形填充区),或者按下P/R(放置多边形填充区)。\n实例图如下:\n[img[images|fill.JPG]]
!导入CAD文件
!''层Layer的概念''\n\n 与字处理或其它许多软件中为实现图、文、色彩等的嵌套与合成而引入的“层”的概念有所同,PCB中的“层”不是虚拟的,而是印刷板材料本身实实在在的各铜箔层。现今,由于电子线路的元件密集安装。防干扰和布线等特殊要求,一些较新的电子产品中所用的印刷板不仅有上下两面供走线,在板的中间还设有能被特殊加工的夹层铜箔,例如,现在的计算机主板所用的印板材料多在4层以上。这些层因加工相对较难而大多用于设置走线较为简单的电源布线层(如软件中的Ground Dever和Power Dever),并常用大面积填充的办法来布线(如Fill)。上下位置的表面层与中间各层需要连通的地方用软件中提到的所谓“过孔(Via)”来沟通。有了以上解释,就不难理解“多层焊盘”和“布线层设置”的有关概念了。举个简单的例子,不少人布线完成,到打印出来时方才发现很多连线的终端都没有焊盘,其实这是自己添加器件库时忽略了“层”的概念,没把自己绘制封装的焊盘特性定义为”多层(Mulii一Layer)的缘故。要提醒的是,一旦选定了所用印板的层数,务必关闭那些未被使用的层,免得惹事生非走弯路。
打开 \s设计\s层堆栈管理,如下图:\n[img[images|lstack.JPG]]\n----\n!如上图,板层结构为:顶层信号层--电源层--内层信号层1--内层信号层2--地平面层--底层信号层
''工作区''\n*为了方便文件,项目管理,DXP提供的一个扩展名为~DsnWrk的文件,它内部记录了你的设计文件的相互关系以及引用外部文件的关系。实际操作中,打开一个工作区就能打开你工作区下加入的所有设计。\n----\n在99se中,PROTEL使用数据库的方式(ddb文件)将项目文件整合起来,当然99se也支持windowsfile管理方式,在新建项目的时候对 Design Storage Type(设计存储类型)选成为:Windows File Systerm,你会发现你的设计文件都是独立的,而不是Access 数据库方式,即DDB文件。\n----\nDXP的文件管理采用独立文件的方式,这并不方便于日后的管理,为了整合管理设计,工作区由此而生,当然你可以用项目文件的方式(扩展名.prj***)管理设计 ,在具体操作时候,你会发现最近使用过的工作区是记录在Projects栏里,非常方便在不同工作区之间切换。\n[img[images|workspace.JPG]]\n---
布线宽度,实际为设置不同网络线的最小,优先,最大导线宽度。\n当你在布线过程中,如果画出规则设置之外的(过宽or过细) 则会提示警告 。\n如下图,我们设置12V网络的最小,优先,和最大导线宽度都为18mil。\n[img[images|width.JPG]]\n----\n!为了简化这个规则设置,一般可以设置最小为 5mil,最大为100mil。\n
DXP中的库比较特殊,它支持很多种类型,也可以导入其它EDA软件的库,比如orcad等\n----\n它本身的库文件兼容99se格式,这里不再描述,直接打开就可以使用,或者[[添加库|添加库]]。\nDXP最为特殊的一点是支持集成库的概念,即一个库文件包含了某个元件的sch符号,pcb封装,仿真参数等。\n在这种情况下,我们使用库文件可以不必考虑添加封装的问题了,并且很多元件的封装是非常准确的,并有可选择余地。\n集成库文件的扩展名是:intlib\ndxp的库管理一般是以器件公司名称作为文件夹管理的\n库路径为:$安装目录$\sAltium2004 ~SP2\sLibrary\n比如:Philips的器件,路径就是--$安装目录$\sAltium2004 ~SP2\sLibrary\sPhilips。\n常用的库有:\n*Miscellaneous Connectors.~IntLib 连接器库\n*Miscellaneous Devices.~IntLib 杂散元件库\n99se的库可以在这里找到:\n*$安装目录$\sAltium2004 ~SP2\sLibrary\sPcb\n----\n对于其它eda软件的库,我们可以用dxp打开,另存为DXP格式库就可以。\n----\n独立格式的库文件分两类:\n*原理图符号库,扩展名: schlib\n*pcb封装库,pcblib\n----\n!个人推荐这集成库和独立库交替使用。
[[库介绍]]\n[[添加库]]\n[[项目生成库]]\n[[]]
原理图编辑的目的:\n*这个就不必详说了吧,pcb就是印刷线路板,让你的设计变成现实!\n----\nPCB编辑的要点:\n*正确性,和电子设计知识有关,反之,不正确的线路板有什么用呢?\n*美观性,如果你的pcb设计的乱七八糟,很难看不必说,也不方便于以后样机调试。\n----\nDXP中建立PCB的方法:\n*文件\s创建\sPCB文件\n*文件\s打开 选择PCB文件\n*导入其他eda软件产生的原理图文件,比如99se的ddb文件,pads的asc文件。\n*也可以在[[工作区|添加文件到工作区]]中直接添加PCB
原理图编辑的目的:\n*仿真\n*纯粹原理图设计\n*用于[[PCB|PCB绘制相关]]设计,导出网络表\n----\n原理图编辑的要点:\n*原理正确性,和电子设计知识有关\n*原理可读性,为了方便其他人读懂原理图\n*网络正确性,为了导出正确的网络表,方便pcb设计\n----\nDXP中建立原理图的方法:\n*文件\s新建\s原理图\n*文件\s打开 选择以设计好的原理图文件\n*导入其他eda软件产生的原理图文件,比如orcad,powerlogic\n*也可以在[[工作区|添加文件到工作区]]中直接添加原理图
[[工作区的概念]]\n[[创建一个工作区]]\n[[打开保存工作区]]\n[[添加文件到工作区]]\n
打开工作区:\n*打开扩展名为dsnwrk文件,即打开工作区文件,DXP会载入相关联的文件。\n*文件\s 打开--文件类型下拉列表选择所有文件,然后点击dsnwrk文件。\n保存工作区:\n*退出DXP时会提示保存工作区,选择保存所有\n*在文件菜单下选择保存工作区\n*在projects栏工作区按键下选择保存工作区
这个概念比较特殊,所谓打散元件,本质为编辑元件封装的一种特殊方法。\n打散元件可以不用修改库文件,改变元件的封装。\n所以常用来临时修改元件封装。\n虽然这个功能不太正规也不太常用,但可以作为修改元件封装的一种特殊方法。\n操作方法如下:\n!双击,元件属性,去掉勾选锁定图元。\n[img[images|spart.JPG]]\n----\n如图下方,左侧为打散前的元件,右侧为打散后被修改的元件,活学活用!\n!打散修改完毕后的元件,再次锁定,避免误移动元件体。\n
批量修改确实是DXP的一大亮点,从99过来,这个优点在对照99se之后,你会发现它是非常强大的。\n想熟练应用批量修改,有下面两个要点。\n*查找相似对象\n[img[images|selectsim.JPG]]\n*使用Inspector(检查器)\n[img[images|inspector.JPG]]\n----\n查找相似对象,可以限定你要修改的图元范围,比如你要修改所有导线的宽度,你选中原理图上任意一条导线,然后点开右键,选择查找相似对象,此时需要你选择好匹配条件。点击查找,此时可以选定所有导线。\n然后打开检查器(Inspector),选择好要修改的属性,''回车'',这时候你会发现所有你选定的对象都会改变。\n你也可以使用shift+点击的方法选择需要修改的部件,然后打开检查器(inspector)修改属性。\n常见属性有坐标,宽度,锁定,封装,管脚相关等等。\n*取消选择点界面右下角清除。\n*批量选择了的图元是高亮显示的,其余未选定的图元是色彩屏蔽显示的,屏蔽程度可以调节。\n这样可以很直观的观测到你所选择对象的正确与否。\n----\nlist清单这个东东也是个强大的选择工具,使用方法如下:\n*打开list(清单),view下选择all,select objects下选定一个排除条件。\n*点击出现的表头进行排序。\n*选择需要修改的类型,可以用鼠标拖动的方法选定。\n*此时观测工作区域,是不是有若干图元处于选中状态呢? 然后就可以使用检查器(inspector)。
PLACE PART\n摆放元件即为元件布局, 主要依据为电路原理图以及机械结构要求。\n这里纯粹从操作方面讲述如何摆放元件以及相关操作。\n移动操作之前,请设置好[[网格间距]]\n*选中元件\n*移动元件\n*旋转元件\n*翻转元件\n*锁定、解锁元件\n*打散元件\n----\n<<tabs tabclass\n选中 '点开为选中说明' 选中元件\n移动 '点开为移动说明' 移动元件\n旋转 '点开为旋转说明' 旋转元件\n翻转 '点开为翻转说明' 翻转元件\n锁定解锁 '点开为锁定解锁说明' 锁定解锁元件\n打散 '点开为打散说明' 打散元件\n>>
这里元件的概念不同于实物--电子元件,DXP中的元件实际是指电路原理图符号,我们在绘制原理图时加入的电阻电容都是元件,还有IC。\nDXP中的元件有很多属性,比如,标称值,库模型,封装,编号等。\n电路原理图就是由原理图符号--元件和导线,网络,总线等组成的。\n设计原理图的第一个步骤就是加入元件。\nDXP的库就是元件的集合体文件,一个[[库文件|库文件相关]]包含很多元件,我们在需要的时候要加载库,从库中拖出需要的元件。\n----\n放置元件的步骤如下:\n[img[images|addic.JPG]]\n*打开元件库标签,第一个下拉框选择需要的库,第二个下拉框输入过滤条件,这个功能非常实用,比如找D开头的元件,输入D,它会自动为你过滤出所以D开头的元件。\n*选择需要的元件,双击或拖动到编辑环境,松开鼠标,完成放置元件操作。\n*对于已经放置好的元件,或者用鼠标点击并未松开(选取状态)的元件,按下空格键,即为旋转,按下X键,水平翻转,按下Y键,垂直翻转,按下Tab键,弹出[[属性对话框|编辑元件]]。\n[img[images|shuxing.JPG]]\n----\n部分不成文规则(个人总结)\n*原理明晰第一,图面美观第二\n*左输入,右输出\n*不管多大的项目,最好用个main图,总为系统框图,方便以后阅读原理图\n*尽量模块化画图,比如电源作为一个独立模块,通讯口作为一个独立模块,在下次碰到相同内容时直接复制过来使用\n
所有的功率器件(发热量比较大)都要考虑pcb散热措施,常见的方法为用裸露的铜皮充当散热焊盘。\n具体实现方法为,在功率器件的底部,铺层铜皮,并用同样大小的solder覆盖。\n以7805为例子,说明如下图:\n[img[images|thermal.JPG]]\n如图:\n第一个7805为未经散热处理的;\n第二个为铺散热铜皮;\n第三个为散热铜皮+sloder层开窗,这样打样板回来,则散热焊盘下为裸露喷锡铜皮,方便散热。\n
为了布线方便,元件的摆放方向自然是多样化的。一般为水平或者垂直。\n选中一个元件,不要松开鼠标,按下空格键,则为旋转元件。\n也可以双击,在元件属性框架中输入旋转度数,比如45度。\n
更新到pcb,这个步骤本质就是创建网络表,传递网络表到pcb文件中。\n网络表就是代表原理图元件之间的连接关系,比如某个器件的管脚和其它器件管脚之间的连接关系,并附带输入标识,标称值等信息。\n更新到pcb的操作步骤如下:\n*为原理图中每个元件添加[[注释编号|注释编号]]\n* 指定每个元件的正确[[封装|链接封装]]\n*设计\supdate pcb document xxx.pcbdoc ---前提已经建立好pcb空白文件\n*执行变化\n*修正错误,再次更新,直至完全没有错误\n----\n操作截图如下\n[img[images|update.JPG]]\n\n\n
有时候会在pcb文件中产生一些修改,比如修改封装,修改标称值以及修改编号。\n为了方便SCH和PCB之间的管理,我们需要把它们之间的修改同步起来。\n比如我们在pcb文件中临时修改了一个元件的封装,这时候我们更新至sch,则sch和pcb文件完全一致。\n具体的操作方法为:\n[img[images|pcbupdate.JPG]]\n在弹出的菜单中,我们勾选需要更新的改动,点击确定,这样就完成更新到SCH的操作。\n
板层定义对初学者来说,是个比较复杂的概念,比如层堆栈管理,正片层,负片层,内层分隔等。\n点开标签浏览板层相关内容:\n<<tabs tabclass\n层堆栈管理 '点开为说明' 层堆栈管理\n正片层负片层 '点开为过孔说明' 正片层负片层\n内层分割 '点开为过孔说明' 内层分割\n>>\n
板框是指pcb的外框,你的 PCB设计只能在这个板框的限定范围内完成,当然,给于板长标示性的内容可以放在板框之外!\n对于不太严格的pcb文件来说,直接在pcb编辑环境中绘制板框。\n对于要求严格(高精度,特殊外形)的板框,一般在CAD中绘制完成,当然,这属于机械工程师的任务了!\n板框绘制可以说是PCB绘制的第一步。\n----\n这里讲述两种板框绘制方法:\n*[[直接绘制]]\n*[[导入CAD文件]]\n----\n!点击标签学习两种不同的方法。\n<<tabs tabclass\n直接绘制 '点开为说明' 直接绘制\n导入CAD文件 '点开为过孔说明' 导入CAD文件\n>>
这里所说的查找元件不是在原理图环境中查找某个元件,而是指在DXP庞大的库文件中查找某个特定元件。\nDXP的查找是支持通配符的,比如 *\n具体操作步骤:\n*打开元件库菜单,点查找\n*输入查找元件的名称或者部分相关字符,比如78M05CDT,我们输入7805就可以\n*输入查找类型,选择compoents\n*限定查找库范围\n*开始查找\n[img[images|searchIc.JPG]]\n----\n对于查找到的元件,会在列表中显示,你可以随时中止查找,因为元件数量多,完全查找是要一段时间的。\n对于查找到的元件,你双击可以加入库文件列表中。
一个好的pcb文件,为了方便加工、调试、维修,总有许多标识性的内容被印制在pcb文件上。\n比如:pcb板上的特殊孔径说明--(绘制在机械层)\n再如:电源的极性,绘制丝印标识出,比如电源端口,我们标识+12V,GND上去。\n再如:板子型号说明。\n----\n实例如图:\n[img[images|sign.JPG]]
!''PCB设计基本概念''\n点击标签可以打开阅读\n<<tabs tabclass\n层(Layer) '点开为说明' 层\n过孔 '点开为过孔说明' 过孔\n丝印层 '点开为丝印层说明' 丝印层\nSMD的特殊性 '点开为SMD说明' SMD的特殊性\n填充区 '点开为填充区说明' 填充区\n焊盘 '点开为焊盘说明' 焊盘\n各类膜 '点开为mask说明' 各类膜\n飞线 '点开为飞线说明' 飞线\n>>
本站为westfrog整理编辑的DXP学习站点,也可以作为同行入门者指导教程.\n基本上本页面主要内容以软件操作为主,很少或者并不涉及电子电路的知识,但这些知识对pcb,sch的绘制是最为重要的。\n----\n!浏览本页面\n这里你首先需要了解TiddlyWiki,方便你阅读本站内容。\n使用方法请点击[[操作说明|使用方法]]\n\n<html>\n<div align="left"><a href="http://www.amazingcounters.com"><img border="0" src="http://c6.amazingcounters.com/counter.php?i=1343044&c=4029445" alt="Free Hit Counters"></a><br><small><a href="http://www.allonlinecoupons.com/st/budget-car-rental/"><font color="#999999">Budget Rent A Car</font></a></small></div>\n</html>\nSmart 日历 \n<<calendar 2006 8>>\n是否觉得用IE来使用TiddlyWiki的时候,动画跳动得很严重、文字或布局的样式也很奇怪?由于Windows所附带的IE已经超过两年没有更新,因此技术十分落后,无法良好地支援TiddlyWiki的程序运行,因此,良心地建议你,与其自己用得很不顺,不妨花几分钟下载一个新的浏览器来用:FireFox,不论是上网的体验或是你的系统的安全都能得到提升。\nFireFox>>>[[下载地址|http://westfrog.googlepages.com/soft]]\n----\n[[ZDNet中国|http://www.zdnet.com.cn/]][[搜狗|http://www.sogou.com/]][[中国日报|http://www.chinadaily.com.cn/]][[凤凰网|http://www.phoenixtv.com/]][[中央电视台|http://www.cctv.com/]][[中新网|http://www.chinanews.com.cn/]][[中国网|http://www.china.com.cn/]][[千龙网|http://www.qianlong.com/]][[Tom网|http://www.tom.com/]][[中华网|http://www.china.com/]][[搜狐|http://www.sohu.com/]][[网易|http://www.163.com/]][[新浪|http://www.sina.com.cn/]][[Dict.cn在线词典|http://dict.cn/]][[招商银行|http://www.cmbchina.com/]][[中国人民银行|http://www.pbc.gov.cn/]][[CNNIC|http://www.cnnic.net.cn/]]\n[[中国经济网|http://www.ce.cn/]][[中国经济信息网|http://www.cei.gov.cn/]][[中国移动|http://www.chinamobile.com/]][[中国科学院|http://www.cas.cn/]][[国家统计局|http://www.stats.gov.cn/]][[新华网|http://www.xinhuanet.com/]][[中国气象局|http://www.cma.gov.cn/]][[外交部|http://www.fmprc.gov.cn/]][[教育部|http://www.moe.edu.cn/]][[科学技术部|http://www.most.gov.cn/]][[卫生部|http://www.moh.gov.cn/]][[财政部|http://www.mof.gov.cn/]][[VeryCD|http://www.verycd.com/]][[淘宝网|http://www.taobao.com/]][[易趣网|http://www.ebay.com.cn/]][[中关村在线|http://www.zol.com.cn/]][[计算机世界|http://www.ccw.com.cn/]][[人民网|http://www.people.com.cn/]]
正片层:绘制信号走线层,直观的显示pcb上的走线,所见即所得,产生的文件体积比较大。\n负片层:一般指定电源平面层,地平面层为负片层,使用负片层,负片层反向显示PCB板内容,产生的文件体积比较小。\n如下图所示,同样的内层分隔,负片层仅仅需要画出分隔线,而正片层确需要用铺铜区来表示。\n[img[images|spl.JPG]]\n----\n很明显,如果内层用正片层的话,产生的文件体积是比较巨大的,但优点是非常直观。\n!初学者推荐内电层使用正片层,因为使用正片层,画内电层和画顶层底层无任何区别。
DXP中,每一个元件是有编号的,比如 IC , U1,U2,,,,\n默认的编号是 U?....\n在更新到PCB的时候需要输入编号值,在DXP中这个步骤是自动可以完成的.\n[img[images|ANOTE.JPG]]\n操作方法如下:\n*工具/注释\n*选择处理顺序和文件顺序\n*点击更新变化表\n* 接受变化 执行变化\n----\n 对于已经注释的元件,可以批量取消注释,再次注释\n并且很方便的更新的pcb中,无需手动修改
这里讲添加集成库,添加独立库步骤同添加集成库,不过选择的文件扩展名为:schlib, pcblib, lib 等\n-----\n添加集成库:\n*打开元件库标签,点击元件库\n*点击加元件库,定位需要库文件 \n*添加 intlib文件\n操作截图如下:\n[img[images|addlib-intlib.JPG]]\n----
设计相关的文件,最好是都添加的工作区下,或者添加到项目文件夹下,再用工作区把分散的设计文件链接起来,这个时候就需要添加文件到工作区。\n比如说,添加一个自制库文件到项目中,或者添加另外一个项目到工作区中。\n----\n*文件\s打开 选择文件\n*projects栏,右键: 追加新项目,追加已存在的项目,这两个选项都可以把文件添加到工作区中,不同是前者再次创建了一个项目文件,后者把已有的文件加入\n加入文件后,需要[[保存工作区|打开保存工作区]]
!''焊盘( Pad)''\n\n焊盘是PCB设计中最常接触也是最重要的概念,但初学者却容易忽视它的选择和修正,在设计中千篇一律地使用圆形焊盘。选择元件的焊盘类型要综合考虑该元件的形状、大小、布置形式、振动和受热情况、受力方向等因素。Protel在封装库中给出了一系列不同大小和形状的焊盘,如圆、方、八角、圆方和定位用焊盘等,但有时这还不够用,需要自己编辑。例如,对发热且受力较大、电流较大的焊盘,可自行设计成“泪滴状”,在大家熟悉的彩电PCB的行输出变压器引脚焊盘的设计中,不少厂家正是采用的这种形式。一般而言,自行编辑焊盘时除了以上所讲的以外,还要考虑以下原则:\n\n(1)形状上长短不一致时要考虑连线宽度与焊盘特定边长的大小差异不能过大;\n(2)需要在元件引角之间走线时选用长短不对称的焊盘往往事半功倍;\n(3)各元件焊盘孔的大小要按元件引脚粗细分别编辑确定,原则是孔的尺寸比引脚直径大0.2- 0.4毫米。
所谓电源,包括VCC,GND等系统电源相关网络。\n电源层的铺铜即将pcb板上部分或者某层全部铺成同一网络。\n!如何铺铜:\n使用快捷键 P/G(palce polygon)\n选择填充模式:影线化填充\n设置导线宽度和网格尺寸。\n选择链接到的网络。\n勾选去除死铜选项 。\n!实例截图:\n[img[images|polygon.JPG]]\n\n
感谢支持,A ZA A ZA FIGHTING!\n有什么建议或者问题,可以留在这里\n你也可以上传文件到我的叶子,文件大小不要超过200k啊,rar压缩吧\n留言板速度有点慢,请耐心等待,谢谢啊\n<HTML>\n<form enctype="multipart/form-data" action="http://www.jotform.com/submit/62131616219" method="POST">\n<table width="520" cellpadding="5" cellspacing="0">\n <tr valign="bottom">\n <td width="150" valign="bottom" >\n <label for="q12">Name <span class="required">*</span></label>\n </td>\n <td valign="bottom">\n <input type="text" size="20" name="q12_Name" id="q12">\n </td>\n </tr>\n\n <tr valign="bottom">\n <td width="150" valign="bottom" >\n <label for="q11">Mail <span class="required">*</span></label>\n </td>\n <td valign="bottom">\n <input type="text" size="20" name="q11_Mail" id="q11">\n </td>\n </tr>\n\n <tr valign="bottom">\n <td width="150" valign="bottom" >\n <label for="q14">URL</label>\n </td>\n <td valign="bottom">\n <input type="text" size="20" name="q14_URL" id="q14">\n </td>\n </tr>\n\n <tr valign="bottom">\n <td width="150" valign="top" >\n <label for="q6">Your Message <span class="required">*</span></label>\n </td>\n <td valign="bottom">\n <textarea wrap="soft" cols="30" rows="5" name="q6_YourMessage" id="q6"></textarea>\n </td>\n </tr>\n\n <tr valign="bottom">\n <td width="150" valign="bottom" >\n <label for="q9">Uploadfiles</label>\n </td>\n <td valign="bottom">\n <input type="file" size="20" name="q9_Uploadfiles" id="q9">\n </td>\n </tr>\n\n <tr valign="bottom">\n <td width="150" valign="bottom" >\n \n </td>\n <td valign="bottom">\n <input type="submit" name="q7_" value="Submit">\n </td>\n </tr>\n</table>\n\n</form>\n \n</html>
!直接绘制\n一般来说,板框外形我们画在keepout层(禁止布线层),即在keepout层画出我们需要的外形。\n在dxp中,菜单“设计\spcb板形状”,专用于板型绘制,但是并不常用,因为使用keepout来绘制的板型,非常方便以后[[铺铜]]以及异型板的绘制。\n“方便铺铜“,是指keepout可以限定[[铺铜]]的范围。\n”异型板绘制“是用线来描述一个板的外形肯定要比使用\s设计\spcb板形状\s菜单方便。\n具体见图:\n[img[images|keepoutpolygon.JPG]]\n如图所示,棕线以上局部铺铜在keepout外的部分会自动删除(使用keepout定义板框)。\n棕线以下部分没有使用keepout定义板框,所以铺铜产生错误。\n-----\n 理解使用keepout作为板框之后 ,会为以后的设计带来方便 ,因为keepout很容易做改动,\n并且改动之后可以使用菜单\s设计\spcb板形状\s定义从选择的物体 来再次定义板框,详细如下图:\n[img[images|bshape1.JPG]]
\n*鼠标放在元件体上,按下左键不要松开,移动元件\n-----\n*[[选中|选中元件]]元件,按下鼠标左键不要松开,移动元件\n----\n*使用工具条,移动元件\n这是一个特殊的操作,和上述两种方法的不同点在于,移动的基准点由你自己来选择。(^_^,动手体验下)\n参见下图:\n[img[images|movepart.JPG]]\n----\n
/*\n''套件:'' zh_CN\n''功能:'' TiddliWiki 界面简体中文化\n''作者:'' Bram Chen, http://ptw.sf.net/\n''版本:'' 2.0.7 beta 1\n''说明:''\n** Mar 23 2006\n** 添加 config.messages.tiddlerLinkTooltip = "%0 - %1, %2";\n** 添加 config.commands.saveTiddler.readOnlyText = "完成";\n** 添加 config.commands.saveTiddler.readOnlyTooltip = "返回正常显示模式";\n** 改变 config.messages 翻译方式。\n* Feb 24 2006\n** 添加 config.messages.unsavedChangesWarning: "注意! 尚未保存变更\sn\sn[确定]存档,或[取消]放弃存档?",\n** 添加 config.messages.confirmExit: "--------------------------------\sn\snTiddlyWiki 以更改内容尚未保存,继续的话将遗失这些更动\sn\sn--------------------------------",\n** 添加 config.messages.saveInstructions: "SaveChanges",\n** 添加 config.commands.editTiddler.readOnlyText = "检视";\n** 添加 config.commands.editTiddler.readOnlyTooltip = "检视本文之原始内容";\n** 添加 config.commands.saveTiddler.readOnlyText = "完成";\n** 添加 config.commands.saveTiddler.readOnlyTooltip = "正常显示模式";\n* Feb 04 2006\n 1.config.shadowTiddlers.TabMore 添加 TabMoreShadowed\n* Jan 25 2006\n 1.Reworking config.views\n* Dec 31 2005\n** 添加 config.views.wikified.toolbarJump: {text: "卷页", tooltip: "卷页至其他已开启的文章"},\n** 修改 config.views.wikified.editor.toolbarDelete: {text: "删除", tooltip: "删除文章", warning: "确定删除 '%0'?"},\n** 删除 config.macros.jump.\n** 添加 config.messages.messageClose: {text: "关闭", tooltip: "关闭此讯息"},\n** 修改 config.views.wikified. tag : {...., openTag = "开启标签 '%0'" , ....};\n* Dec 06 2005:\n** 添加 config.macros.tagging.label = "引用标签:";\n** 添加 config.macros.tagging.labelNotTag = "无引用标签";\n** 添加config.macros.tagging.tooltip = "列出标签为 '%0' 的文章";\n** 修改config.macros.search.successMsg = " %0 篇符合条件: %1";\n** 修改config.macros.search.failureMsg = " 无符合条件: %0";\n* Nov 30 2005:\n** 添加 config.views.wikified: {toolbarCloseOthers: {text: "关闭其他", tooltip: "关闭其他文章"},\n** 添加 config.macros.jump.label = "跳转";\n** 添加 config.macros.jump.prompt = "跳转至其他已开启的文章";\n* Nov 23 2005:\n** 修改 config.messages.macroError: "巨集 <<%0>>運行错误",\n** 修改 config.messages.macroErrorDetails: "運行巨集<<%0>>时,发生错误 :\sn%1",\n* Oct 28, 2005:\n** 添加 config.messages.shadowedTiddlerToolTip\n** 添加 config.macros.list.shadowed.prompt\n** 修改 config.views.wikified.tag\n*/\n//{{{\nversion.extensions.zh_CN = {major: 2, minor: 0, revision: 6, beta: 1,\n date: new Date("Mar 23, 2006"),\n name: "zh_TW",\n type: "Plugin",\n author: "BramChen",\n source: "http://sourceforge.net/project/showfiles.php?group_id=150646"\n};\n\n// // ''Messages''\n\nvar lingo = config.messages;\nlingo.customConfigError = "customConfig 错误 - '%1' - %0";\nlingo.savedSnapshotError = "此 TiddlyWiki 未正确保存,详见 http://www.tiddlywiki.com/#DownloadSoftware";\nlingo.subtitleUnknown = "(未知)";\nlingo.undefinedTiddlerToolTip = "'%0' 尚无内容";\nlingo.shadowedTiddlerToolTip = "'%0' 尚无内容, 但已定义隐藏的缺省值";\nlingo.tiddlerLinkTooltip = "%0 - %1, %2";\nlingo.externalLinkTooltip = "外部链接至 %0";\nlingo.noTags = "未设定标签的文章";\nlingo.notFileUrlError = "须先将此 TiddlyWiki 存至档案,才可保存变更";\nlingo.cantSaveError = "此浏览器无法保存变更,建议使用FireFox";\nlingo.invalidFileError = " '%0' 非有效之 TiddlyWiki";\nlingo.backupSaved = "已保存备份";\nlingo.backupFailed = "无法保存备份";\nlingo.rssSaved = "RSS feed 已保存";\nlingo.rssFailed = "无法保存 RSS feed ";\nlingo.emptySaved = "已保存范本";\nlingo.emptyFailed = "无法保存范本";\nlingo.mainSaved = "主要的TiddlyWiki已保存";\nlingo.mainFailed = "无法保存主要 TiddlyWiki. 所作的改变未保存";\nlingo.macroError = "宏 <<%0>> 运行错误";\nlingo.macroErrorDetails = "运行宏 <<%0>> 时,发生错误 :\sn%1";\nlingo.missingMacro = "无此宏";\nlingo.overwriteWarning = "'%0' 已存在,[确定]覆盖之";\nlingo.unsavedChangesWarning = "注意! 尚未保存变更\sn\sn[确定]保存,或[取消]放弃保存?";\nlingo.confirmExit = "--------------------------------\sn\snTiddlyWiki 以更改内容尚未储存,继续的话将遗失这些更动\sn\sn--------------------------------";\nlingo.saveInstructions = "SaveChanges";\nlingo.messageClose.text = "关闭";\nlingo.messageClose.tooltip = "关闭此讯息";\nlingo.dates.months = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"];\nlingo.dates.days = ["日", "一","二", "三", "四", "五", "六"];\nconfig.messages = lingo;\n\n// // ''config.views'' \nlingo =config.views;\nlingo.wikified.tag.labelNoTags = "未设标签";\nlingo.wikified.tag.labelTags = "标签: ";\nlingo.wikified.tag.openTag = "开启标签 '%0'";\nlingo.wikified.tag.tooltip = "显示标签为 '%0' 的文章";\nlingo.wikified.tag.openAllText = "开启以下所有文章";\nlingo.wikified.tag.openAllTooltip = "开启标签为 '%0' 的文章";\nlingo.wikified.tag.popupNone = "仅此文标签为 '%0'";\nlingo.wikified.defaultText = "";\nlingo.wikified.defaultModifier = "(missing)";\nlingo.wikified.shadowModifier = "(shadow)";\nlingo.editor.tagPrompt = "设定标签之间以空白区隔,[[标签含空白时请使用双中括弧]],或点选现有之标签加入";\nlingo.editor.tagChooser.text = "标签";\nlingo.editor.tooltip = "点选现有之标签加至本文章";\nlingo.editor.popupNone = "未设定标签";\nlingo.editor.tagTooltip = "加入标签 '%0'";\nlingo.editor.defaultText = "";\nconfig.views = lingo;\n\n// // ''Macros\nlingo =config.macros;\nlingo.search.label = " 查找";\nlingo.search.prompt = "查找本 Wiki";\nlingo.search.sizeTextbox = 15;\nlingo.search.accessKey = "F";\nlingo.search.successMsg = " %0 篇符合条件: %1";\nlingo.search.failureMsg = " 无符合条件: %0";\nlingo.tagging.label = "引用标签:";\nlingo.tagging.labelNotTag = "无引用标签";\nlingo.tagging.tooltip = "列出标签为 '%0' 的文章";\nlingo.timeline.dateFormat = "YYYY0MM0DD";\nlingo.allTags.tooltip = "显示文章- 标签为'%0'";\nlingo.allTags.noTags = "没有标签的文章";\nlingo.list.all.prompt = "依字母排序";\nlingo.list.missing.prompt = "被引用且内容空白的文章";\nlingo.list.orphans.prompt = "未被引用的文章";\nlingo.list.shadowed.prompt = "这些隐藏的文章已定义缺省内容";\nlingo.closeAll.label = "全部关闭";\nlingo.closeAll.prompt = "关闭所有开启中的 tiddler (编辑中除外)";\nlingo.saveChanges.label = "保存变更";\nlingo.saveChanges.prompt = "保存所有文章,产生新的版本";\nlingo.permaview.label = "引用链接";\nlingo.permaview.prompt = "可存取现有开启之文章的链接位址";\nlingo.newTiddler.label = "添加文章";\nlingo.newTiddler.prompt = "添加 tiddler";\nlingo.newJournal.label = "添加日志";\nlingo.newJournal.prompt = "添加 jounal";\nconfig.macros = lingo;\n\n// // ''Toolbars (Commands)''\nlingo = config.commands;\nlingo.closeTiddler.text = "关闭";\nlingo.closeTiddler.tooltip = "关闭本文";\nlingo.closeOthers.text = "关闭其他";\nlingo.closeOthers.tooltip = "关闭其他文章";\nlingo.editTiddler.text = "编辑";\nlingo.editTiddler.tooltip = "编辑本文";\nlingo.editTiddler.readOnlyText = "检视";\nlingo.editTiddler.readOnlyTooltip = "检视本文之原始内容";\nlingo.saveTiddler.text = "完成";\nlingo.saveTiddler.tooltip = "确定修改";\nlingo.saveTiddler.readOnlyText = "完成";\nlingo.saveTiddler.readOnlyTooltip = "正常显示模式";\nlingo.cancelTiddler.text = "取消";\nlingo.cancelTiddler.tooltip = "取消修改";\nlingo.cancelTiddler.readOnlyText = "完成";\nlingo.cancelTiddler.readOnlyTooltip = "返回正常显示模式";\nlingo.deleteTiddler.text = "删除";\nlingo.deleteTiddler.tooltip = "删除文章";\nlingo.deleteTiddler.warning = "确定删除 '%0'?";\nlingo.permalink.text = "引用连结";\nlingo.permalink.tooltip = "本文引用链接";\nlingo.references.text = "引用";\nlingo.references.tooltip = "引用本文的文章";\nlingo.references.popupNone = "本文未被引用";\nlingo.jump.text = "跳转";\nlingo.jump.tooltip = "跳转至其他已开启的文章";\nconfig.commands = lingo;\n\n// // ''ShadowTiddlers''\nlingo = config.shadowTiddlers;\nlingo.SideBarOptions = "<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal YYYY0MM0DD>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 偏好设置 '变更 TiddlyWiki 选项'>>";\nlingo.AdvancedOptions = "<<option chkOpenInNewWindow>> 链接开启于新视窗\sn<<option chkSaveEmptyTemplate>> 保存范本\sn<<option chkToggleLinks>> 点击文章使已开启者关闭\sn\sn<<option chkHttpReadOnly>> 隐藏编辑功能 ({{{http:}}})\sn<<option chkForceMinorUpdate>> 修改文章不变更日期时间\sn(确认修改同时按 Shift 键,或只按 Ctrl-Shift-Enter)\sn<<option chkConfirmDelete>> 删除文章前确认\sn\sn编辑模式中显示列数: <<option txtMaxEditRows>>\sn存放备份文件的资料夹: <<option txtBackupFolder>>";\nlingo.OptionsPanel = "这些设置将暂存于浏览器中,\sn请签名<<option txtUserName>>\sn (范例:WikiWord)\sn\sn <<option chkSaveBackups>> [[保存备份]]\sn<<option chkAutoSave>> [[自动保存]]\sn<<option chkGenerateAnRssFeed>> [[产生 RssFeed]]\sn<<option chkRegExpSearch>> [[正规式搜索]]\sn<<option chkCaseSensitiveSearch>> [[区分大小写搜索]]\sn<<option \snchkAnimate>> [[使用动画显示]]\sn\sn AdvancedOptions";\nlingo.SideBarTabs = "<<tabs txtMainTab 最近更新 '依更新日期排序' TabTimeline 全部 '所有文章' TabAll 分类 '依标签分类' TabTags 更多 '其他' TabMore>>";\nlingo.TabMore = "<<tabs txtMoreTab 未完成 '内容空白的文章' TabMoreMissing 未引用 '未被引用的文章' TabMoreOrphansTabMoreOrphans 缺省文章 '缺省的影子文章' TabMoreShadowed>>";\nconfig.shadowTiddlers = lingo;\nlingo = null;\n\n// // ''Date formatString''\nDate.prototype.formatString = function(template){\n template = template.replace(/YYYY/g,this.getFullYear() + '年');\n template = template.replace(/YY/g,String.zeroPad(this.getFullYear()-1911,2) + '年');\n template = template.replace(/MMM/g,config.messages.dates.months[this.getMonth()] + '月');\n template = template.replace(/0MM/g,String.zeroPad(this.getMonth()+1,2) + '月');\n template = template.replace(/MM/g,this.getMonth()+1 + '月');\n template = template.replace(/DDD/g,'星期'+config.messages.dates.days[this.getDay()]);\n template = template.replace(/DDth/g,this.getDate()+this.daySuffix());\n template = template.replace(/0DD/g,String.zeroPad(this.getDate(),2)+ '日');\n template = template.replace(/DD/g,this.getDate() + '日');\n template = template.replace(/0hh/g,String.zeroPad(this.getHours(),2));\n template = template.replace(/hh/g,this.getHours());\n template = template.replace(/0mm/g,String.zeroPad(this.getMinutes(),2));\n template = template.replace(/mm/g,this.getMinutes());\n template = template.replace(/0ss/g,String.zeroPad(this.getSeconds(),2));\n template = template.replace(/ss/g,this.getSeconds());\n return template;\n};\n//}}}
这里所说的编辑元件,实际是指编辑原理图符号,原理图符号存在于schlib中,即原理图符号库,当然DXP的大部分库都是集成库。顺便提一下集成库的概念,在普通的layout软件中,原理图符号和pcb封装是独立的,但是在DXP中,引入了集成库的概念,就是说一个有个特殊的库,这个库不仅仅存储原理图符号,而且也关联了它的PCB封装,当然你也是可以改动的,但对于常用元件,一般都无需改动,直接就可以使用,这是非常方便的一个管理方式,在99se中,你选择了原理图符号,但是还要手动指定PCB封装,如果是原理图元件非常多,这样工作量是非常大的。\n有时候我们也使用独立库,毕竟独立库的灵活性比较大。\n因为实际电子元件数量非常多,有时候我们需要的元件在DXP库中并没有收录,这个时候我们就需要建立一个原理图符号。\n编辑步骤如下: \n*建立原理图符号库,即新建/库/原理图库\n*在出现的编辑环境中,我们一般在第四象限编辑。编辑操作有:添加边框,添加管脚,指定管脚电气属性,这些操作利用绘图工具栏可以完成。\n*完成符号绘制后,我们点开工具/元件属性,为刚建立的元件指定追加封装,指定名称。\n*保存库\n[img[images|editic.JPG]]\n----\n在使用刚建立的库文件的时候,我们只需要将新建立的库文件添加到项目中即可,可以copy过去,也可以直接添加(不一定在项目目录)。\n具体操作方法参见[[添加库|添加库]]\n----\n!TIPS\nP/R 放置矩形边框\nP/P放置管脚(PIN),鼠标没有松开时按下TAB键,弹出属性设置,输入名称,编号,电气属性(INPUT OUTPUT IO POWER ~HiZ)\n
这里对sch编辑环境和pcb编辑环境的快捷键进行统计说明\nQ 单位切换 mil mm\nPAGEUP 放大 \nPAGEDOWN 缩小\nEND 重绘或者刷新\nHOME 将鼠标位置放大至屏幕中间\n右键点击,按住不放为移动sch,pcb图形。
网格间距的设置非常重要,它的设置限制了鼠标在布线,移动元件的是吸附间距。\n在布局,布线过程中,调整合理的网格间距可以提高工作效率。\n具体设置如下图:\n打开 设计\sPCB板选择项\n[img[images|snap.JPG]]\n---\n捕获网格为画线,填充区等的吸附网格间距。\n元件网格为移动元件时的吸附网格间距。\n可视网格为背景上显示的网格点间距。\n
不推荐使用自动布线以及自动布局。\n这里所说的网络布线,即用导线连接网络,导线为虚拟概念,即为在pcb上画出的印制线。\n----\n!基本操作:\n布线前提要求:[[摆放好元件|摆放元件]],设置好[[规则|规则设定]]。\n布线的快捷操作:按下P,按下T(place/track)。\n布线属性修改:布线过程中按下tab键(修改线宽)。\n-----\n!其他操作:\n布线过程中按下小键盘*,切换走线层,并自动添加过孔(VIA)。\n双击导线为修改导线属性。\n单击导线,导线处于选中状态(导线点亮) ,此时可点击导线端点,修改导线长度。\n布线过程中,按下SHIFT+空格,调整拐角模式,45度角模式,调节顺序为圆角,直角,任意角度。\n布线过程中,按下PAGE UP,PAGE DOWN放大缩小图形 。\n右键为移动pcb图。\n-----\n!基本原则:\n笼统描述下,初学者可注意下: \n少走直角拐角。\n相邻两层的布线方向最好正交,提高布通率。\n电源线不能太细。\n线宽不可小于5mil,线间距最好大于8mil(板厂工艺限定)。\n\n
实际上在dxp中,网络表导入已经是不怎么常用的功能了,在用dxp的sch编辑环境下绘制的原理图,无须生成网络表。\n当建立sch文件之后,我们使用[[更新到PCB]]这个功能跳过了网络表生成这一步骤。详细操作参见[[更新到PCB]]。\n----\n当然我们也可以在没有原理图的情况下绘制pcb,前提就是有网络表文件。\nDXP支持多种网络表格式,比如EDF,NET格式。\n---\n 这里推荐使用dxp编辑好原理图,并直接[[更新到PCB]]。
网络间距规则是指人为设定不同电气网络之间的最小距离。比如VCC和GND导线间的距离。\n如果我们设置VCC,GND之间的最小间距为15mil,则参见如下图设置:\n[img[images|clearance.JPG]]\n----\n常用的操作:\n!设置铺铜和其他网络的间距\n则第一个匹配对象通过高级查询,查询助手(见上图),设置为Inpolygon\n第二个匹配对象设置为用默认all\n在约束栏输入约束间距。ok\n
这里所说的翻转是将一个元件从顶层翻转至底层,或者反之。\n!元件一般不允许水平镜像翻转。\n元件默认是被放置在顶层的,对需要翻转的元件,操作如下:\n*选中元件,不要松开鼠标,按下键盘L\n*双击元件,更改元件属性框架中的层设置为Bottom Layer或者Top Layer\n*使用检查器,更改元件层
第一次启动DXP时为E文界面,如果你需要或你喜欢汉化界面,汉化方法如下:\n*选择dxp系统菜单\n*选择属性(preferences)\n*systerm general选项卡上选择:use localized resources\n* apply ok\n*重启动dxp,如果第一次不成功,再试验一次\n操作截图如下:\n[img[images|local.JPG]]
所谓规则,即为人为规定的布线布局前提,设定好规则之后,以后的布线,布局会严格按照规则设定来执行。\n合理的布线规则设定,能够大大提高设计效率,它能够在设计过程中避免人为错误。\n点设计\s规则\s打开可打开规则设计选项卡。\n主要个规则设定有:\n网络间距,布线宽度,过孔焊盘大小相关,元件间距等。\n上述4个主要规则是必须要掌握的,下面标签逐个介绍。\n<<tabs tabclass\n网络间距 '点开为网络间距说明' 网络间距\n布线宽度 '点开为布线宽度说明' 布线宽度\n过孔焊盘大小 '点开为过孔焊盘大小说明' 过孔焊盘大小\n元件间距 '点开为元件间距说明' 元件间距\n>>\n
设计规则检查用于pcb文件查错,即依照我们在[[规则|规则设定]]中设置的限制条件,全面检查pcb文件。\n当有违反规则限制的错误发生时,产生报警指示色。\n操作方法为:工具\s设计规则检查\n[img[images|rulecheck.JPG]]\n如图,右侧栏目勾选需要检查的内容。\n点击运行设计规则检查,则dxp自动执行规则检查。\n当有违规发生时,应该对照规则的错误性质,排除错误。
!''过孔(Via)''\n\n为连通各层之间的线路,在各层需要连通的导线的交汇处钻上一个公共孔,这就是过孔。工艺上在过孔的孔壁圆柱面上用化学沉积的方法镀上一层金属,用以连通中间各层需要连通的铜箔,而过孔的上下两面做成普通的焊盘形状,可直接与上下两面的线路相通,也可不连。\n一般而言,设计线路时对过孔的处理有以下原则:\n (1)尽量少用过孔,一旦选用了过孔,务必处理好它与周边各实体的间隙,特别是容易被忽视的中间各层与过孔不相连的线与过孔的间隙,如果是自动布线,可在 “过孔数量最小化”( Via Minimization)子菜单里选择“on”项来自动解决。\n (2)需要的载流量越大,所需的过孔尺寸越大,如电源层和地层与其它层联接所用的过孔就要大一些。\n
因为pcb板厂的加工能力不同,有时候我们需要将焊盘和过孔设置为板厂加工能力范围之类大小。\n即内径,外径均不可太小或者太大,这个时候我们需要设置过孔,焊盘大小。\n为了避免螺丝孔(比较大)规则检查报错,我们也需要调整规则,设置孔内外径的最小最大值。\n设置方法如下:\n[img[images|maxpad.JPG]]\n----\n另外还需调整manufacturing\shoresize规则,设置hore大小。\n
连线操作就是连接导线和总线,导线是虚拟意义的导体连线,总线仅仅为了方便读图和简化走线,关键是其总线入口的画法以及网络标号的指定。\n连线注意点:\n*良好的网格捕捉吸附方便于连线,如果没有设置网格吸附,容易造成虚连\n*连线的快捷键P/W\n*影响原理图整体美观的连线,可以在需要连接的两端打上网络标号\n[img[images|BUSWIRE.JPG]]\n----\n总线编辑:\n对于连接比较整齐的连线,比如数据总线,地址总线用总线的方式连接,方便读图\n多数据输入口也用总线。\n*绘制总线\n*编辑总线入口\n*添加网络\n例如:\n数据总线 DATA[D0..D8]\n总线入口: D0,D1...D8
\n对于未[[锁定|锁定解锁元件]]的元件,单击则处于选定状态\n-----\n对于锁定的元件,需要[[解锁|锁定解锁元件]]然后再选择\n----\n按住shift使用鼠标单击,可选择多个元件\n----\n单击已经选中的元件,则为取消选择\n----\n!已经选中的元件,会出现一个背景边框。\n*小技巧\n键盘上按下J,再按下C,输入元件标号,比如R1,则鼠标跳到R1位置,无须自己满板寻找。\n意义为 Jump, component
铺铜(Polygon)为某一网络的大面积铜皮层。\n铺铜操作为:P/G,放置/敷铜。\n铺铜有以下典型作用。\n<<tabs tabclass\n电源层的铺铜 '点开为电源层的铺铜说明' 电源层的铺铜\n散热部分的铺铜 '点开为散热部分的铺铜说明' 散热部分的铺铜\n填充区域 '点开为填充区域的说明' 填充区域\n>>\n\n
对于封装的管理,DXP确实下了一番功夫,因为我还没有发现其他的eda软件中可以如此方便的指定封装。\n----\n闪亮点:\n*集成库\n*手动选择封装,默认封装,使用集成封装\n*批量修改封装\n[img[images|addfootprint.JPG]]\n----\n集成库的引入,让部分元件都自己带有正确的封装,手动选择封装避免了手动输入封装名称引起的错误。\n----\n指定方法:\n*双击元件,弹出属性对话框\n*点击追加,选择footprint\n*在弹出pcb模型中选择所需要的封装\n* 确定,更改完成\n----\n批量指定封装:\n*选择若干个需要[[批量更改|批量修改]]的元件\n*点开检查器(Inspector)\n*在current footprint 栏目输入新的封装名\n*回车,更改完成\n----\n批量指定应该是最常用的功能了,可以一次完成相同类型的所有元件封装指定,在99s中操作是比较麻烦的。
对于已经定位或者以后无须移动的元件,可以锁定,这样避免误移动而造成不要的麻烦。\n比如,初步完成布局后,可以锁定所有元件,这样在布线的时候,就不会误移动元件。\n----\n如果需要移动锁定的元件,先解锁,再移动。\n有两种方法可以锁定或者解锁一个元件:\n*双击元件,在元件属性框架下,勾选锁定\n*选择元件,使用检查器(INSPECTOR),勾选Locked\n两种方法如下图:\n[img[images|locked.JPG]]\n解锁为反操作,不再赘述。
操作见图片说明,生成后的库文件在左边projects栏目下可见,也可以另存为方式保存。\n[img[images|makeintlib.JPG]]
项目生成库的目的是方便管理。\n如果我们完成一个项目设计,可以采用项目生成库的方法产生项目库,它仅仅包括我们的设计项目中元件的原理图符号和pcb符号。\n项目设计有sch和pcb两部分,那么库也有这两部分。\n具体操作方法如下:\n*[[产生sch库文件|SCH后期库文件处理]]\n*[[产生pcb库文件|PCB后期库文件处理]]\n*[[产生集成库|集成库生成]]
!''飞线''\n\n 自动布线时供观察用的类似橡皮筋的网络连线,在通过网络表调入元件并做了初步布局后,用“Show命令就可以看到该布局下的网络连线的交叉状况,不断调整元件的位置使这种交叉最少,以获得最大的自动布线的布通率。这一步很重要,可以说是磨刀不误砍柴功,多花些时间,值!