Files
qelectrotech-source-mirror/sources/import/edz/edzelementbuilder.h
T
Shane Ringrose 7cc5790f7c Add EdzPart + EdzElementBuilder: .edz part -> .elmt (M1)
Port of the edz2qet.py prototype's mapping to C++. EdzPart parses an EPLAN
part.xml into a portable model (identity/metadata, localized names, connection
list); EdzElementBuilder turns that into a QET element (generic symbol: body
rectangle + one west-facing terminal per pin, per-pin labels, localized <name>s,
and elementInformations for the BOM).

Pins are natural-sorted by designation so they stack 1,2,3,4 regardless of the
order EPLAN lists them (MFH200 lists 1,3,4,2). Output verified structurally
identical (uuids aside) to the Python oracle for three ifm samples — KG6000
(4-pin), MFH200 (4-pin, reordered) and R1D200 (5-pin, incl. Dutch name) — and
the generated element loads in the QET editor with correct UTF-8.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 07:11:09 +12:00

41 lines
1.3 KiB
C++

/*
Copyright 2006 The QElectroTech Team
This file is part of QElectroTech.
QElectroTech is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
QElectroTech is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef EDZELEMENTBUILDER_H
#define EDZELEMENTBUILDER_H
#include <QDomDocument>
class EdzPart;
/**
@brief Builds a QElectroTech element (.elmt) from an EdzPart.
Generates a generic symbol: a body rectangle with one west-facing terminal
per pin (stacked on the left edge, on the 10px wiring grid), per-pin labels,
localized names and the element-information fields QET uses for the BOM.
Faithful port of the edz2qet.py prototype's builder.
*/
class EdzElementBuilder
{
public:
static QDomDocument build(const EdzPart &part);
static QString toElmtString(const QDomDocument &doc);
};
#endif // EDZELEMENTBUILDER_H