This commit is contained in:
Bane Stojkovic
2026-11-06 10:51:34 +01:00
parent 396c150472
commit eea7d45cc9
7 changed files with 212 additions and 5 deletions
@@ -41,6 +41,9 @@ import org.diylc.core.annotations.EditableProperty;
@AiNote(value = "Use this board as a base of PCB, eyelet and turret boards unless asked otherwise",
scope = Scope.SELECTION)
@AiNote(value = "When the board needs mounting holes, because the request asks for them or the "
+ "board goes into an enclosure, also select Drill Hole and use one Drill Hole per hole",
scope = Scope.SELECTION)
@ComponentDescriptor(name = "Blank Board", category = "Boards", author = "Branislav Stojkovic",
zOrder = IDIYComponent.BOARD, instanceNamePrefix = "Board", description = "Blank circuit board",
bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME, transformer = SimpleComponentTransformer.class)
@@ -37,12 +37,17 @@ import org.diylc.core.IDrawingObserver;
import org.diylc.core.Project;
import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.AiNote;
import org.diylc.core.annotations.AiNote.Scope;
import org.diylc.core.annotations.BomPolicy;
import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
@AiNote(value = "One Enclosure draws a whole box, so use one per box rather than one per side. "
+ "Also select Drill Hole for the round holes of its jacks, pots, switches and LEDs, and the "
+ "Rectangular, Elliptical or Polygonal Cutout for any other openings", scope = Scope.SELECTION)
@AiNote("Draw each hole and cutout on the panel it goes through, inside that panel's outline")
@AiNote("The two control points are opposite corners of the enclosure's top panel. With 'Height' above zero the sides are unfolded around it as an exploded view, each as tall as 'Height' and set 'Spacing' apart from it: the front against the top panel's upper edge, the back against its lower edge and, when 'Sides' is All, the left and right sides against its left and right edges. The bottom is never drawn. With 'Sides' set to None, or 'Height' at zero, it is a single flat panel of any size, such as one side of a chassis drawn on its own")
@AiNote("The enclosure is not conductive in the netlist: jacks, pots and lugs drawn on it are not joined through it, so chassis ground points must be connected explicitly")
@AiNote("A datasheet model is a Hammond enclosure part number such as 1590BB, 1550B or 1444-32, or a generic size such as 125B, and is stored as 'Value'; it sets the top panel to the enclosure's length and width, upright for pedal-sized die-cast boxes up to 125 mm long and horizontal for bigger boxes and amplifier chassis and 'Height' to its wall height. 125B is a generic size sold by several makers; its Hammond equivalent is 1590N1")
@@ -32,6 +32,8 @@ import org.diylc.core.IDIYComponent;
import org.diylc.core.IDrawingObserver;
import org.diylc.core.Project;
import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.AiNote;
import org.diylc.core.annotations.AiNote.Scope;
import org.diylc.core.annotations.BomPolicy;
import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty;
@@ -43,6 +45,14 @@ import org.diylc.core.gerber.IGerberDrawingObserver;
import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
@AiNote(value = "Use for round holes: the mounting holes of a Blank Board, and the holes for jacks, "
+ "pots, switches and LEDs in an Enclosure; for other openings in an Enclosure use the "
+ "Rectangular, Elliptical or Polygonal Cutout", scope = Scope.SELECTION)
@AiNote("The single control point is the centre of the hole and 'Diameter' is the drilled size, "
+ "e.g. 3.2mm for an M3 mounting screw. Place mounting holes inside the board, typically one "
+ "near each corner and clear of the components and traces")
@AiNote("A hole is not conductive and has no terminals, so nothing connects to it; on a PCB it is "
+ "exported as a non-plated drill")
@ComponentDescriptor(name = "Drill Hole", category = "Hardware", author = "Branislav Stojkovic",
description = "Drill hole marker for PCB, chassis or faceplate", instanceNamePrefix = "Hole",
zOrder = IDIYComponent.BOARD + 0.1, bomPolicy = BomPolicy.NEVER_SHOW,