SWITCHPART
由一个值从多个导入的零件中选出一个,选择方式与 SWITCH 相同:在零件表中查找该值,表可以是字典(按键)或列表(按位置),当该值(通常为变量)变化时,显示的零件也随之改变。适用于根据某项设置使用多种插件、插舌或徽标之一的图纸。
语法
SWITCHPART value,{key:part,key:part,…}
SWITCHPART value,{part,part,…}
SWITCHPART @id,value,{key:part,…},otherwise,layer
| 参数 | 含义 |
|---|---|
| value | 用于选择零件的值:变量(STYLE)或任意表达式(W>200、IF(…))。 |
| {key:part,…} | 零件的字典:当 value 等于某个键时显示对应零件(键可以是数字、带引号的文字、TRUE 或 FALSE,或表达式)。 |
| {part,…} | 零件的列表:value 指定是哪一个,从 0 开始。 |
| part | 一个 PART(库中的零件或页面,按名称指定)、VECTORIMAGE(其他格式)或 RASTERIMAGE(图片),需完整写出。它们通常位于相同的点上,因此无论显示哪一个,都位于其他零件本应所在的位置。 |
| otherwise | 当 value 不是字典的键或列表中的位置时显示的零件(可选)。 |
键的比较方式与 SWITCH 和字典相同:数字按值比较(2 等于 4/2),文字精确比较(数字永远不等于文字)。列表的位置是从 0 开始的整数;其他值(1.5、-1、文字)都不是有效位置。一个表只能是其中一种:要么每个零件都有键,要么都没有。如果 value 没有选中任何零件且没有 otherwise,则只在第一个零件本应所在的位置绘制一个虚线框。
id、图层及其后的设置见图元设置。零件绘制在切换零件所在的图层上(如果本图纸有同名图层,则保留零件图纸自身的图层)。
示例
PARTDEF "One","LINE @1,P0,P1"
PARTDEF "Two","LINE @1,P0,P1\nLINE @2,P1,P2"
STYLE=1
P4=[600,0]
P5=[600,100]
SWITCHPART @9,STYLE,{1:PART @1,P4,P5,"One",0,2:PART @2,P4,P5,"Two",0},0
STYLE=2

STYLE 为 1 时绘制第一个零件(一条直线);将其设为 2 后改为绘制第二个零件(两条直线)。
PARTDEF "One","LINE @1,P0,P1"
PARTDEF "Two","LINE @1,P0,P1\nLINE @2,P1,P2"
PARTDEF "Diagonal","LINE @1,P0,P2"
STYLE=0
P4=[600,0]
P5=[600,100]
SWITCHPART @9,STYLE,{PART @1,P4,P5,"One",0,PART @2,P4,P5,"Two",0},PART @3,P4,P5,"Diagonal",0,0
STYLE=5
列表:STYLE 为 0 时显示第一个零件,为 1 时显示第二个,其他值(此处为 5)则显示 otherwise 零件,即一条对角线。
说明
- 只有显示的零件会被绘制、选择、测量和导出,与该零件单独存在时一样:图纸文件的零件在支持的格式中作为子程序或块导出,图片作为图像导出。其他零件保留在图纸中,以备值变化时使用。
- 每个零件保留自己的作用域:图纸文件中与本图纸同名的变量取本图纸的值。
- 切换零件通常使用零件导入工具、矢量导入工具或光栅图像工具放置,并勾选 在文件之间切换:每一行
value: file成为字典的一个条目,DEFAULT:行则成为 otherwise 零件。
另请参阅:SWITCH、PART、VECTORIMAGE、 RASTERIMAGE。