tro_annotate --read-tros: TRO-Handkorrekturen aus BricsCAD, Staubereiche vor dem TRO
- Marker tragen KEY (ID der ID-Datei) und SLOTS (Bauteil je Slot), die Zeichnung die Bauteiltabelle SPS_SKEL_PARTS (XRECORD) fuer "Im Plan waehlen" im Dialog TRO_EDIT (dxfmakros) - --read-tros schreibt geaenderte, neue und geloeschte Marker als Abschnitte edit/edit_add nach cfg/tro_overrides.ini; tro_flow.apply_edits wendet nur diese Arten an (Bauteile mit Lage, exportfest) - --emit-lisp schreibt dazu *TRO-SLOTS* und *TRO-SLOT-KINDS* - model: Lagerlinien zaehlen je TRO (Katalog nur Vorgabe), Mubea-Speicher jetzt 20 Linien (Golden-Datei) - Staubereich als stehendes graues Rechteck direkt vor seinem TRO-Marker (jam_abstand statt jam_versatz); Marker 150 mm, Text 120 mm Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -72,10 +72,25 @@ def test_staubereiche_als_block_mit_name_und_schluessel():
|
||||
t2 = jams["TRO02"]
|
||||
assert (t2["CONVEYOR"], t2["NUMBER"], t2["ENTRY"], t2["AREA"], t2["AUTO"]) == (
|
||||
"0042", "2", "1", "J0102", "0042_2")
|
||||
# vor dem Separator, Richtung Vorgaenger TRO01 (gegen den Fluss)
|
||||
assert t2["pos"] == (5000 - round(tro_annotate.JAM_VERSATZ), 0)
|
||||
# TRO01 hat nur eine Station als Vorgaenger: am Separator
|
||||
assert jams["TRO01"]["pos"] == (0, 0)
|
||||
# direkt vor dem Marker, Richtung Vorgaenger TRO01 (gegen den Fluss):
|
||||
# Markerradius + Luft + halbe Rechteckbreite
|
||||
abstand = (tro_annotate.DEFAULT_MARKER + tro_annotate.JAM_ABSTAND
|
||||
+ 200.0 * tro_annotate.JAM_HALB_BREITE)
|
||||
assert t2["pos"] == (5000 - round(abstand), 0)
|
||||
# TRO01 hat nur eine Station als Vorgaenger: gegen die Richtung zum Nachfolger
|
||||
assert jams["TRO01"]["pos"] == (-round(abstand), 0)
|
||||
|
||||
|
||||
def test_staubereich_ist_stehendes_graues_rechteck():
|
||||
doc, _, _ = _zeichnen()
|
||||
blk = doc.blocks.get(tro_annotate.JAM_BLOCK)
|
||||
rahmen = next(iter(blk.query("LWPOLYLINE")))
|
||||
xs = [p[0] for p in rahmen.get_points()]
|
||||
ys = [p[1] for p in rahmen.get_points()]
|
||||
assert max(ys) - min(ys) > 3 * (max(xs) - min(xs))
|
||||
assert rahmen.dxf.color == 8 and len(blk.query("HATCH")) == 1
|
||||
name = next(a for a in blk.query("ATTDEF") if a.dxf.tag == "NAME")
|
||||
assert name.dxf.rotation == 90.0
|
||||
|
||||
|
||||
def test_korrektur_wird_gezeichnet():
|
||||
|
||||
Reference in New Issue
Block a user