.. Automatically generated by KiBot, please don't edit this file .. index:: pair: Blender Export **Experimental**; blender_export Blender Export **Experimental** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Exports the PCB in various 3D file formats. Also renders the PCB with high-quality. |br| Needs KiCad 6 or newer. |br| This output is complex to setup and needs very big dependencies. |br| Please be patient when using it. |br| You need Blender with the pcb2blender plug-in installed. |br| Visit: `pcb2blender `__. |br| You can just generate the exported PCB if no output is specified. |br| You can also export the PCB and render it at the same time Type: ``blender_export`` Category: **PCB/3D** Parameters: - **comment** :index:`: ` [string=''] A comment for documentation purposes. It helps to identify the output. - **dir** :index:`: ` [string='./'] Output directory for the generated files. If it starts with `+` the rest is concatenated to the default dir. - **name** :index:`: ` [string=''] Used to identify this particular output definition. Avoid using `_` as first character. These names are reserved for KiBot. - **options** :index:`: ` [dict] Options for the `blender_export` output. - Valid keys: - **pcb3d** :index:`: ` [string|dict] Options to export the PCB to Blender. You can also specify the name of the output that generates the PCB3D file. See the `PCB2Blender_2_1` and `PCB2Blender_2_1_haschtl` templates. - Valid keys: - **download** :index:`: ` [boolean=true] Downloads missing 3D models from KiCad git. Only applies to models in KISYS3DMOD and KICAD6_3DMODEL_DIR. They are downloaded to a temporal directory and discarded. If you want to cache the downloaded files specify a directory using the KIBOT_3D_MODELS environment variable. - **no_virtual** :index:`: ` [boolean=false] Used to exclude 3D models for components with 'virtual' attribute. - **show_components** :index:`: ` [list(string)|string=all] [none,all] List of components to draw, can be also a string for `none` or `all`. Unlike the `pcbdraw` output, the default is `all`. - ``dnf_filter`` :index:`: ` [string|list(string)='_none'] Name of the filter to mark components as not fitted. A short-cut to use for simple cases where a variant is an overkill. - ``highlight`` :index:`: ` [list(string)=[]] List of components to highlight. - ``highlight_on_top`` :index:`: ` [boolean=false] Highlight over the component (not under). - ``highlight_padding`` :index:`: ` [number=1.5] [0,1000] How much the highlight extends around the component [mm]. - ``kicad_3d_url`` :index:`: ` [string='https://gitlab.com/kicad/libraries/kicad-packages3D/-/raw/master/'] Base URL for the KiCad 3D models. - ``kicad_3d_url_suffix`` :index:`: ` [string=''] Text added to the end of the download URL. Can be used to pass variables to the GET request, i.e. ?VAR1=VAL1&VAR2=VAL2. - ``output`` :index:`: ` [string='%f-%i%I%v.%x'] Name for the generated PCB3D file (%i='blender_export' %x='pcb3d'). Affected by global options. - ``pre_transform`` :index:`: ` [string|list(string)='_none'] Name of the filter to transform fields before applying other filters. A short-cut to use for simple cases where a variant is an overkill. - ``solder_paste_for_populated`` :index:`: ` [boolean=true] Add solder paste only for the populated components. Populated components are the ones listed in `show_components`. - ``variant`` :index:`: ` [string=''] Board variant to apply. - ``version`` :index:`: ` [string='2.1'] [2.1,2.1_haschtl] Variant of the format used. - **point_of_view** :index:`: ` [dict|list(dict)] How the object is viewed by the camera. - Valid keys: - **view** :index:`: ` [string='top'] [top,bottom,front,rear,right,left,z,Z,y,Y,x,X] Point of view. Compatible with `render_3d`. - ``file_id`` :index:`: ` [string=''] String to diferentiate the name of this point of view. When empty we use the `default_file_id` or the `view`. - ``rotate_x`` :index:`: ` [number=0] Angle to rotate the board in the X axis, positive is clockwise [degrees]. - ``rotate_y`` :index:`: ` [number=0] Angle to rotate the board in the Y axis, positive is clockwise [degrees]. - ``rotate_z`` :index:`: ` [number=0] Angle to rotate the board in the Z axis, positive is clockwise [degrees]. - ``steps`` :index:`: ` [number=1] [1-1000] Generate this amount of steps using the rotation angles as increments. Use a value of 1 (default) to interpret the angles as absolute. Used for animations. You should define the `default_file_id` to something like '_%03d' to get the animation frames. - **render_options** :index:`: ` [dict] Controls how the render is done for the `render` output type. - Valid keys: - **samples** :index:`: ` [number=10] How many samples we create. Each sample is a raytracing render. Use 1 for a raw preview, 10 for a draft and 100 or more for the final render. - **transparent_background** :index:`: ` [boolean=false] Make the background transparent. - ``auto_crop`` :index:`: ` [boolean=false] When enabled the image will be post-processed to remove the empty space around the image. In this mode the `background2` is changed to be the same as `background1`. - ``background1`` :index:`: ` [string='#66667F'] First color for the background gradient. - ``background2`` :index:`: ` [string='#CCCCE5'] Second color for the background gradient. - *height* :index:`: ` Alias for resolution_y. - ``resolution_x`` :index:`: ` [number=1280] Width of the image. - ``resolution_y`` :index:`: ` [number=720] Height of the image. - *width* :index:`: ` Alias for resolution_x. - ``add_default_light`` :index:`: ` [boolean=true] Add a default light when none specified. The default light is located at (-size*3.33, size*3.33, size*5) where size is max(width, height) of the PCB. - ``auto_camera_z_axis_factor`` :index:`: ` [number=1.1] Value to multiply the Z axis coordinate after computing the automatically generated camera. Used to avoid collision of the camera and the object. - ``camera`` :index:`: ` [dict] Options for the camera. If none specified KiBot will create a suitable camera. If no position is specified for the camera KiBot will look for a suitable position. - Valid keys: - ``clip_start`` :index:`: ` [number=-1] Minimum distance for objects to the camera. Any object closer than this distance won't be visible. Only positive values have effect. A negative value has a special meaning. For a camera with defined position, a negative value means to use Blender defaults (i.e. 0.1 m). For cameras without position KiBot will ask Blender to compute its position and the use a clip distance that is 1/10th of the Z distance. - ``name`` :index:`: ` [string=''] Name for the camera. - ``pos_x`` :index:`: ` [number|string] X position [m]. You can use `width`, `height` and `size` for PCB dimensions. - ``pos_y`` :index:`: ` [number|string] Y position [m]. You can use `width`, `height` and `size` for PCB dimensions. - ``pos_z`` :index:`: ` [number|string] Z position [m]. You can use `width`, `height` and `size` for PCB dimensions. - ``type`` :index:`: ` [string='perspective'] [perspective,orthographic,panoramic] Type of camera. - ``default_file_id`` :index:`: ` [string=''] Default value for the `file_id` in the `point_of_view` options. Use something like '_%03d' for animations. - ``fixed_auto_camera`` :index:`: ` [boolean=false] When using the automatically generated camera and multiple points of view this option computes the camera position just once. Suitable for videos. - ``light`` :index:`: ` [dict|list(dict)] Options for the light/s. - Valid keys: - ``energy`` :index:`: ` [number=0] How powerful is the light. Using 0 for POINT and SUN KiBot will try to use something useful. - ``name`` :index:`: ` [string=''] Name for the light. - ``pos_x`` :index:`: ` [number|string] X position [m]. You can use `width`, `height` and `size` for PCB dimensions. - ``pos_y`` :index:`: ` [number|string] Y position [m]. You can use `width`, `height` and `size` for PCB dimensions. - ``pos_z`` :index:`: ` [number|string] Z position [m]. You can use `width`, `height` and `size` for PCB dimensions. - ``type`` :index:`: ` [string='POINT'] [POINT, SUN, SPOT, HEMI, AREA] Type of light. SUN lights will illuminate more evenly. - ``outputs`` :index:`: ` [dict|list(dict)] Outputs to generate in the same run. - Valid keys: - **type** :index:`: ` [string='render'] [fbx,obj,x3d,gltf,stl,ply,blender,render] The format for the output. The `render` type will generate a PNG image of the render result. `fbx` is Kaydara's Filmbox, 'obj' is the Wavefront, 'x3d' is the new ISO/IEC standard that replaced VRML, `gltf` is the standardized GL format, `stl` is the 3D printing format, 'ply' is Polygon File Format (Stanford). Note that some formats includes the light and camera and others are just the 3D model (i.e. STL and PLY). - ``output`` :index:`: ` [string='%f-%i%I%v.%x'] Name for the generated file (%i='3D_blender_$VIEW' %x=VARIABLE). The extension is selected from the type. Affected by global options. - ``pcb_import`` :index:`: ` Options to configure how Blender imports the PCB. The default values are good for most cases. - Valid keys: - ``center`` :index:`: ` [boolean=true] Center the PCB at the coordinates origin. - ``components`` :index:`: ` [boolean=true] Import the components. - ``cut_boards`` :index:`: ` [boolean=true] Separate the sub-PCBs in separated 3D models. - ``enhance_materials`` :index:`: ` [boolean=true] Create good looking materials. - ``merge_materials`` :index:`: ` [boolean=true] Reuse materials. - ``solder_joints`` :index:`: ` [string='SMART'] [NONE,SMART,ALL] The plug-in can add nice looking solder joints. This option controls if we add it for none, all or only for THT/SMD pads with solder paste. - ``stack_boards`` :index:`: ` [boolean=true] Move the sub-PCBs to their relative position. - ``texture_dpi`` :index:`: ` [number=1016.0] [508-2032] Texture density in dots per inch. - **type** :index:`: ` [string=''] Type of output. - ``category`` :index:`: ` [string|list(string)=''] The category for this output. If not specified an internally defined category is used. Categories looks like file system paths, i.e. **PCB/fabrication/gerber**. The categories are currently used for `navigate_results`. - ``disable_run_by_default`` :index:`: ` [string|boolean] Use it to disable the `run_by_default` status of other output. Useful when this output extends another and you don't want to generate the original. Use the boolean true value to disable the output you are extending. - ``extends`` :index:`: ` [string=''] Copy the `options` section from the indicated output. Used to inherit options from another output of the same type. - ``groups`` :index:`: ` [string|list(string)=''] One or more groups to add this output. In order to catch typos we recommend to add outputs only to existing groups. You can create an empty group if needed. - ``output_id`` :index:`: ` [string=''] Text to use for the %I expansion content. To differentiate variations of this output. - ``priority`` :index:`: ` [number=50] [0,100] Priority for this output. High priority outputs are created first. Internally we use 10 for low priority, 90 for high priority and 50 for most outputs. - ``run_by_default`` :index:`: ` [boolean=true] When enabled this output will be created when no specific outputs are requested.