管理可用的数据库库与基于文件的库
在 Altium Designer 中,只有来自当前“可用”库的数据库库组件和基于文件的库组件才能被放置。这些可用库包括:
-
Libraries in the current project – 如果某个库是项目的一部分,则其组件会在该项目中自动可用于放置。
-
Installed libraries – 这些库已在 Altium Designer 中安装;其组件可在任何打开的项目中使用。
-
Libraries on a defined search path – 也可以为包含多个库的文件夹定义搜索路径。由于每次在面板中选择新组件时都会搜索该搜索路径中的所有文件,因此此方法仅建议用于模型定义简单的小型库,例如仿真模型。不建议将搜索路径用于复杂模型,例如包含 3D 模型的封装。
要管理可用的数据库库与基于文件的库,可以使用 Libraries Preferences 对话框。可通过点击 Components 面板顶部的
按钮,并从菜单中选择 Libraries Preferences 来打开该对话框。
Libraries Preferences 对话框包含三个选项卡。这些选项卡中定义的所有库与模型位置会被汇总,构成你的可用库列表。当执行需要搜索模型的操作时(例如将设计从原理图传输到 PCB 布局),系统会按选项卡顺序搜索库,然后在每个选项卡内按库/模型的列表顺序搜索。一旦找到正确模型,搜索过程即停止。
项目库
当某个项目在软件中处于活动状态时,属于该活动项目的库会列在 Libraries Preferences 对话框的 Project 选项卡下。项目库的优点是:每次打开项目时,这些模型/库都会自动可用。缺点是:如果模型/库未与设计文件存放在同一项目文件夹结构中,当项目文件被移动时就很容易被遗忘。

Project 选项卡提供当前项目中可用库的列表。
任何库都可以作为项目库; 它不需要存放在项目文件夹中。要将库包含到项目中,请在 Projects 面板中右键单击项目名称,然后选择 Add Existing to Project 命令。
已安装库
在你的软件安装环境中已设为可用的库与模型称为已安装库。它们列在 Libraries Preferences 对话框的 Installed 选项卡中。
该列表属于环境设置。添加到列表中的任何库都将对所有项目可用,并且该列表会在不同设计会话之间保持不变。项目库可以添加到此列表中,但初始并不包含在其中。
已安装库可以使用绝对路径列出,也可以使用相对于 Library Path Relative To 设置的相对路径列出。使用相对路径的优点是:可在多台 PC 之间创建通用的子环境,从而便于在它们之间移动设计文件。此外,还可以通过清除 Activated 复选框来临时停用已安装库,而无需将其移除。
只有 Activated 库可从 Components 面板访问。

Installed 选项卡列出在此 Altium Designer 安装环境中已设为可用的库。
连接到 Altium 365 Workspace 时,还会显示 Workspace Library 健康状况摘要,可一目了然地看到完全健康的组件数量,以及至少存在一个问题的组件数量。点击 See Details 控件,可在默认 Web 浏览器中打开该 Workspace 浏览器界面的 Components 页面。
搜索路径
Search Path 选项卡显示根据 Project Options dialog 中 Search Paths 选项卡里定义的路径设置所定位到的库列表,可通过点击 Paths 按钮访问。每条搜索路径定义一个文件夹 ,并且在启用 Recursive 选项时可包含子文件夹(在添加路径后,可在 Project Options dialogProject Options 的 Search Paths 选项卡中设置)。在搜索路径上找到的所有模型与库文件都将可用。搜索路径会随项目一起保存。
点击 Refresh 按钮可根据最新的搜索路径刷新列表(在 Project Options dialogProject Options 的 Search Paths 选项卡中定义)。

