AltiumDesigner的常用设计总结

基础概念

  • 在PCB的设计中,自下到上分了很多层, 在altium中可以通过Design–Layer Stack Manager进行多信号层的添加,删除以及修改各个层的材料等属性值。

    常用的电路层如下:
    mechanical layer:定义pcb板的物理边框
    keep out layer:禁止布线层, 用于禁止布线。一般生产的时候, 可能直接也作为物理边框来生产电路板, 当我们进行铺铜的时候,勾选去除死铜,便可以去除超出keep out layer外部的铺铜,我们便可以按照keepout 边缘形状来进行铺铜。
    top overlayer: 顶层的丝印层
    top paste: 顶层焊膏层, 即可以用它来制作印刷锡膏的钢网漏锡,用来SMT焊接,并且开孔可能会比实际焊盘小
    top solder:顶层焊合层,即在铺上绿油的阻焊层开孔镀锡,以便焊接器件
    top layer:顶层的信号层,
    Dielectric: 绝缘层的设置,
    bottom layer:底层的信号层
    bottom solder:底层的焊合层
    bottom paste:底层焊膏层
    bottom overlayer:底层的丝印层
    multi layer:用来放置过孔

常见快捷键与使用技巧

在使用altium designer的快捷键之前, 务必将输入法设置成英文输入法, 否则很多快捷键会与输入法产生冲突,导致不生效。

  • 切换走线的宽度快捷键为shift+w,可以灵活地在一些预设的走线中进行切换。
  • 电源线可以通过敷铜解决线宽度不够的问题。
  • 我们希望在走线的时候看到有多少空间,可以使用快捷键ctrl+w, 就会显示出那些位置可以走线。
  • !!!超好用!!! 原理图画好了,导入PCB的元件乱七八糟,要对着原理图一个一个找, 首先需要打开交互式设计,然后在原理图中对要布局的模块进行框选(此时PCB视图中相关的元器件就会被选中),然后进入PCB视图,选择 Tools-Component Placement-Arrange within Rectangular,最后在要放置的位置画一个框表示界限,之后AD就会自动布局你的元器件了,
  • 快捷键位shift+E。大家可以看到我在按下shift+E之后左下角是有Hotspot Snap的字样的,这个快捷键就是切换不同的吸附模式(不吸附、吸附到所有层、吸附到当前层)。
  • 切换走线的模式,快捷键为shift+r。大家看图片的最底部的文字,实际这个快捷键就是在不同的走线模式下进行切换, 比如说, 自动绕线, 自动推开原有布线, 自动停止如果无法走线的话。
  • 覆铜的时候,有两种方式可以选择, 一种是网格进行十字连接,一种是完全连接在一起, 在rule--> poloy 中可以设设置连接类型
  • 敷铜时可以通过shift+space进行拐角的形状选择不同的拐角形状。
  • 敷铜时, 比如进行挖孔等操作,敷铜不会立马生效, 需要重新敷一下铜, 才能看到新的敷铜效果。
  • 在原理图的设计中, 选中器件,然后shift拖曳 可以进行复制,选中ctrl移动 可以进行器件的移动。
  • 在进行多个选项的配置操作的时候, 按住shift先选中第一个,再选中最后一个, 就能全部选中。
  • 在原理图和PCB图中, 布线和放置元器件的时候, 点击TAB按键,可以进入正在放置的对象的相关的属性的修改,比如线宽等, 是altium中非常用的功能, 在prefrence中可以配置各种设计时的默认值, 比如线宽, 过孔的尺寸。
  • PCB设计中,按键2,显示布线视图
  • PCB设计中,按键3,显示三维视图, shift+右键 可以转动PCB电路板的显示视图。
  • PCB设计中, 布线视图中的一排小工具栏,右键每个图标的话,其实可以有更多该类型工具的选项。
  • PCB设计右下角的panel面板可以调出很多常用的设置框,比如单股线,多股线的选择, 等长线的选择等等。
  • PCB设计中,按键1,切换到layer stack region视图,可以用来设计FPC软硬板。 此时通过design+spilt line 可以添加软硬板的分割线(通过分栏design+bending line设置弯曲线, 设置flex/rigid属性,如果设置rigid值,记得设置3D locked, 这在三维弯曲的时候,用于将硬板固定,以便软板弯曲显示),按键5可以在三维视图显示弯曲效果。
  • 按键Q用于切换显示的尺寸。
  • space 按键用于翻转器件, shift+space 用于逆时针翻转器件。
  • G 可以切换显示的最小移动栅格尺寸。
  • ctrl+f 可以翻转显示PCB电路板的背面
  • 设计原理图的时候, 快捷键P可以放置常见的器件,比如compile mask,用来屏蔽部分原理图, 避免被编译并更新到pcb当中。
  • 在绘制元件原理图的时候,引脚属性当中Designator(标识符)中的数值,对应的就是PCB中焊盘的Designator的值,即如果原理图中引脚的Designator为1,则对应PCB中Designator为1的焊盘。
  • 使用project-validate pripcb,可以用来检查绘制的电路原理图的错误
  • 使用tools-design rules check,可以用来检查绘制的电路PCB图的错误
  • edit-origin,用来设置绘制pcb中的原点,ctrl+end可以用来使pcb视图回到origin原点
  • altium十分常用的查找功能,Shift+F可选择与之相同的对象, Shift+C ,清除当前过滤的对象
  • F11按键可以打开或关闭property属性面板,方便编辑器件的属性。
  • 绘制PCB电路时, 通过 shift+space 可以改变交互走线时的方式, 比如修改线弯曲时的形状。
  • P+Polygon Pour,铺铜时, 可以设置整片铺铜,或者相关的网格铺铜。
  • L按键可以显示所有层, 可以配置层的颜色以及显示。
  • ctrl+点击layers下方的层, 可以突出显示某个层
  • shift+s,可以配置只显示某个层
  • s (edit+select)可以显示大部分选择操作动作,比如全选,反选,选取部分
  • shift+左键点击,可以进行器件的多选,选择之后右键可以跳出很多常用选项, 比如排列对齐等。
  • shift+左键双击, 可以跳出重叠的各个器件,以便选择,这在器件重叠的时候,尤其方便。
  • 务必记得切换到某个层之后, 再去选择某个层的器件, 因为器件时常会出现重叠的现象, 比如过孔的选择,要先选择切换到multi layer,才比较方便选择过孔,并设置过孔。
  • ctrl+shift+滚轮, 可以切换各个层, 特别是在布过孔的线时, 很方便走线。
  • 设置PCB形状的时候, design+board shape可以设置板子的形状,这个形状可以选择keepout layer或者mechanical layer。(通过Tools+convert+convert selected primitive to keepout可以将指定的层的形状的线转换为keepout层)
  • 设计时, 如果要添加via stitching/shielding,即添加屏蔽孔以及缝合孔, 也可以当作散热孔来使用,通过Tools+Via stitching/Shielding来进行配置,在绘制功率板的时候, 该功能便很常用。
  • 布线完之后,通过tool+teardrop可以添加连接点的泪滴铜, 增强连接强度。
  • TopOverLayer选择true font ,可以设置各类字体类型的属性,比如倾斜加粗,反色等等,而stroke font 笔画字体,只能设置宽高。
  • 按键J可以快速进行器件,线的跳转。
  • 生成altium logo的脚本文件放置在X:\Program?Files\Altium2004\Examples\Scripts\Delphiscript_Scripts\Pcb\PCB_Logo_Creator下
  • altium 错误提示很简单 ,主语拿出来 就很好理解,有时候有一些规则并不符合生产标准, 通过design+rule可以编辑修改或者屏蔽失能。
  • 在design+make integrated library可以产生集成库。
  • 在进行DRC检查的时候, 有时候错误非常多,超出500条之后, 会导致一些很重要的错误没有报出,此时注意修改stop volations的条数限制。
  • 在设计中, 经常需要找数据手册以及元器件之类的东西, 那么可以选中 Panels--->Manufacturer Part, 进入该面板之后, 我们可以搜索各种各样的元器件的封装并添加到电路设计中,也可以非常方便的获取到数据手册的资源。
  • 修改默认的电路设计规则, 操作方法为,点击Tools-Preferences,然后在左侧找到PCB Editor下面的Defaults
  • 导出示意图,创建这个视图,首先需要创建一个Draftsman的文件。然后保持默认的参数,直接点确定, 然后选中这个Draftsman文件,点击Place, 其中:
    Board Assembly View 就是装配视图,也就是轮廓图。然后可以在右侧属性中设置比例、视角等等
    Board Fabrication View 就是做出来的板子的视图,没有元器件的那种
    Addtional Views 里面还有很多有趣的视图,大家可以去探索呀~

