[3D Models] Added support for models relative to libs
- New on KiCad v7, but will work for olders
This commit is contained in:
parent
6c46b240cf
commit
70d716e561
|
|
@ -18,7 +18,7 @@ from . import log
|
|||
logger = log.get_logger()
|
||||
|
||||
|
||||
def do_expand_env(fname, used_extra, extra_debug):
|
||||
def do_expand_env(fname, used_extra, extra_debug, lib_nickname):
|
||||
# Is it using ALIAS:xxxxx?
|
||||
force_used_extra = False
|
||||
if ':' in fname:
|
||||
|
|
@ -40,6 +40,18 @@ def do_expand_env(fname, used_extra, extra_debug):
|
|||
if os.path.isfile(full_name_cwd):
|
||||
full_name = full_name_cwd
|
||||
force_used_extra = True
|
||||
else:
|
||||
# We still missing the 3D model
|
||||
# Try relative to the footprint lib
|
||||
aliases = KiConf.get_fp_lib_aliases()
|
||||
lib_alias = aliases.get(lib_nickname)
|
||||
if lib_alias is not None:
|
||||
full_name_lib = os.path.join(lib_alias.uri, fname)
|
||||
if os.path.isfile(full_name_lib):
|
||||
logger.debug("- Using path relative to `{}` for `{}` ({})".format(lib_nickname, fname, full_name_lib))
|
||||
full_name = full_name_lib
|
||||
# KiCad 5 and 6 will need help
|
||||
force_used_extra = not GS.ki7
|
||||
if force_used_extra:
|
||||
used_extra[0] = True
|
||||
return full_name
|
||||
|
|
@ -204,6 +216,8 @@ class Base3DOptions(VariantOptions):
|
|||
# Look for all the footprints
|
||||
for m in GS.get_modules():
|
||||
ref = m.GetReference()
|
||||
lib_id = m.GetFPID()
|
||||
lib_nickname = str(lib_id.GetLibNickname())
|
||||
sch_comp = all_comps_hash.get(ref, None)
|
||||
# Extract the models (the iterator returns copies)
|
||||
models = m.Models()
|
||||
|
|
@ -221,7 +235,7 @@ class Base3DOptions(VariantOptions):
|
|||
# Skip filtered footprints
|
||||
continue
|
||||
used_extra = [False]
|
||||
full_name = do_expand_env(m3d.m_Filename, used_extra, extra_debug)
|
||||
full_name = do_expand_env(m3d.m_Filename, used_extra, extra_debug, lib_nickname)
|
||||
if not os.path.isfile(full_name):
|
||||
logger.debugl(2, 'Missing 3D model file {} ({})'.format(full_name, m3d.m_Filename))
|
||||
# Missing 3D model
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
fp-info-cache
|
||||
*-bak
|
||||
*-backups
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
(fp_lib_table
|
||||
(lib (name mlib)(type KiCad)(uri ${KIPRJMOD}/my_lib.pretty)(options "")(descr ""))
|
||||
)
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
(footprint "R" (version 20211014) (generator pcbnew)
|
||||
(layer "F.Cu")
|
||||
(tedit 5F68FEEE)
|
||||
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
|
||||
(tags "resistor")
|
||||
(attr smd)
|
||||
(fp_text reference "REF**" (at 0 -1.65) (layer "F.SilkS")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp effead60-2b17-4463-91cf-34792a2b459a)
|
||||
)
|
||||
(fp_text value "R_0805_2012Metric" (at 0 1.65) (layer "F.Fab")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp 83cd9c78-75b4-4eec-9501-2ff4a6e7a26e)
|
||||
)
|
||||
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
|
||||
(effects (font (size 0.5 0.5) (thickness 0.08)))
|
||||
(tstamp b5354c63-16aa-4898-aa0c-eeb3d035fc5f)
|
||||
)
|
||||
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735) (layer "F.SilkS") (width 0.12) (tstamp 1d1dfe66-8d95-48c7-9468-1437fe352fc9))
|
||||
(fp_line (start -0.227064 0.735) (end 0.227064 0.735) (layer "F.SilkS") (width 0.12) (tstamp 9aaa9150-dbb8-4657-a223-476b55b89dae))
|
||||
(fp_line (start -1.68 -0.95) (end 1.68 -0.95) (layer "F.CrtYd") (width 0.05) (tstamp 245c0818-3ccc-4969-b35b-0d4f8723400e))
|
||||
(fp_line (start 1.68 -0.95) (end 1.68 0.95) (layer "F.CrtYd") (width 0.05) (tstamp 5b983e02-1ada-4414-ad21-290f1424bf3d))
|
||||
(fp_line (start -1.68 0.95) (end -1.68 -0.95) (layer "F.CrtYd") (width 0.05) (tstamp c9825373-da58-4067-816d-465cdf887dc6))
|
||||
(fp_line (start 1.68 0.95) (end -1.68 0.95) (layer "F.CrtYd") (width 0.05) (tstamp f3d9ee21-ffbd-4620-abbf-7bc99e9f4420))
|
||||
(fp_line (start -1 0.625) (end -1 -0.625) (layer "F.Fab") (width 0.1) (tstamp 37f98079-19ff-4dd9-ac60-76d47722b840))
|
||||
(fp_line (start 1 0.625) (end -1 0.625) (layer "F.Fab") (width 0.1) (tstamp b0e87530-3bac-4895-be8c-fdb50669192d))
|
||||
(fp_line (start 1 -0.625) (end 1 0.625) (layer "F.Fab") (width 0.1) (tstamp b1a33891-38ab-48fb-8542-eb6b9260c23c))
|
||||
(fp_line (start -1 -0.625) (end 1 -0.625) (layer "F.Fab") (width 0.1) (tstamp e73c85cd-37bc-422b-91a3-e268ce9a1281))
|
||||
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902) (tstamp 9702d628-9b91-4d58-9130-9271bd872f5b))
|
||||
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902) (tstamp 1ad1544b-7ba3-4927-93fd-ab9c0a8dba06))
|
||||
(model "my_3d/R.wrl"
|
||||
(offset (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,207 @@
|
|||
#VRML V2.0 utf8
|
||||
#kicad StepUp wrl exported
|
||||
|
||||
# Copyright (C) 2018, kicad StepUp
|
||||
#
|
||||
# This work is licensed under the [Creative Commons CC-BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode),
|
||||
# with the following exception:
|
||||
# To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material',
|
||||
# then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided
|
||||
# as part of the 'Licensed Material'.
|
||||
# You are free to use the library data in your own projects without the obligation to share your project files under this or any other license agreement.
|
||||
# However, if you wish to redistribute these libraries, or parts thereof (including in modified form) as a collection then the exception above does not apply.
|
||||
# Please refer to https://github.com/KiCad/kicad-packages3D/blob/master/LICENSE.md for further clarification of the exception.
|
||||
# Disclaimer of Warranties and Limitation of Liability.
|
||||
# These libraries are provided in the hope that they will be useful, but are provided without warranty of any kind, express or implied.
|
||||
# *USE 3D CAD DATA AT YOUR OWN RISK*
|
||||
# *DO NOT RELY UPON ANY INFORMATION FOUND HERE WITHOUT INDEPENDENT VERIFICATION.*
|
||||
#
|
||||
Shape {
|
||||
appearance Appearance {material DEF PIN-01 Material {
|
||||
ambientIntensity 0.271
|
||||
diffuseColor 0.824 0.82 0.781
|
||||
specularColor 0.328 0.258 0.172
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
transparency 0.0
|
||||
shininess 0.7
|
||||
}
|
||||
}
|
||||
}
|
||||
Shape {
|
||||
appearance Appearance {material DEF RES-SMD-01 Material {
|
||||
ambientIntensity 0.638
|
||||
diffuseColor 0.082 0.086 0.094
|
||||
specularColor 0.066 0.063 0.063
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
transparency 0.0
|
||||
shininess 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
Shape {
|
||||
appearance Appearance {material DEF PLASTIC-WHITE-01 Material {
|
||||
ambientIntensity 0.494
|
||||
diffuseColor 0.895 0.891 0.813
|
||||
specularColor 0.047 0.055 0.109
|
||||
emissiveColor 0.0 0.0 0.0
|
||||
transparency 0.0
|
||||
shininess 0.25
|
||||
}
|
||||
}
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
|
||||
coord Coordinate { point [-0.394 -0.236 0.018,-0.394 -0.236 0.159,-0.394 0.236 0.018,-0.394 0.236 0.159]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,1,5,-1,6,1,4,-1,7,1,6,-1,2,1,7,-1,8,9,10,-1,11,9,8,-1,12,9,11,-1,13,9,12,-1,14,9,13,-1,15,9,14,-1,16,9,15,-1,16,17,9,-1,18,19,20,-1,20,19,21,-1,21,19,22,-1,22,19,23,-1,23,19,24,-1,24,19,17,-1,17,19,9,-1,10,25,26,-1,26,25,27,-1,27,25,28,-1,28,25,29,-1,9,25,10,-1,25,30,29,-1,25,31,30,-1,25,32,31,-1,25,33,32,-1,25,7,33,-1,25,2,7,-1]
|
||||
coord Coordinate { point [-0.276 -0.236 0.163,-0.279 -0.236 0.170,-0.276 -0.236 0.159,-0.277 -0.236 0.167,-0.286 -0.236 0.175,-0.282 -0.236 0.173,-0.289 -0.236 0.177,-0.293 -0.236 0.177,-0.393 -0.236 0.014,-0.376 -0.236 0.018,-0.394 -0.236 0.018,-0.392 -0.236 0.010,-0.390 -0.236 0.007,-0.387 -0.236 0.004,-0.384 -0.236 0.002,-0.380 -0.236 0.000,-0.376 -0.236 -0.000,-0.293 -0.236 -0.000,-0.276 -0.236 0.014,-0.276 -0.236 0.018,-0.277 -0.236 0.010,-0.279 -0.236 0.007,-0.282 -0.236 0.004,-0.286 -0.236 0.002,-0.289 -0.236 0.000,-0.376 -0.236 0.159,-0.394 -0.236 0.159,-0.393 -0.236 0.163,-0.392 -0.236 0.167,-0.390 -0.236 0.170,-0.387 -0.236 0.173,-0.384 -0.236 0.175,-0.380 -0.236 0.177,-0.376 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
|
||||
coord Coordinate { point [-0.394 -0.236 0.018,-0.393 0.236 0.014,-0.393 -0.236 0.014,-0.394 0.236 0.018,-0.392 0.236 0.010,-0.392 -0.236 0.010,-0.390 0.236 0.007,-0.390 -0.236 0.007,-0.387 0.236 0.004,-0.387 -0.236 0.004,-0.384 0.236 0.002,-0.384 -0.236 0.002,-0.380 0.236 0.000,-0.380 -0.236 0.000,-0.376 0.236 -0.000,-0.376 -0.236 -0.000]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
|
||||
coord Coordinate { point [-0.393 0.236 0.163,-0.394 -0.236 0.159,-0.393 -0.236 0.163,-0.394 0.236 0.159,-0.392 0.236 0.167,-0.392 -0.236 0.167,-0.390 0.236 0.170,-0.390 -0.236 0.170,-0.387 0.236 0.173,-0.387 -0.236 0.173,-0.384 0.236 0.175,-0.384 -0.236 0.175,-0.380 0.236 0.177,-0.380 -0.236 0.177,-0.376 0.236 0.177,-0.376 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,0,4,5,-1,0,6,4,-1,0,7,6,-1,0,2,7,-1,8,9,10,-1,8,11,9,-1,8,12,11,-1,8,13,12,-1,8,14,13,-1,8,15,14,-1,8,16,15,-1,17,16,8,-1,18,19,20,-1,18,20,21,-1,18,21,22,-1,18,22,23,-1,18,23,24,-1,18,24,17,-1,18,17,8,-1,25,10,26,-1,25,26,27,-1,25,27,28,-1,25,28,29,-1,25,8,10,-1,30,25,29,-1,31,25,30,-1,32,25,31,-1,33,25,32,-1,7,25,33,-1,2,25,7,-1]
|
||||
coord Coordinate { point [-0.279 0.236 0.170,-0.276 0.236 0.163,-0.276 0.236 0.159,-0.277 0.236 0.167,-0.286 0.236 0.175,-0.282 0.236 0.173,-0.289 0.236 0.177,-0.293 0.236 0.177,-0.376 0.236 0.018,-0.393 0.236 0.014,-0.394 0.236 0.018,-0.392 0.236 0.010,-0.390 0.236 0.007,-0.387 0.236 0.004,-0.384 0.236 0.002,-0.380 0.236 0.000,-0.376 0.236 -0.000,-0.293 0.236 -0.000,-0.276 0.236 0.018,-0.276 0.236 0.014,-0.277 0.236 0.010,-0.279 0.236 0.007,-0.282 0.236 0.004,-0.286 0.236 0.002,-0.289 0.236 0.000,-0.376 0.236 0.159,-0.394 0.236 0.159,-0.393 0.236 0.163,-0.392 0.236 0.167,-0.390 0.236 0.170,-0.387 0.236 0.173,-0.384 0.236 0.175,-0.380 0.236 0.177,-0.376 0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
|
||||
coord Coordinate { point [-0.376 0.236 -0.000,-0.293 0.236 -0.000,-0.376 -0.236 -0.000,-0.293 -0.236 -0.000]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
|
||||
coord Coordinate { point [-0.276 0.236 0.014,-0.276 -0.236 0.018,-0.276 -0.236 0.014,-0.276 0.236 0.018,-0.277 0.236 0.010,-0.277 -0.236 0.010,-0.279 0.236 0.007,-0.279 -0.236 0.007,-0.282 0.236 0.004,-0.282 -0.236 0.004,-0.286 0.236 0.002,-0.286 -0.236 0.002,-0.289 0.236 0.000,-0.289 -0.236 0.000,-0.293 0.236 -0.000,-0.293 -0.236 -0.000]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1,4,5,0,-1,0,5,1,-1,6,7,4,-1,4,7,5,-1]
|
||||
coord Coordinate { point [-0.276 -0.236 0.018,-0.276 -0.236 0.159,-0.376 -0.236 0.018,-0.376 -0.236 0.159,0.276 -0.236 0.018,0.276 -0.236 0.159,0.376 -0.236 0.018,0.376 -0.236 0.159]
|
||||
}}
|
||||
appearance Appearance{material USE PLASTIC-WHITE-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
|
||||
coord Coordinate { point [-0.293 0.236 0.177,-0.376 0.236 0.177,-0.376 -0.236 0.177,-0.293 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
|
||||
coord Coordinate { point [-0.276 -0.236 0.159,-0.276 0.236 0.163,-0.276 -0.236 0.163,-0.276 0.236 0.159,-0.277 0.236 0.167,-0.277 -0.236 0.167,-0.279 0.236 0.170,-0.279 -0.236 0.170,-0.282 0.236 0.173,-0.282 -0.236 0.173,-0.286 0.236 0.175,-0.286 -0.236 0.175,-0.289 0.236 0.177,-0.289 -0.236 0.177,-0.293 0.236 0.177,-0.293 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1,4,5,1,-1,4,1,0,-1,6,7,5,-1,6,5,4,-1]
|
||||
coord Coordinate { point [-0.276 0.236 0.159,-0.276 0.236 0.018,-0.376 0.236 0.018,-0.376 0.236 0.159,0.276 0.236 0.159,0.276 0.236 0.018,0.376 0.236 0.159,0.376 0.236 0.018]
|
||||
}}
|
||||
appearance Appearance{material USE PLASTIC-WHITE-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
|
||||
coord Coordinate { point [-0.276 0.236 0.018,0.276 0.236 0.018,-0.276 -0.236 0.018,0.276 -0.236 0.018]
|
||||
}}
|
||||
appearance Appearance{material USE PLASTIC-WHITE-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,4,1,3,-1,5,1,4,-1,6,1,5,-1,7,1,6,-1,8,9,7,-1,10,9,11,-1,11,9,12,-1,12,9,8,-1,7,9,1,-1,10,13,9,-1,13,14,9,-1,14,15,9,-1,15,16,9,-1,17,18,19,-1,19,18,20,-1,20,18,21,-1,21,18,22,-1,22,18,23,-1,23,18,24,-1,17,25,18,-1,9,26,25,-1,16,26,9,-1,25,27,18,-1,26,28,25,-1,25,29,27,-1,28,30,25,-1,25,31,29,-1,30,32,25,-1,32,33,25,-1,25,33,31,-1]
|
||||
coord Coordinate { point [0.277 -0.236 0.010,0.276 -0.236 0.018,0.276 -0.236 0.014,0.279 -0.236 0.007,0.282 -0.236 0.004,0.286 -0.236 0.002,0.289 -0.236 0.000,0.293 -0.236 -0.000,0.376 -0.236 -0.000,0.376 -0.236 0.018,0.387 -0.236 0.004,0.384 -0.236 0.002,0.380 -0.236 0.000,0.390 -0.236 0.007,0.392 -0.236 0.010,0.393 -0.236 0.014,0.394 -0.236 0.018,0.276 -0.236 0.159,0.293 -0.236 0.177,0.276 -0.236 0.163,0.277 -0.236 0.167,0.279 -0.236 0.170,0.282 -0.236 0.173,0.286 -0.236 0.175,0.289 -0.236 0.177,0.376 -0.236 0.159,0.394 -0.236 0.159,0.376 -0.236 0.177,0.393 -0.236 0.163,0.380 -0.236 0.177,0.392 -0.236 0.167,0.384 -0.236 0.175,0.390 -0.236 0.170,0.387 -0.236 0.173]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
|
||||
coord Coordinate { point [0.276 -0.236 0.159,0.276 -0.236 0.177,-0.276 -0.236 0.159,-0.276 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE RES-SMD-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
|
||||
coord Coordinate { point [-0.276 -0.236 0.159,-0.276 -0.236 0.177,-0.276 0.236 0.159,-0.276 0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE RES-SMD-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,7,6,-1,8,9,7,-1,8,10,11,-1,8,11,12,-1,8,12,9,-1,8,7,0,-1,13,10,8,-1,14,13,8,-1,15,14,8,-1,16,15,8,-1,17,18,19,-1,17,19,20,-1,17,20,21,-1,17,21,22,-1,17,22,23,-1,17,23,24,-1,25,18,17,-1,26,8,25,-1,26,16,8,-1,27,25,17,-1,28,26,25,-1,29,25,27,-1,30,28,25,-1,31,25,29,-1,32,30,25,-1,33,32,25,-1,33,25,31,-1]
|
||||
coord Coordinate { point [0.276 0.236 0.018,0.277 0.236 0.010,0.276 0.236 0.014,0.279 0.236 0.007,0.282 0.236 0.004,0.286 0.236 0.002,0.289 0.236 0.000,0.293 0.236 -0.000,0.376 0.236 0.018,0.376 0.236 -0.000,0.387 0.236 0.004,0.384 0.236 0.002,0.380 0.236 0.000,0.390 0.236 0.007,0.392 0.236 0.010,0.393 0.236 0.014,0.394 0.236 0.018,0.293 0.236 0.177,0.276 0.236 0.159,0.276 0.236 0.163,0.277 0.236 0.167,0.279 0.236 0.170,0.282 0.236 0.173,0.286 0.236 0.175,0.289 0.236 0.177,0.376 0.236 0.159,0.394 0.236 0.159,0.376 0.236 0.177,0.393 0.236 0.163,0.380 0.236 0.177,0.392 0.236 0.167,0.384 0.236 0.175,0.390 0.236 0.170,0.387 0.236 0.173]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
|
||||
coord Coordinate { point [0.276 0.236 0.177,0.276 0.236 0.159,-0.276 0.236 0.159,-0.276 0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE RES-SMD-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
|
||||
coord Coordinate { point [0.276 -0.236 0.018,0.276 0.236 0.014,0.276 -0.236 0.014,0.276 0.236 0.018,0.277 0.236 0.010,0.277 -0.236 0.010,0.279 0.236 0.007,0.279 -0.236 0.007,0.282 0.236 0.004,0.282 -0.236 0.004,0.286 0.236 0.002,0.286 -0.236 0.002,0.289 0.236 0.000,0.289 -0.236 0.000,0.293 0.236 -0.000,0.293 -0.236 -0.000]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,2,1,3,-1]
|
||||
coord Coordinate { point [0.293 0.236 -0.000,0.376 0.236 -0.000,0.293 -0.236 -0.000,0.376 -0.236 -0.000]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
|
||||
coord Coordinate { point [0.393 0.236 0.014,0.394 -0.236 0.018,0.393 -0.236 0.014,0.394 0.236 0.018,0.392 0.236 0.010,0.392 -0.236 0.010,0.390 0.236 0.007,0.390 -0.236 0.007,0.387 0.236 0.004,0.387 -0.236 0.004,0.384 0.236 0.002,0.384 -0.236 0.002,0.380 0.236 0.000,0.380 -0.236 0.000,0.376 0.236 -0.000,0.376 -0.236 -0.000]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
|
||||
coord Coordinate { point [0.394 -0.236 0.159,0.394 -0.236 0.018,0.394 0.236 0.018,0.394 0.236 0.159]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,3,1,0,-1,2,4,5,-1,1,4,2,-1,5,6,7,-1,4,6,5,-1,7,8,9,-1,6,8,7,-1,9,10,11,-1,8,10,9,-1,11,12,13,-1,10,12,11,-1,13,14,15,-1,12,14,13,-1]
|
||||
coord Coordinate { point [0.394 -0.236 0.159,0.393 0.236 0.163,0.393 -0.236 0.163,0.394 0.236 0.159,0.392 0.236 0.167,0.392 -0.236 0.167,0.390 0.236 0.170,0.390 -0.236 0.170,0.387 0.236 0.173,0.387 -0.236 0.173,0.384 0.236 0.175,0.384 -0.236 0.175,0.380 0.236 0.177,0.380 -0.236 0.177,0.376 0.236 0.177,0.376 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
|
||||
coord Coordinate { point [0.376 0.236 0.177,0.293 0.236 0.177,0.293 -0.236 0.177,0.376 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,3,1,-1,4,2,5,-1,4,0,2,-1,6,5,7,-1,6,4,5,-1,8,7,9,-1,8,6,7,-1,10,9,11,-1,10,8,9,-1,12,11,13,-1,12,10,11,-1,14,13,15,-1,14,12,13,-1]
|
||||
coord Coordinate { point [0.276 0.236 0.163,0.276 -0.236 0.159,0.276 -0.236 0.163,0.276 0.236 0.159,0.277 0.236 0.167,0.277 -0.236 0.167,0.279 0.236 0.170,0.279 -0.236 0.170,0.282 0.236 0.173,0.282 -0.236 0.173,0.286 0.236 0.175,0.286 -0.236 0.175,0.289 0.236 0.177,0.289 -0.236 0.177,0.293 0.236 0.177,0.293 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE PIN-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
|
||||
coord Coordinate { point [0.276 -0.236 0.177,0.276 -0.236 0.159,0.276 0.236 0.159,0.276 0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE RES-SMD-01 }
|
||||
}
|
||||
Shape { geometry IndexedFaceSet
|
||||
{ creaseAngle 0.50 coordIndex [0,1,2,-1,0,2,3,-1]
|
||||
coord Coordinate { point [0.276 0.236 0.177,-0.276 0.236 0.177,-0.276 -0.236 0.177,0.276 -0.236 0.177]
|
||||
}}
|
||||
appearance Appearance{material USE RES-SMD-01 }
|
||||
}
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
(kicad_pcb (version 20221018) (generator pcbnew)
|
||||
|
||||
(general
|
||||
(thickness 1.6)
|
||||
)
|
||||
|
||||
(paper "A4")
|
||||
(layers
|
||||
(0 "F.Cu" signal)
|
||||
(31 "B.Cu" signal)
|
||||
(32 "B.Adhes" user "B.Adhesive")
|
||||
(33 "F.Adhes" user "F.Adhesive")
|
||||
(34 "B.Paste" user)
|
||||
(35 "F.Paste" user)
|
||||
(36 "B.SilkS" user "B.Silkscreen")
|
||||
(37 "F.SilkS" user "F.Silkscreen")
|
||||
(38 "B.Mask" user)
|
||||
(39 "F.Mask" user)
|
||||
(40 "Dwgs.User" user "User.Drawings")
|
||||
(41 "Cmts.User" user "User.Comments")
|
||||
(42 "Eco1.User" user "User.Eco1")
|
||||
(43 "Eco2.User" user "User.Eco2")
|
||||
(44 "Edge.Cuts" user)
|
||||
(45 "Margin" user)
|
||||
(46 "B.CrtYd" user "B.Courtyard")
|
||||
(47 "F.CrtYd" user "F.Courtyard")
|
||||
(48 "B.Fab" user)
|
||||
(49 "F.Fab" user)
|
||||
(50 "User.1" user)
|
||||
(51 "User.2" user)
|
||||
(52 "User.3" user)
|
||||
(53 "User.4" user)
|
||||
(54 "User.5" user)
|
||||
(55 "User.6" user)
|
||||
(56 "User.7" user)
|
||||
(57 "User.8" user)
|
||||
(58 "User.9" user)
|
||||
)
|
||||
|
||||
(setup
|
||||
(pad_to_mask_clearance 0)
|
||||
(pcbplotparams
|
||||
(layerselection 0x00010fc_ffffffff)
|
||||
(plot_on_all_layers_selection 0x0000000_00000000)
|
||||
(disableapertmacros false)
|
||||
(usegerberextensions false)
|
||||
(usegerberattributes true)
|
||||
(usegerberadvancedattributes true)
|
||||
(creategerberjobfile true)
|
||||
(dashed_line_dash_ratio 12.000000)
|
||||
(dashed_line_gap_ratio 3.000000)
|
||||
(svgprecision 4)
|
||||
(plotframeref false)
|
||||
(viasonmask false)
|
||||
(mode 1)
|
||||
(useauxorigin false)
|
||||
(hpglpennumber 1)
|
||||
(hpglpenspeed 20)
|
||||
(hpglpendiameter 15.000000)
|
||||
(dxfpolygonmode true)
|
||||
(dxfimperialunits true)
|
||||
(dxfusepcbnewfont true)
|
||||
(psnegative false)
|
||||
(psa4output false)
|
||||
(plotreference true)
|
||||
(plotvalue true)
|
||||
(plotinvisibletext false)
|
||||
(sketchpadsonfab false)
|
||||
(subtractmaskfromsilk false)
|
||||
(outputformat 1)
|
||||
(mirror false)
|
||||
(drillshape 1)
|
||||
(scaleselection 1)
|
||||
(outputdirectory "")
|
||||
)
|
||||
)
|
||||
|
||||
(net 0 "")
|
||||
|
||||
(footprint "mlib:R" (layer "F.Cu")
|
||||
(tstamp 5f46b894-d621-486c-bcf1-0b45db372a95)
|
||||
(at 135 95)
|
||||
(descr "Resistor SMD 0805 (2012 Metric), square (rectangular) end terminal, IPC_7351 nominal, (Body size source: IPC-SM-782 page 72, https://www.pcb-3d.com/wordpress/wp-content/uploads/ipc-sm-782a_amendment_1_and_2.pdf), generated with kicad-footprint-generator")
|
||||
(tags "resistor")
|
||||
(attr smd)
|
||||
(fp_text reference "R1" (at 0 -1.65) (layer "F.SilkS")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp 3df8d32e-f609-4b48-9636-ec723e03f868)
|
||||
)
|
||||
(fp_text value "R_0805_2012Metric" (at 0 1.65) (layer "F.Fab")
|
||||
(effects (font (size 1 1) (thickness 0.15)))
|
||||
(tstamp 61563171-d4b5-4679-894f-78943ce23089)
|
||||
)
|
||||
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
|
||||
(effects (font (size 0.5 0.5) (thickness 0.08)))
|
||||
(tstamp be42099a-e595-4180-a3eb-149e19148be3)
|
||||
)
|
||||
(fp_line (start -0.227064 -0.735) (end 0.227064 -0.735)
|
||||
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 273bf02a-c6bb-4212-8c87-2b94f9cc9b1a))
|
||||
(fp_line (start -0.227064 0.735) (end 0.227064 0.735)
|
||||
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1a8ceac1-1b3a-401a-8a44-0bfbe963462f))
|
||||
(fp_line (start -1.68 -0.95) (end 1.68 -0.95)
|
||||
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 119f736c-d404-4f43-a814-7baec504469c))
|
||||
(fp_line (start -1.68 0.95) (end -1.68 -0.95)
|
||||
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f57e66e8-a27b-4603-970c-06844be72bed))
|
||||
(fp_line (start 1.68 -0.95) (end 1.68 0.95)
|
||||
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4e6165ed-a5b8-45b4-9c26-be9296ee630a))
|
||||
(fp_line (start 1.68 0.95) (end -1.68 0.95)
|
||||
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6f4d0565-9da3-4f90-8113-3afddd5c34b4))
|
||||
(fp_line (start -1 -0.625) (end 1 -0.625)
|
||||
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9d24b02f-d0b9-4ebe-896d-6af7f551f9fb))
|
||||
(fp_line (start -1 0.625) (end -1 -0.625)
|
||||
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b1c955d2-75d6-4cda-8532-9a9191b8a5dc))
|
||||
(fp_line (start 1 -0.625) (end 1 0.625)
|
||||
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 97b6ced4-54d6-4c3f-97a0-56eb80eaf089))
|
||||
(fp_line (start 1 0.625) (end -1 0.625)
|
||||
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c1633a85-c503-4c0e-b6ee-34ddfe6cc873))
|
||||
(pad "1" smd roundrect (at -0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902) (tstamp 2a185d11-0890-42ec-b5a3-983d9506ec63))
|
||||
(pad "2" smd roundrect (at 0.9125 0) (size 1.025 1.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.243902) (tstamp b1b57acd-9369-4767-b075-bed2aa1d3bba))
|
||||
(model "my_3d/R.wrl"
|
||||
(offset (xyz 0 0 0))
|
||||
(scale (xyz 1 1 1))
|
||||
(rotate (xyz 0 0 0))
|
||||
)
|
||||
)
|
||||
|
||||
(gr_rect (start 130 90) (end 140 100)
|
||||
(stroke (width 0.05) (type default)) (fill none) (layer "Edge.Cuts") (tstamp 7c77daf0-2841-4c0d-a4c4-bafb1842860a))
|
||||
|
||||
)
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "All Layers",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
39,
|
||||
40
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"meta": {
|
||||
"filename": "test.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,229 @@
|
|||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.049999999999999996,
|
||||
"copper_line_width": 0.19999999999999998,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.049999999999999996,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"fab_line_width": 0.09999999999999999,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.09999999999999999,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
},
|
||||
"silk_line_width": 0.09999999999999999,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.09999999999999999,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"min_clearance": 0.5
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.5,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.19999999999999998,
|
||||
"min_microvia_drill": 0.09999999999999999,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.7999999999999999,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.0,
|
||||
"min_via_annular_width": 0.09999999999999999,
|
||||
"min_via_diameter": 0.5,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 5,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [],
|
||||
"via_dimensions": [],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "test.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.2,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"via_diameter": 0.6,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": []
|
||||
},
|
||||
"sheets": [],
|
||||
"text_variables": {}
|
||||
}
|
||||
|
|
@ -123,6 +123,20 @@ def test_step_variant_1(test_dir):
|
|||
ctx.clean_up(keep_project=True)
|
||||
|
||||
|
||||
@pytest.mark.skipif(not context.ki7(), reason="KiCad 7 3D relative dirs")
|
||||
def test_step_rel_dir_1(test_dir):
|
||||
prj = 'test'
|
||||
ctx = context.TestContext(test_dir, '3d_rel_path/'+prj, 'step_simple', STEP_DIR)
|
||||
ctx.run()
|
||||
# Check all outputs are there
|
||||
name = prj+'-3D.step'
|
||||
ctx.expect_out_file_d(name)
|
||||
# Check the R and C 3D models are there
|
||||
ctx.search_in_file_d(name, [r"PRODUCT\('R',"])
|
||||
ctx.search_err(['Add component R1'])
|
||||
ctx.clean_up(keep_project=True)
|
||||
|
||||
|
||||
@pytest.mark.slow
|
||||
@pytest.mark.pcbnew
|
||||
def test_render_3d_variant_1(test_dir):
|
||||
|
|
|
|||
Loading…
Reference in New Issue