Search Path 选项卡列出在已定义搜索路径中找到的库。
如果搜索路径文件夹中包含大量文件,通过搜索路径检索模型可能会很慢。因此,不建议将此方法用于 PCB 库,因为它们可能是包含大量封装的大文件。该功能的开发目的是提供一种引用可用仿真与信号完整性模型的方式。
虽然软件在特定模型/库位置方面提供了灵活性与控制,但它确实要求每种模型类型使用正确的文件扩展名。例如,只有当封装位于扩展名为 .Lib 或 .PcbLib 的文件中时才会被找到。同样,SPICE *.SUBCKT 只有在 .ckt 文件中才会被找到,而 SPICE *.MODEL 只有在 .mdl 文件中才会被找到。每当模型搜索未能匹配时,Messages 面板中会出现错误。
Browsing the Database Components
一旦将 DbLib/SVNDbLib 添加到可用的基于文件的库列表中,数据库中的组件就可以在 Components 面板中浏览。尽管只添加了一个 DbLib/SVNDbLib 文件,但链接数据库中的每个表都会呈现为一个独立的库。
请记住,如果目标数据库是使用多个 Excel 电子表格文件(*.xls)创建的,由于 ODBC 驱动限制,可连接的工作表数量限制为 64。
面板顶部的下拉列表将填充为 条目 ,其形式为:
-
<LibraryName>.DbLib - <TableName> 或 <LibraryName>.SVNDbLib - <TableName> ----当你的数据库包含表时
-
<LibraryName>.DbLib - <SheetName>$ 或 <LibraryName>.SVNDbLib - <SheetName>$ ----当你的数据库由 Excel 电子表格中的工作表构成时。
示例:一个已加载的 DbLib 含三张表,另一个含一张表,以及一个 SVNDbLib 含一张表。
面板中的每个组件条目对应数据库中该特定表的一条记录。实际上,在浏览已加载的数据库库时,Components 面板的行为就像一个直接的数据库浏览器。符号与模型信息会从底层符号库与模型库中填充,这些库由数据库相关字段指向(并结合已定义的搜索路径/位置)。
浏览通过数据库库链接的外部数据库中的组件。
默认情况下,组件列表区域仅显示 Part Number 和 Library Ref 字段。要“显示”数据库表中的其他字段,请在该区域右键单击并从上下文菜单中选择 Select Columns。这将让你访问 Select Columns dialog, 在其中你可以启用显示该表中的任意附加字段。
SVN 数据库库所用符号与模型的本地化缓存
当将 SVNDbLib 文件添加到可用库列表后,仓库中的符号库与模型库会被缓存到 Designer 计算机本地的临时文件夹中。当软件中的某个操作需要使用原理图符号或模型时,该符号/模型将从本地缓存中获取。
自动缓存更新
在软件中执行以下任一操作时,缓存中的库将自动从源代码控制仓库更新为最新版本:
-
从已安装的 SVNDbLib 文件中放置组件(通过 Components panel)。
-
执行设计传输(即更新 PCB)。
-
在原理图编辑器中使用 Tools » Update From Libraries 命令。
-
在 the PCB 编辑器中使用 Tools » Update From PCB Libraries 命令。
尽管更新是自动的,但可以通过 Preferences 对话框中 Data Management - SVN Libraries page 上的 Do not check files more often than xx minutes 选项进行控制。该选项本质上为本地缓存提供了一个“更新计时器”。如果自上次缓存更新以来已超过指定时间,则当执行上述某个操作时会自动更新缓存。如果在该时间内执行操作,则会使用当前缓存内容,而该内容可能相较仓库中的内容已过期。
手动强制更新缓存
有时你可能希望强制更新本地缓存,以确保你拥有当前存储在源代码控制仓库中的最新库。例如,在准备将设计从原理图转移到 PCB 时。
你可以使用以下方法之一手动强制更新缓存:
-
使用 Components panel 中右键菜单提供的某个 Refresh 命令。
-
从 Available Libraries 列表中卸载并重新安装 SVNDbLib 文件。
每次重启 Altium Designer 时,本地缓存都会自动刷新为 SVN 仓库中存储的最新库。
在数据库库与基于文件的库中搜索元件
为了帮助在基于文件的库(包括已安装和当前未安装)以及数据库库中查找元件,Altium Designer 提供了库搜索功能。
可以使用 Components panel 的 Search 字段在数据库库和基于文件的库中搜索元件。在该字段中输入字符串并按 Enter,即可在当前库的可见元件参数中任意位置搜索该字符串。
你也可以直接在 Components panel 中执行搜索。
File-based Libraries Search 对话框支持更详细的搜索。通过在 Components panel 上单击
按钮并从菜单中选择 File-based Libraries Search 来打开。对话框上半部分用于定义你要搜索的 what;下半部分用于定义在哪里 where 进行搜索。
可在已安装的库(Available libraries)或硬盘上的库(Libraries on path)之间进行搜索。搜索过程可概括如下:
-
通过定义 Filters 来执行搜索,这些条件会应用到所有可根据当前搜索 Scope 设置进行搜索的库。
-
Scope 包括要搜索的库类型。一次只能搜索一种类型。
-
要启用数据库元件搜索,将 Search in 字段设置为 Database Components 并选择所需的 Table。注意,上方下拉列表中列出的可用 Fields 会随所选表的列标题而变化。对话框中的其余选项会变灰,因为在搜索数据库库时它们不相关。
-
Scope 用于定义将搜索哪些库:软件当前可访问的库(Available libraries)或某个文件夹内的所有库(Libraries on path)。
-
当在某个路径上搜索库时,目标是特定文件夹,并且也可以 Include Subdirectories。
-
你还可以将 Scope 设置为 Refine last search,以便在搜索结果中继续搜索。
-
单击 Clear 以清除已输入的搜索参数。
设置搜索过滤器
Filters 区域用于定义要应用于搜索的文本字符串。需要配置三个区域:
-
Field – 这是要搜索的元件属性。它可以是任何元件或封装属性,包括 Name、Description、Comment、Footprint,或添加到元件中的任何参数。 从下拉列表中选择可用字段,或在文本框中输入字段。
-
Operator – 定义如何判定匹配。可以是当该值 equals、contains、starts with 或 ends with 时匹配。注意,equals 需要完全一致的字符串匹配,因此仅在你确信搜索字符串正确且完整时才应使用。
-
Value – 在所选 Field 中要搜索的字符,并按所选 Operator 进行匹配。 从下拉列表中选择可用值,或在文本字段中输入值。
默认有三条过滤约束;你可以使用 Add Row 控件再添加最多七行,总计 10 行。 可使用 Remove Row 删除最后添加的过滤约束行。 你可以移除未使用的行。
设置范围
搜索基本上有两种方式:
搜索将返回在 Search in 下拉列表(Components/Footprints/3D Models/Database Components)中选择的搜索类型、并且位于所有符合所定义 Scope 的库中的全部条目:
-
Available libraries - 启用后,仅在可用库中搜索指定的模型类型。
-
Libraries on path - 启用后,在指定文件夹中的可用库里搜索指定的模型类型。在对话框中因选择 Libraries on path 范围选项而变为可用的 Path 区域中,你可以定义路径、包含子目录,并包含库文件掩码以指定并缩小搜索条件:
启用 Refine last search 可基于上一次搜索得到的 Query Results 列表进一步定义搜索查询条件。例如,你搜索了名称基于 DIP 的 PCB 封装,并希望只返回那些已定义高度且小于 100 mil 的封装,则启用此选项。输入新的查询表达式,然后单击 Search。上一查询结果的子集将作为新的 Query Results 列表显示在 Components panel 中。
例如,如果你想查找一个你认为位于硬盘特定文件夹中的库里的元件,并且该库当前未列在 Available File-based Libraries 中,可按如下方式定义搜索:
-
在 Scope 区域,将 Search in 设置为 Components 并选择 Libraries on path。
-
在 Path 区域,将 Path 设置为指向包含你要搜索的库文档的文件夹。
-
单击 Search。 搜索进行时,结果会显示在 Components panel 中。
你只能放置来自 Altium Designer 中已安装库的元件。如果你尝试放置来自当前未安装库的元件,则需要确认安装该库。
高级搜索模式
库搜索实际上是通过查询来执行的。在 File-based Libraries Search 对话框中,切换到 Advanced 模式以查看查询。
在对话框的 Advanced 模式下,你还可以使用查询语言关键字创建自己的查询,以执行基于查询的搜索。请参阅下方章节以了解更多可用的查询语言关键字。
当选择 Advanced 模式时,可使用以下附加控件:
-
Helper - 单击以打开 Query Helper 对话框,使用预定义的库函数和系统函数轻松构建库搜索查询。 你也可以使用 History 和 Favorites 按钮选择最近使用或预定义的库查询。
-
History - 单击以打开 Expression Manager 对话框,选择之前使用过的查询表达式用于库搜索。你也可以使用 Favorites 按钮,为指定的库搜索使用预定义查询。
-
Favorites - 单击以打开 Expression Manager 对话框,选择你收藏的查询表达式用于库搜索。你还可以通过从 History 列表中删除、重命名或复制表达式来更改 Favorites 列表。
当在 Database Components 中搜索时,Advanced 模式允许你执行 SQL 查询搜索。该级别的搜索提供基于指定查询表达式的“精细”搜索,你可以在对话框的查询编辑器区域直接输入 SQL 查询。
单击 Advanced 以访问强大的基于 SQL 的查询搜索。再次单击 Advanced 可返回简单搜索。
元件与库查询函数