常用设计规则

关于电路设计规则, 可参考以下设计书籍:
链接:https://pan.baidu.com/s/1z7WaQBLp_999i_X3cSt9zg
提取码:6cj2

  • 元器件尽量放置在单面, 这样可以可以降低pcb中,比如SMT的加工,点红胶成本。
  • 布线大致的顺序: 电源线, 信号线, 在一个单独的平面中布置地面。
  • 模拟电路和数字电路要隔离开, 然后进行单点接地,避免数字电路产生的噪声干扰。
  • 器件的电源去耦很重要, 一般通过添加0.1uf,10uf组合的电容来降低电源噪声。 小电容可以吸收容纳较少的电子电流, 这样对于一些高频的小尖波就可以被消除掉。
  • 设计的时候, 尽量要使电流的环路面积最小,电流的噪声变化会对器件产生较多的磁场干扰,地线围绕电路板走一圈,相当于一个内部面积的线圈,线圈面积越大,相同外部磁场的情况下,通过该线圈的磁通越大,线圈上感应出的电动势就越大,这个电动势不是我们期望的,也就是常说的干扰!
  • 为了使电流能够顺畅地流动,避免尖角和窄小的布线路径。
  • 一般双层板的过孔的孔径最小为12mil, 直径为20mil, 敷铜时,如天线的敷铜, 可以更改 **“Clearence”**的规则,使线与不同信号之间的敷铜间距的为6mil。
  • 线与边缘的最小距离最少为 10mil.
  • 敷铜的时候, 一般相同的NET直接选择完全的覆盖敷铜。关于Polygon的一些默认属性非常坑爹,每次都需要手动修改,比如说Pour Over Same Net Polygons Only需要改成Pour over all same Net Objects
  • Via过孔默认是露出铜的,有的人(比如说我)就喜欢过孔盖油,避免不必要的短路,这个有必要改成盖油的形式。
  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验要求: 通过使用Java JDBC连接数据库,实现一个广告墙程序,能够实现以下功能: 1. 展示当前可以展示的广告,包括广告的名称、内容和展示时间。 2. 可以添加新的广告,包括广告的名称、内容和展示时间。 3. 可以删除已经展示过的广告。 4. 可以修改广告的内容和展示时间。 实验步骤: 1. 创建数据库表格 首先需要创建一个表格来存储广告信息,表格包括以下字段:广告编号、广告名称、广告内容、展示时间。 在MySQL数据库中,可以使用以下语句创建广告表格: ```sql CREATE TABLE ad_wall ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(20) NOT NULL, content TEXT NOT NULL, show_time INT(11) NOT NULL DEFAULT '0', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 2. 连接数据库 在Java中,可以使用JDBC连接MySQL数据库。首先需要下载MySQL的JDBC驱动程序,并且在代码中加载驱动程序。 ```java Class.forName("com.mysql.jdbc.Driver"); ``` 然后可以使用DriverManager来连接数据库,并获取一个Connection对象。 ```java String url = "jdbc:mysql://localhost:3306/testdb"; String user = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 执行SQL语句 连接数据库之后,就可以使用Statement对象来执行SQL语句。例如,查询广告表格中的所有数据可以使用以下语句: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM ad_wall"); ``` 执行INSERT、UPDATE、DELETE语句时,可以使用以下语句: ```java stmt.executeUpdate("INSERT INTO ad_wall(name, content, show_time) VALUES('广告名称', '广告内容', 10)"); ``` 4. 处理结果集 执行查询语句后,可以使用ResultSet对象来获取查询结果。例如,可以使用以下代码输出查询结果: ```java while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); String content = rs.getString("content"); int showTime = rs.getInt("show_time"); System.out.println(id + "\t" + name + "\t" + content + "\t" + showTime); } ``` 5. 实现广告墙程序 将上述步骤结合起来,就可以实现一个简单的广告墙程序。程序可以使用Swing来实现GUI界面,使用JDBC来连接数据库并执行SQL语句。 以下是一个简单的广告墙程序示例: ```java import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; public class AdWall extends JFrame { private static final long serialVersionUID = 1L; private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; private static final String DB_URL = "jdbc:mysql://localhost:3306/testdb"; private static final String USER = "root"; private static final String PASS = "123456"; private JTextArea adContent; private JTextField adName; private JTextField adTime; public AdWall() { super("广告墙"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 400); setLocationRelativeTo(null); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(3, 2)); panel.add(new JLabel("广告名称:")); adName = new JTextField(); panel.add(adName); panel.add(new JLabel("广告内容:")); adContent = new JTextArea(); panel.add(new JScrollPane(adContent)); panel.add(new JLabel("展示时间(秒):")); adTime = new JTextField(); panel.add(adTime); JButton addButton = new JButton("添加广告"); addButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String name = adName.getText(); String content = adContent.getText(); int time = Integer.parseInt(adTime.getText()); try { Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); String sql = "INSERT INTO ad_wall(name, content, show_time) VALUES('" + name + "', '" + content + "', " + time + ")"; stmt.executeUpdate(sql); stmt.close(); conn.close(); JOptionPane.showMessageDialog(null, "广告添加成功!"); } catch (SQLException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, "广告添加失败!"); } } }); panel.add(addButton); add(panel, BorderLayout.NORTH); JPanel adPanel = new JPanel(); adPanel.setLayout(new BorderLayout()); adContent = new JTextArea(); adContent.setEditable(false); adContent.setLineWrap(true); adContent.setWrapStyleWord(true); adPanel.add(new JScrollPane(adContent), BorderLayout.CENTER); JButton nextButton = new JButton("下一个广告"); nextButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM ad_wall WHERE show_time > 0 ORDER BY show_time ASC LIMIT 1"); if (rs.next()) { String name = rs.getString("name"); String content = rs.getString("content"); int time = rs.getInt("show_time"); adContent.setText(name + "\n\n" + content); if (time > 0) { time--; stmt.executeUpdate("UPDATE ad_wall SET show_time = " + time + " WHERE id = " + rs.getInt("id")); } } else { adContent.setText("暂无广告"); } rs.close(); stmt.close(); conn.close(); } catch (SQLException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(null, "获取广告失败!"); } } }); adPanel.add(nextButton, BorderLayout.SOUTH); add(adPanel, BorderLayout.CENTER); setVisible(true); } public static void main(String[] args) { try { Class.forName(JDBC_DRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); return; } new AdWall(); } } ``` 这个示例程序实现了一个简单的广告墙程序,可以添加、删除、修改广告信息,并且可以展示当前可以展示的广告。你可以根据需要自定义程序的界面和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值