From a32e32311c5d8c74ee539e7e32722f20e75301ef Mon Sep 17 00:00:00 2001 From: "U. Bruhin" Date: Sun, 17 Nov 2024 16:59:24 +0100 Subject: [PATCH] capacitor_radial_tht: Generate 3D models --- generate_capacitor_radial_tht.py | 97 ++++++++++++++++++++++++++-- uuid_cache_capacitors_radial_tht.csv | 21 ++++++ 2 files changed, 113 insertions(+), 5 deletions(-) diff --git a/generate_capacitor_radial_tht.py b/generate_capacitor_radial_tht.py index 488b1ca..f7788e0 100644 --- a/generate_capacitor_radial_tht.py +++ b/generate_capacitor_radial_tht.py @@ -1,10 +1,11 @@ """ Generate THT polarized radial electrolytic capacitors (CAPPRD). """ +import sys from os import path from uuid import uuid4 -from typing import Optional +from typing import Any, Optional from common import format_ipc_dimension, init_cache, now, save_cache from entities.common import ( @@ -14,9 +15,9 @@ from entities.component import SignalUUID from entities.device import ComponentPad, ComponentUUID, Device, PackageUUID from entities.package import ( - AssemblyType, AutoRotate, ComponentSide, CopperClearance, DrillDiameter, Footprint, FootprintPad, LetterSpacing, - LineSpacing, Mirror, Package, PackagePad, PackagePadUuid, PadFunction, PadHole, Shape, ShapeRadius, Size, - SolderPasteConfig, StopMaskConfig, StrokeText, StrokeWidth + AssemblyType, AutoRotate, ComponentSide, CopperClearance, DrillDiameter, Footprint, Footprint3DModel, FootprintPad, + LetterSpacing, LineSpacing, Mirror, Package, Package3DModel, PackagePad, PackagePadUuid, PadFunction, PadHole, + Shape, ShapeRadius, Size, SolderPasteConfig, StopMaskConfig, StrokeText, StrokeWidth ) generator = 'librepcb-parts-generator (generate_capacitor_radial_tht.py)' @@ -68,6 +69,7 @@ def generate_pkg( height: float, pitch: float, lead_width: float, + generate_3d_models: bool, author: str, version: str, create_date: Optional[str], @@ -252,8 +254,9 @@ def _generate_fill_polygon(identifier: str, layer: str) -> Polygon: return footprint # package + uuid_pkg = _pkg_uuid('pkg') package = Package( - uuid=_pkg_uuid('pkg'), + uuid=uuid_pkg, name=Name(name), description=Description( 'Polarized radial electrolytic capacitor.\n\n' + @@ -279,11 +282,83 @@ def _generate_fill_polygon(identifier: str, layer: str) -> Polygon: name='default', )) + # Generate 3D models + uuid_3d = _pkg_uuid('3d') + if generate_3d_models: + generate_3d(library, name, uuid_pkg, uuid_3d, diameter, height, + pitch, lead_width) + package.add_3d_model(Package3DModel(uuid_3d, Name(name))) + for footprint in package.footprints: + footprint.add_3d_model(Footprint3DModel(uuid_3d)) + # write files package.serialize(path.join('out', library, 'pkg')) print('Wrote package {}'.format(name)) +def generate_3d( + library: str, + name: str, + uuid_pkg: str, + uuid_3d: str, + diameter: float, + height: float, + pitch: float, + lead_width: float, +) -> None: + import cadquery as cq + + from cadquery_helpers import StepAssembly, StepColor, StepConstants + + print(f'Generating pkg 3D model "{name}": {uuid_3d}') + + body_fillet = min(diameter * 0.1, 1.0) + body_ring_radius = min(diameter * 0.05, 1.0) + body_ring_circle_radius = (diameter / 2) + (body_ring_radius / 2) + body_ring_z = body_fillet + body_ring_radius * 3 + marking_angle = 40 + core_radius = diameter * 0.35 + core_depth = min(diameter * 0.02, 0.5) + + body_ring_cutout = cq.Workplane('XZ', origin=(-body_ring_circle_radius, 0, body_ring_z)) \ + .circle(body_ring_radius) \ + .revolve(360, (body_ring_circle_radius, 0, 0), (body_ring_circle_radius, -1, 0)) + + def _make_body(start_angle: float, angle: float) -> Any: + return cq.Workplane("XZ") \ + .transformed(rotate=(0, -start_angle, 0)) \ + .transformed(offset=(core_radius, 0, 0)) \ + .hLine((diameter / 2) - core_radius - body_fillet) \ + .ellipseArc(x_radius=body_fillet, y_radius=body_fillet, angle1=270, angle2=360, sense=1) \ + .vLine(height - (2 * body_fillet)) \ + .ellipseArc(x_radius=body_fillet, y_radius=body_fillet, angle1=360, angle2=90, sense=1) \ + .hLine(-(diameter / 2) + core_radius + body_fillet) \ + .close() \ + .revolve(angle, (-core_radius, 0, 0), (-core_radius, -1, 0)) \ + .cut(body_ring_cutout) + + body = _make_body(marking_angle / 2, 360 - marking_angle) + marking = _make_body(-marking_angle / 2, marking_angle) + core = cq.Workplane('XY', origin=(0, 0, core_depth)) \ + .cylinder(height - 2 * core_depth, core_radius, centered=(True, True, False)) + leg = cq.Workplane("XY").workplane(offset=(-core_depth - 1), invert=True) \ + .cylinder(StepConstants.THT_LEAD_SOLDER_LENGTH + core_depth + 1, lead_width / 2, + centered=(True, True, False)) + + assembly = StepAssembly(name) + assembly.add_body(body, 'body', cq.Color('gray13')) + assembly.add_body(marking, 'marking', cq.Color('gray60')) + assembly.add_body(core, 'core', cq.Color('ghostwhite')) + assembly.add_body(leg, 'leg-1', StepColor.LEAD_THT, + location=cq.Location((-pitch / 2, 0, 0))) + assembly.add_body(leg, 'leg-2', StepColor.LEAD_THT, + location=cq.Location((pitch / 2, 0, 0))) + + # Save with fusing since there are not many reused assembly parts. + out_path = path.join('out', library, 'pkg', uuid_pkg, f'{uuid_3d}.step') + assembly.save(out_path, fused=True) + + def generate_dev( library: str, diameter: float, @@ -336,6 +411,17 @@ def _uuid(identifier: str) -> str: if __name__ == '__main__': + if '--help' in sys.argv or '-h' in sys.argv: + print(f'Usage: {sys.argv[0]} [--3d]') + print() + print('Options:') + print(' --3d Generate 3D models using cadquery') + sys.exit(1) + + generate_3d_models = '--3d' in sys.argv + if not generate_3d_models: + warning = 'Note: Not generating 3D models unless the "--3d" argument is passed in!' + print(f'\033[1;33m{warning}\033[0m') CONFIGS = [ # Some typical, frequently used configurations. The lead width depends @@ -372,6 +458,7 @@ def _uuid(identifier: str) -> str: height=config['height'], pitch=config['pitch'], lead_width=config['lead_width'], + generate_3d_models=generate_3d_models, author='U. Bruhin', version='0.1', create_date='2019-12-29T14:14:11Z', diff --git a/uuid_cache_capacitors_radial_tht.csv b/uuid_cache_capacitors_radial_tht.csv index 9b6bba1..898d684 100644 --- a/uuid_cache_capacitors_radial_tht.csv +++ b/uuid_cache_capacitors_radial_tht.csv @@ -19,6 +19,7 @@ dev-d6.3-h7.0-p2.5-w0.5-dev,99351a67-0fa7-40b1-a034-56da111e056a dev-d8.0-h11.5-p3.5-w0.6-dev,168f4978-a6b6-4b5d-964d-be6733328650 dev-d8.0-h5.0-p2.5-w0.6-dev,0107bccf-17c5-47ac-ae7a-75b057ba0a66 dev-d8.0-h7.0-p3.5-w0.6-dev,4353b100-937f-4c82-be90-62f4b632ab8b +pkg-d10.0-h12.5-p5.0-w0.6-3d,78db5379-e2b4-4c90-8dfa-819f358b92ea pkg-d10.0-h12.5-p5.0-w0.6-default-circle-courtyard,2cb554b4-514b-484c-a28f-db30b969b0ae pkg-d10.0-h12.5-p5.0-w0.6-default-circle-documentation,c847a4ae-3644-47b4-8cac-a121c237e1a0 pkg-d10.0-h12.5-p5.0-w0.6-default-circle-outline,f0f4d121-880d-4c7a-94cb-6f640be4a1b3 @@ -31,6 +32,7 @@ pkg-d10.0-h12.5-p5.0-w0.6-default-text-value,64b9a447-c6e5-432a-9a0b-cefcaecb244 pkg-d10.0-h12.5-p5.0-w0.6-pad-minus,e5c0f266-5dfe-49d7-997c-402637a7a674 pkg-d10.0-h12.5-p5.0-w0.6-pad-plus,71ad34a2-36b1-4295-9a41-90ee17a6d96a pkg-d10.0-h12.5-p5.0-w0.6-pkg,10994512-62cf-4260-8b6f-72a837bd5e70 +pkg-d10.0-h16.0-p5.0-w0.6-3d,2b58f971-49c6-48af-bebc-a4a743453a47 pkg-d10.0-h16.0-p5.0-w0.6-default-circle-courtyard,67a89437-07eb-4b0a-b6f6-e684183a9b76 pkg-d10.0-h16.0-p5.0-w0.6-default-circle-documentation,7acfc1cf-9d9b-4b70-8e3c-201a2f7aeae1 pkg-d10.0-h16.0-p5.0-w0.6-default-circle-outline,116a6fe3-f91e-4fbf-a993-6925d1e84cdb @@ -43,6 +45,7 @@ pkg-d10.0-h16.0-p5.0-w0.6-default-text-value,5364ea52-b24e-42ec-bc5a-c7f5ebe46f2 pkg-d10.0-h16.0-p5.0-w0.6-pad-minus,ea26f19f-e453-4e6f-982f-5af58c9b3676 pkg-d10.0-h16.0-p5.0-w0.6-pad-plus,86b53ab1-d7ca-48cd-9c94-7b5617797827 pkg-d10.0-h16.0-p5.0-w0.6-pkg,5bdd8800-1807-42f6-8306-bc93d701e4a7 +pkg-d10.0-h20.0-p5.0-w0.6-3d,af88662b-d2d0-449f-84b1-6d0dd1ef8af2 pkg-d10.0-h20.0-p5.0-w0.6-default-circle-courtyard,60549428-98a7-40c5-938f-40adb1e887d2 pkg-d10.0-h20.0-p5.0-w0.6-default-circle-documentation,59ce4d64-2cba-48e5-b240-12c38b0824e5 pkg-d10.0-h20.0-p5.0-w0.6-default-circle-outline,3f5bd172-f28b-4f07-9142-08913050ac49 @@ -55,6 +58,7 @@ pkg-d10.0-h20.0-p5.0-w0.6-default-text-value,7917b8c8-58fb-4c9c-a663-7bc14448a18 pkg-d10.0-h20.0-p5.0-w0.6-pad-minus,d76a7466-6197-4d4a-b153-5dca2a0f5b47 pkg-d10.0-h20.0-p5.0-w0.6-pad-plus,9b074857-41a9-4b8b-9548-0c7b40879952 pkg-d10.0-h20.0-p5.0-w0.6-pkg,638ea9cf-bce2-49ba-be7d-22c223e37bfd +pkg-d12.5-h20.0-p5.0-w0.8-3d,e99b4253-3204-4b1d-9e4b-00d46c264fc8 pkg-d12.5-h20.0-p5.0-w0.8-default-circle-courtyard,90aa09d1-57ff-4b62-bc5f-dcb1bf086f28 pkg-d12.5-h20.0-p5.0-w0.8-default-circle-documentation,f7868dc1-2d6b-45c4-8672-20c0b51ef55d pkg-d12.5-h20.0-p5.0-w0.8-default-circle-outline,3636fda4-5151-47f9-bd1b-95013a213b8f @@ -67,6 +71,7 @@ pkg-d12.5-h20.0-p5.0-w0.8-default-text-value,cd95fea0-abd1-448e-a04c-43e7461ab17 pkg-d12.5-h20.0-p5.0-w0.8-pad-minus,18c4e8a8-367e-4687-9ef0-7f520dadc7f2 pkg-d12.5-h20.0-p5.0-w0.8-pad-plus,164a6e8b-e245-49a5-bf9d-a72f407a5ebf pkg-d12.5-h20.0-p5.0-w0.8-pkg,7a2bb0cb-c4b3-4568-93ac-383c099309a5 +pkg-d12.5-h25.0-p5.0-w0.8-3d,0237673e-75a6-4f78-b867-437d80646b0e pkg-d12.5-h25.0-p5.0-w0.8-default-circle-courtyard,5f1adc29-1fc6-4c31-97e5-02600d8441d8 pkg-d12.5-h25.0-p5.0-w0.8-default-circle-documentation,124fa50e-9d95-452c-9165-953c0c006f91 pkg-d12.5-h25.0-p5.0-w0.8-default-circle-outline,28fd761e-1954-40fa-b5ba-967874117230 @@ -79,6 +84,7 @@ pkg-d12.5-h25.0-p5.0-w0.8-default-text-value,53d1c1c2-fff1-4b09-9927-547e6fb4df0 pkg-d12.5-h25.0-p5.0-w0.8-pad-minus,76f76ade-6d3d-450a-8d7d-22199f0d644a pkg-d12.5-h25.0-p5.0-w0.8-pad-plus,855fe1bc-5f38-4aa5-a160-b268b676446e pkg-d12.5-h25.0-p5.0-w0.8-pkg,1ceb1564-3f56-4c42-bcf4-3981ad83b76a +pkg-d16.0-h25.0-p7.5-w0.8-3d,795384f8-a62b-48b8-b04a-85f83afd630f pkg-d16.0-h25.0-p7.5-w0.8-default-circle-courtyard,8b3ea12a-993e-457c-81f6-844fdd4c1409 pkg-d16.0-h25.0-p7.5-w0.8-default-circle-documentation,3b1d27ed-7500-46ba-9ce6-4a3e8d7d7059 pkg-d16.0-h25.0-p7.5-w0.8-default-circle-outline,61526dc5-4c3f-480e-a249-185f9e6b937d @@ -91,6 +97,7 @@ pkg-d16.0-h25.0-p7.5-w0.8-default-text-value,c19b2cd7-5aef-4a4e-82e7-b231ce1ed65 pkg-d16.0-h25.0-p7.5-w0.8-pad-minus,0d723fe0-1930-4526-bc1d-57d471ad566b pkg-d16.0-h25.0-p7.5-w0.8-pad-plus,b63702bb-7fd2-44ce-8c0c-5304f33246a7 pkg-d16.0-h25.0-p7.5-w0.8-pkg,bbbf14d5-f359-491f-81fd-eedfeebe68a7 +pkg-d16.0-h31.5-p7.5-w0.8-3d,f1d953c8-eee5-41dd-94d7-259920f9226c pkg-d16.0-h31.5-p7.5-w0.8-default-circle-courtyard,5def97e3-f1e2-4695-9756-f2de6639d279 pkg-d16.0-h31.5-p7.5-w0.8-default-circle-documentation,e1961bd9-e7ab-4c44-8a46-e70fea499368 pkg-d16.0-h31.5-p7.5-w0.8-default-circle-outline,d5539873-975c-4602-8e44-aed13e23c767 @@ -103,6 +110,7 @@ pkg-d16.0-h31.5-p7.5-w0.8-default-text-value,dd6cdf37-d338-4956-9325-871cbe9899c pkg-d16.0-h31.5-p7.5-w0.8-pad-minus,9a108590-da20-4ec4-9b55-51c3558ef12e pkg-d16.0-h31.5-p7.5-w0.8-pad-plus,2d798396-8284-4a07-8dfc-b795de3af9df pkg-d16.0-h31.5-p7.5-w0.8-pkg,a83ebf1e-9607-4fde-a5fe-77202cacb4c4 +pkg-d18.0-h35.5-p7.5-w0.8-3d,48d7cc78-75ad-4f36-a4cb-1e714e253de0 pkg-d18.0-h35.5-p7.5-w0.8-default-circle-courtyard,92f3d3a6-acf7-40e3-806b-ac778cc706f2 pkg-d18.0-h35.5-p7.5-w0.8-default-circle-documentation,afbf9355-f66b-45af-bbba-b81707731a91 pkg-d18.0-h35.5-p7.5-w0.8-default-circle-outline,c6d66031-a1cb-474a-b116-e9705a194985 @@ -115,6 +123,7 @@ pkg-d18.0-h35.5-p7.5-w0.8-default-text-value,16d8ff86-9f6e-4335-9133-18d945396cc pkg-d18.0-h35.5-p7.5-w0.8-pad-minus,08d19758-8a29-4a84-9af2-a9eb95cb6321 pkg-d18.0-h35.5-p7.5-w0.8-pad-plus,e68691bc-b9e1-4737-872d-728170ea5fb5 pkg-d18.0-h35.5-p7.5-w0.8-pkg,8f12c93c-4d09-40d8-a800-f227b08aa220 +pkg-d3.0-h5.0-p1.0-w0.4-3d,b3d51e69-663d-4bee-93da-6384fd51afa0 pkg-d3.0-h5.0-p1.0-w0.4-default-circle-courtyard,2c81b9e6-247c-4adc-a8b9-286726754e4d pkg-d3.0-h5.0-p1.0-w0.4-default-circle-documentation,438671cd-79b0-46ae-9e63-00d1c1574c13 pkg-d3.0-h5.0-p1.0-w0.4-default-circle-outline,6bb58416-44e5-4890-a70c-2491c2f2e2b0 @@ -127,6 +136,7 @@ pkg-d3.0-h5.0-p1.0-w0.4-default-text-value,a0a7791f-d4b2-4375-b941-ce6fe30fb959 pkg-d3.0-h5.0-p1.0-w0.4-pad-minus,f28aa1ac-8825-41dc-bc73-15fd94d8618b pkg-d3.0-h5.0-p1.0-w0.4-pad-plus,33d1c7b1-e777-493d-9f76-79c24ff06729 pkg-d3.0-h5.0-p1.0-w0.4-pkg,4307560c-5055-48fd-88e6-36f8c4fa91bf +pkg-d4.0-h11.0-p1.5-w0.45-3d,9d15a709-f115-4932-aaa4-bdafec7ef9d3 pkg-d4.0-h11.0-p1.5-w0.45-default-circle-courtyard,25506499-c026-4cb9-b006-1ba677c21958 pkg-d4.0-h11.0-p1.5-w0.45-default-circle-documentation,3deb5ddb-3d39-4bff-a01f-b5f239ecad4a pkg-d4.0-h11.0-p1.5-w0.45-default-circle-outline,e7dd0841-5f4b-4950-aca8-77d53de94430 @@ -139,6 +149,7 @@ pkg-d4.0-h11.0-p1.5-w0.45-default-text-value,cf0b2cfa-4af6-4454-8b18-9b40a6e5d17 pkg-d4.0-h11.0-p1.5-w0.45-pad-minus,62af1013-f4b3-4daa-b926-585c87c9c7d3 pkg-d4.0-h11.0-p1.5-w0.45-pad-plus,7f48ef5f-c789-4aa3-b1ad-c75afeaf75b5 pkg-d4.0-h11.0-p1.5-w0.45-pkg,a522889a-d2af-43ab-8a13-850f1742e434 +pkg-d4.0-h5.0-p1.5-w0.45-3d,d7dbfcd8-e4e2-445b-9095-2f866d0d03a6 pkg-d4.0-h5.0-p1.5-w0.45-default-circle-courtyard,3397a3e8-0bba-44e8-9d22-c645d7da6e01 pkg-d4.0-h5.0-p1.5-w0.45-default-circle-documentation,468a7601-ad82-401f-9627-78d7a3b759fc pkg-d4.0-h5.0-p1.5-w0.45-default-circle-outline,5197e48f-8c48-494f-8bfa-db95d4da9e2c @@ -151,6 +162,7 @@ pkg-d4.0-h5.0-p1.5-w0.45-default-text-value,3259b3f9-860a-4a0f-82df-61f6100ad14f pkg-d4.0-h5.0-p1.5-w0.45-pad-minus,2b1bf2fd-ec48-4fa4-8c0e-0c0b119e85b7 pkg-d4.0-h5.0-p1.5-w0.45-pad-plus,f11fd33a-eb02-47c0-9de0-a5bb9f88287c pkg-d4.0-h5.0-p1.5-w0.45-pkg,b041f7ae-0052-4ea4-9244-577994247203 +pkg-d4.0-h7.0-p1.5-w0.45-3d,667d5347-ad66-4f5f-94b9-1918fd77f6d0 pkg-d4.0-h7.0-p1.5-w0.45-default-circle-courtyard,54337866-9ea0-4a12-b75d-94697cb5d15f pkg-d4.0-h7.0-p1.5-w0.45-default-circle-documentation,9f61be2e-93c9-4e15-8127-25812c5988de pkg-d4.0-h7.0-p1.5-w0.45-default-circle-outline,c04c8030-25a2-43d2-a23a-6c075978b60c @@ -163,6 +175,7 @@ pkg-d4.0-h7.0-p1.5-w0.45-default-text-value,b2cb6ff7-9565-4523-bd3a-444a551a3d0a pkg-d4.0-h7.0-p1.5-w0.45-pad-minus,75497a44-af6b-4476-9d20-52fe80382c07 pkg-d4.0-h7.0-p1.5-w0.45-pad-plus,c8197b05-fc56-4724-bdfe-ef0f5c7953e8 pkg-d4.0-h7.0-p1.5-w0.45-pkg,047f91ff-6dcc-4941-8426-48ffb01e009d +pkg-d5.0-h11.0-p2.0-w0.5-3d,70926812-0898-4731-8885-bb9315f2f758 pkg-d5.0-h11.0-p2.0-w0.5-default-circle-courtyard,aec992f7-8267-40b7-8e76-19353092f5e4 pkg-d5.0-h11.0-p2.0-w0.5-default-circle-documentation,d36094e1-cf0d-43a1-afab-3d575ec19612 pkg-d5.0-h11.0-p2.0-w0.5-default-circle-outline,8e4a0924-fbf9-45c6-9403-90208dd85728 @@ -175,6 +188,7 @@ pkg-d5.0-h11.0-p2.0-w0.5-default-text-value,a405fb74-2632-46c7-ac1b-badbd008f1d5 pkg-d5.0-h11.0-p2.0-w0.5-pad-minus,be2c37e6-0f84-4dfd-b1c6-13c5ce47e9c3 pkg-d5.0-h11.0-p2.0-w0.5-pad-plus,5b2bebc0-b41a-49cf-8f0b-56d2b0d00e92 pkg-d5.0-h11.0-p2.0-w0.5-pkg,684ebc3e-b8ca-47f8-9d84-1a4aa994341a +pkg-d5.0-h5.0-p2.0-w0.5-3d,fb1f0425-4f8c-4919-b75b-2797f8567c8e pkg-d5.0-h5.0-p2.0-w0.5-default-circle-courtyard,239c2565-5901-4477-8846-40a43df0990b pkg-d5.0-h5.0-p2.0-w0.5-default-circle-documentation,04cd9206-776a-4972-98c5-436678b34dc4 pkg-d5.0-h5.0-p2.0-w0.5-default-circle-outline,1cdd3057-2ba7-4484-97ff-09cdca30db61 @@ -187,6 +201,7 @@ pkg-d5.0-h5.0-p2.0-w0.5-default-text-value,2dcb64a0-4682-47f2-bc8e-4672c2a6d10f pkg-d5.0-h5.0-p2.0-w0.5-pad-minus,f0123ee0-f9e3-4f35-aa4d-fa8b7ca8f3c3 pkg-d5.0-h5.0-p2.0-w0.5-pad-plus,5b1275cd-0630-4475-a408-187a051af73a pkg-d5.0-h5.0-p2.0-w0.5-pkg,62d78cc0-a21e-4b5b-8c6a-647a1ecf8771 +pkg-d5.0-h7.0-p2.0-w0.5-3d,f8ca01f3-5723-4fb9-bdf4-0e204b4fc6c1 pkg-d5.0-h7.0-p2.0-w0.5-default-circle-courtyard,3bfec9d2-e359-4c50-826f-2bec284bc5d9 pkg-d5.0-h7.0-p2.0-w0.5-default-circle-documentation,cd941e73-abbf-405a-b9a5-b999c54901c1 pkg-d5.0-h7.0-p2.0-w0.5-default-circle-outline,7cecbc71-e71e-4e61-ac31-9133fc20a9ad @@ -199,6 +214,7 @@ pkg-d5.0-h7.0-p2.0-w0.5-default-text-value,fdab6f3a-53b7-4843-b134-34eee00257eb pkg-d5.0-h7.0-p2.0-w0.5-pad-minus,98763ef6-dd52-48a7-baf0-ed9044b55018 pkg-d5.0-h7.0-p2.0-w0.5-pad-plus,dcb3a80f-b16a-44fe-914e-43a65ce6d965 pkg-d5.0-h7.0-p2.0-w0.5-pkg,def6b461-05f6-4dc9-9e41-612ab34d1e59 +pkg-d6.3-h11.0-p2.5-w0.5-3d,8291a2f6-989f-4dc0-ae8d-e9ca372a9a0d pkg-d6.3-h11.0-p2.5-w0.5-default-circle-courtyard,5785cbe8-22f3-42c6-8193-64a540c94ebb pkg-d6.3-h11.0-p2.5-w0.5-default-circle-documentation,523302f7-dbfe-4d81-aac0-196c34aa5be9 pkg-d6.3-h11.0-p2.5-w0.5-default-circle-outline,49408a55-8ffa-41e2-a288-72693e4ce850 @@ -211,6 +227,7 @@ pkg-d6.3-h11.0-p2.5-w0.5-default-text-value,aed07899-2cb0-4631-b7ea-d5d96712fc5b pkg-d6.3-h11.0-p2.5-w0.5-pad-minus,1a41f1b3-c51c-4da1-9362-cd93fda7025b pkg-d6.3-h11.0-p2.5-w0.5-pad-plus,83d8dcfb-747a-4818-be2b-ffa5170c1812 pkg-d6.3-h11.0-p2.5-w0.5-pkg,1c97bc55-ea91-4c4d-8bbe-8977f03ee654 +pkg-d6.3-h5.0-p2.5-w0.5-3d,e6929347-24e8-4f39-b7d0-cdf517e5fff1 pkg-d6.3-h5.0-p2.5-w0.5-default-circle-courtyard,35e18eb0-6a49-42b2-ba05-f13add9bce47 pkg-d6.3-h5.0-p2.5-w0.5-default-circle-documentation,b711b205-dc73-4ae1-aea7-c52e75be63ce pkg-d6.3-h5.0-p2.5-w0.5-default-circle-outline,c83b3cf3-569c-41af-8a8b-0fb1ba63fb3c @@ -223,6 +240,7 @@ pkg-d6.3-h5.0-p2.5-w0.5-default-text-value,73579c7c-1a1b-4ebe-8f14-4c2914ca3e5c pkg-d6.3-h5.0-p2.5-w0.5-pad-minus,084b42c7-6b1a-44a5-80c7-68d3d6067284 pkg-d6.3-h5.0-p2.5-w0.5-pad-plus,5d7062fa-3cf8-484a-87b0-adcb73aea009 pkg-d6.3-h5.0-p2.5-w0.5-pkg,9e3cb807-712f-4d8a-88ec-0c7fb12b7a71 +pkg-d6.3-h7.0-p2.5-w0.5-3d,df0e8030-dd8e-407d-9b8c-b42b4e98bcc7 pkg-d6.3-h7.0-p2.5-w0.5-default-circle-courtyard,e5f52c4b-8219-4a2a-a763-62d0a827ca3f pkg-d6.3-h7.0-p2.5-w0.5-default-circle-documentation,cb77b985-c7d7-477f-94c0-e6da9eccf8e0 pkg-d6.3-h7.0-p2.5-w0.5-default-circle-outline,9d27a49e-66c6-4fa4-8dea-41ef261bb608 @@ -235,6 +253,7 @@ pkg-d6.3-h7.0-p2.5-w0.5-default-text-value,595784c1-13ef-4e9d-8383-0e0dc9c64b3a pkg-d6.3-h7.0-p2.5-w0.5-pad-minus,364cea9b-2553-4890-9794-38be49f92d9a pkg-d6.3-h7.0-p2.5-w0.5-pad-plus,628147d6-d099-45cf-b725-c69d77188b1c pkg-d6.3-h7.0-p2.5-w0.5-pkg,065f98eb-43a4-4533-9076-c9a42593ea57 +pkg-d8.0-h11.5-p3.5-w0.6-3d,4a3bb3b8-96fe-418f-9b08-1b46de4b71da pkg-d8.0-h11.5-p3.5-w0.6-default-circle-courtyard,6e93edbc-c2ae-4fe5-8f76-5989038cbac2 pkg-d8.0-h11.5-p3.5-w0.6-default-circle-documentation,439393bc-ee6c-48a0-a46f-c100a81facdc pkg-d8.0-h11.5-p3.5-w0.6-default-circle-outline,87cd02b7-6b40-43e0-be52-676532ac4d77 @@ -247,6 +266,7 @@ pkg-d8.0-h11.5-p3.5-w0.6-default-text-value,e6bc7e6e-46cb-403d-86ae-016737255eca pkg-d8.0-h11.5-p3.5-w0.6-pad-minus,bd0fb72f-fae7-436d-80aa-965f697bf4e5 pkg-d8.0-h11.5-p3.5-w0.6-pad-plus,3274ec77-b01b-4ce7-8f9c-59d59116d44f pkg-d8.0-h11.5-p3.5-w0.6-pkg,c718e83a-4b13-415c-8c96-d192831837d5 +pkg-d8.0-h5.0-p2.5-w0.6-3d,56d07083-ffc1-42a0-a3e9-609179277c33 pkg-d8.0-h5.0-p2.5-w0.6-default-circle-courtyard,37cbb6cf-7605-484f-8fd9-361d8367c0df pkg-d8.0-h5.0-p2.5-w0.6-default-circle-documentation,b55d2cd4-3aab-4bab-a650-5294422c0aea pkg-d8.0-h5.0-p2.5-w0.6-default-circle-outline,5eddf313-f6e6-4d45-9c7f-43bef1ca1ac1 @@ -259,6 +279,7 @@ pkg-d8.0-h5.0-p2.5-w0.6-default-text-value,bbb06a99-a07e-4f3c-8c53-75e5f4fdcbe1 pkg-d8.0-h5.0-p2.5-w0.6-pad-minus,dbaab8c2-e88b-4f5b-b2a8-528d10ec340d pkg-d8.0-h5.0-p2.5-w0.6-pad-plus,b4e7cf1e-8cad-451a-8bd9-4f30f8118755 pkg-d8.0-h5.0-p2.5-w0.6-pkg,7b756d32-87b4-423c-95b2-3fb1a4263a1c +pkg-d8.0-h7.0-p3.5-w0.6-3d,5df5fcbd-b6a8-4171-bf69-9934b0cfbdc0 pkg-d8.0-h7.0-p3.5-w0.6-default-circle-courtyard,f3f4eccd-1654-4c93-bcab-2cc11f8aa218 pkg-d8.0-h7.0-p3.5-w0.6-default-circle-documentation,c1405da7-a053-4c3c-9f73-8c6f672bc5f9 pkg-d8.0-h7.0-p3.5-w0.6-default-circle-outline,e643db3f-3d12-495e-ad8e-d30cefa05377