Query Helper 对话框中的元件与库查询函数
Altium Designer 的原理图与 PCB 编辑器底层包含强大的查询引擎。通过向该引擎输入查询,你可以以逻辑方式精确限定所需对象的范围。
查询是你使用特定关键字与语法输入的字符串,它将返回目标对象。可用关键字很多,允许你按对象类型、对象属性或两者同时来定位对象。
以下各节详细说明了在 Altium Designer 中搜索数据库元件和基于文件的元件时可用的查询语言关键字。若需要某个特定查询关键字的帮助,请使用下面这些可折叠的章节,或在 Query Helper 中高亮(或在其中单击)任意关键字。
元件
ComponentType
摘要
返回所有其 Component Type 属性符合该查询的元件。
语法
ComponentType = ComponentType_String
ComponentType_String必须是以下列表中的某个字符串:
-
'Graphical'
-
'Jumper'
-
'Mechanical'
-
'Net Tie'
-
'Net Tie (In BOM)'
-
'Standard'
-
'Standard (No BOM)'
示例用法
ComponentType = 'Graphical'
返回所有其 Component Type 为 Graphical 的元件。
ComponentType = 'Standard'
返回所有其 Component Type 为 Standard 的元件。
注意事项
Designator
摘要
返回所有其 Designator 属性符合该查询的元件。
语法
Designator : String
示例用法
Designator = 'U2'
返回所有其 Designator 属性为 U2 的元件。
Designator Like '*Channel*'
返回所有其 Designator 属性包含 Channel 的元件。
Designator <> 'C*'
返回所有 except 其 Designator 属性以 C 开头的元件。
注意事项
HasModel
摘要
返回每一个链接到(或引用)某个域模型,且该模型属性符合该查询的元件。
每个元件都可以链接到 Footprint、Simulation、PCB3D、Ibis 和 Signal Integrity 类型的模型。可以将一个元件链接到同一类型的多个模型,但每种类型只能选择一个模型作为该元件的 Current Model。
语法
HasModel(ModelType : String,ModelName : String,CurrentModelOnly : Boolean) : Boolean/Boolean_String
ModelType 字符串用于指定所链接模型的 Type 属性,并且必须是以下列表中的某个字符串:
-
'PCB3DLIB' - 使用该字符串以定位其 Type 属性为 PCB3D 的已链接模型。
-
'PCBLIB' - 使用该字符串以定位其 Type 属性为 Footprint 的已链接模型。
-
'IBIS' - 使用该字符串以定位其 Type 属性为 Ibis Model 的已链接模型。
-
'SI' - 使用该字符串以定位其 Type 属性为 Signal Integrity 的已链接模型。
-
'SIM' - 使用该字符串以定位其 Type 属性为 Simulation 的已链接模型。
ModelName 字符串用于指定所链接模型的 Name 属性。
CurrentModelOnly 参数用于指定包含该链接模型是否必须是每个元件的当前模型(Current Model)。当其为 False 时,链接模型不必是当前模型(但也可以是);当其为 True 时,链接模型必须是当前模型。
示例用法
HasModel('PCBLIB','SOIC14',False)
HasModel('PCBLIB','SOIC14',False) = True
HasModel('PCBLIB','SOIC14',False) = 'True'
返回所有链接到某个 Footprint 模型的元件,该模型的 Name 属性为 SOIC14;该模型不必是每个元件的当前 Footprint 模型(但也可以是)。
HasModel('PCBLIB','DIP14',True)
HasModel('PCBLIB','DIP14',True) = True
HasModel('PCBLIB','DIP14',True) = 'True'
返回所有链接到某个 Footprint 模型的元件,该模型的 Name 属性为 DIP14;该模型必须是该元件的当前 Footprint 模型。
HasModel('SI','RES1',False)
HasModel('SI','RES1',False) = True
HasModel('SI','RES1',False) = 'True'
返回所有链接到某个 Signal Integrity 模型的元件,该模型的 Name 属性为 RES1;该模型不必是每个元件的当前 Signal Integrity 模型(但也可以是)。
HasModel('SIM','RESISTOR',True)
HasModel('SIM','RESISTOR',True) = True
HasModel('SIM','RESISTOR',True) = 'True'
返回所有链接到某个 Simulation 模型的元件,该模型的 Name 属性为 RESISTOR;该模型必须是该元件的当前 Simulation 模型。
注意事项
HasModelParameter
摘要
返回每一个链接到(或引用)某个域模型的元件,该模型包含一个参数对象,且该参数对象的 Parameter Name 与 Value 属性符合该查询。
每个元件都可以链接到 Footprint、Simulation、PCB3D、Ibis 和 Signal Integrity 类型的模型。可以将一个元件链接到同一类型的多个模型,但每种类型只能选择一个模型作为该元件的 Current Model。
语法
HasModelParameter(Parameter Name : String,Value : String,CurrentModelOnly : Boolean) : Boolean/Boolean_String
CurrentModelOnly 参数用于指定该链接模型(其包含符合条件的参数)是否必须是每个元件的当前模型(Current Model)。当其为 False 时,链接模型不必是当前模型(但也可以是);当其为 True 时,链接模型必须是当前模型。
示例用法
HasModelParameter('Inductance A','1mH',False)
HasModelParameter('Inductance A','1mH',False) = True
HasModelParameter('Inductance A','1mH',False) = 'True'
返回所有链接到某个模型的元件,该模型包含一个参数对象,其 Parameter Name 属性为 Inductance A,且其 Value 属性为 1mH。该模型不必是每个元件的当前模型(但也可以是)。
HasModelParameter('Coupling Factor','0.999',True)
HasModelParameter('Coupling Factor','0.999',True) = True
HasModelParameter('Coupling Factor','0.999',True) = 'True'
返回所有链接到某个模型的元件,该模型包含一个参数对象,其 Parameter Name 属性为 Coupling Factor,且其 Value 属性为 0.999。该模型必须是该元件的当前模型。
注意事项
LibReference
摘要
返回所有其 Library Reference 属性符合该查询的元件。
语法
LibReference : String
示例用法
LibReference = 'LM833'
返回所有其 Library Reference 属性为 LM833 的元件。
LibReference Like 'C*'
返回所有其 Library Reference 属性以 C 开头的元件。
注意事项
PartCount
摘要
返回所有其 Part Count 属性符合该查询的元件。
语法
PartCount : Number
示例用法
PartCount = 2
返回所有其 Part Count 为 2 的元件。
PartCount > 4
返回所有其 Part Count 大于 4 的元件(即所有包含超过四个子部件的多分部件元件)。
注意事项
PinCount
摘要
返回所有其 Pin Count 属性符合查询条件的元件。
语法
PinCount : Number
示例用法
PinCount = 2
返回所有其 Pin Count 为 2 的元件。
PinCount > 14
返回所有其 Pin Count 大于 14 的元件。
注意事项
全部
Description
摘要
返回所有其 Description 属性符合查询条件的元件或封装。
语法
Description : String
示例用法
Description = 'TTL-RS232 DRIVER'
返回所有其 Description 属性为 TTL-RS232 DRIVER 的元件或封装。
Description Like '*RS485*'
返回所有其 Description 属性包含 RS485 的元件或封装。
注意事项
HasParameter
摘要
返回所有包含参数对象的元件,且该参数对象的 Parameter Name 和 Value 属性符合查询条件。
语法
HasParameter(Parameter Name : String,Value : String) : Boolean/Boolean_String
示例用法
HasParameter('Comment','1K')
HasParameter('Comment','1K') = True
HasParameter('Comment','1K') = 'True'
返回所有包含参数对象的元件,其中该参数对象的 Parameter Name 属性为 Comment,并且其 Value 属性为 1K。
注意事项
LibraryName
摘要
返回所有其父库名称符合查询条件的元件或封装。
语法
LibraryName : String
示例用法
LibraryName = 'Miscellaneous Devices.SchLib'
返回所有其父库为 Miscellaneous Devices.SchLib 的元件。
LibraryName Like 'Miscellaneous*.IntLib'
返回所有其父库名称以 Miscellaneous 开头并以 .IntLib 结尾的元件或封装。
LibraryName Like '*Vishay*'
返回所有其父库名称包含 Vishay 的元件。
注意事项
LibraryPath
摘要
返回所有驻留在查询中指定库内的元件或封装。
语法
LibraryPath : String
示例用法
LibraryPath = 'C:\Documents\Altium\Library\MyExampleLibrary.SchLib'
返回所有其父库为 MyExampleLibrary.SchLib 的元件,并且该库驻留在 C:\Documents\Altium\Library 文件夹中。
LibraryPath Like ' C:\Documents\Altium\Library\Miscellaneous*.IntLib'
返回所有其父库名称以 Miscellaneous 开头并以 .IntLib 结尾的元件或封装,并且该库驻留在 C:\Documents\Altium\Library 文件夹中。
LibraryPath = 'C:\Test Projects\Example DBLib\VishayCapacitor.DBLib'
返回所有其父库为 VishayCapacitor.DBLib 的元件,并且该库驻留在 C:\Test Projects\Example DBLib 文件夹中。
注意事项
Name
摘要
返回所有其名称符合查询条件的元件或封装。
语法
Name : String
示例用法
Name = 'Res1'
返回所有名称为 Res1 的元件或封装。
Name Like 'DIP*'
返回所有名称以 DIP 开头的元件或封装。
Name Like '*33*'
返回所有名称包含 33 的元件或封装。
注意事项
-
返回的实体(元件或封装)取决于所选范围,该范围在 File Libraries Search dialog 中通过 Search in 字段定义。
-
搜索元件时,将查询所有 SchLib 和 IntLib 库——可用的,或位于已定义的搜索路径上的库。搜索封装时,将查询所有 PcbLib 和 IntLib 库。
-
所有结果都会列在 Query Results 列表中,并返回到 Components panel。
-
原理图元件的名称会与其 Design Item ID 属性进行比对,而 PCB 封装 的名称会与其 Footprint 属性进行比对。
SourceLibraryName
摘要
返回所有其父源库名称符合查询条件的元件或封装。
语法
SourceLibraryName : String
示例用法
SourceLibraryName = 'Miscellaneous Devices.SchLib'
返回所有其父源库为 Miscellaneous Devices.SchLib 的元件。
SourceLibraryName = 'Miscellaneous Devices.PcbLib '
返回所有其父源库为 Miscellaneous Devices.PcbLib 的封装。
注意事项
SourceLibraryPath
摘要
返回所有驻留在查询中指定源库内的元件或封装。
语法
SourceLibraryPath : String
示例用法
SourceLibraryPath = ' C:\Documents\Altium\Library\MyExampleLibrary.SchLib'
返回所有其父源库为 MyExampleLibrary.SchLib 的元件,并且该库驻留在 C:\Documents\Altium\Library 文件夹中。
SourceLibraryPath = ' C:\Documents\Altium\Library\Miscellaneous Devices.PcbLib'
返回所有其父源库为 Miscellaneous Devices.PcbLib 的封装,并且该库驻留在 C:\Documents\Altium\Library 文件夹中。
SourceLibraryPath Like ' C:\Documents\Altium\Library\*'
返回所有其父源库驻留在 C:\Documents\Altium\Library 文件夹中的元件或封装。
注意事项
封装
Height
摘要
返回所有其 Height 属性符合查询条件的封装。
语法
Height : Number
Number将遵循当前库所使用的测量单位——英制(mil;1mil = 0.001inch)或公制(mm;1mm = 0.001meter)。
示例用法
Height = 300
返回所有其 Height 属性等于 300(当前测量单位)的封装。
Height >= 5.08
返回所有其 Height 属性大于或等于 5.08(当前测量单位)的封装。
Height <> 550
返回所有其 Height 属性 not 等于 550(当前测量单位) 的封装。
注意事项
PadCount
摘要
返回所有其 Pad Count 属性符合查询条件的封装。
语法
PadCount : Number
示例用法
PadCount = 2
返回所有其 Pad Count 为 2 的封装。
PadCount > 14
返回所有其 Pad Count 大于 14 的封装。
注意事项