Erklärung für Chronik

Ich habe eine Verständnisfrage:

image

Ich versuche mal wieder meine Schnitte nach den vielen Neuerungen zu organisieren und einen Aufbau erzustellen. Im Prinzip habe ich mir Grundschnitte / Gerüste aufgestellt um mit diesen dann weiter zu arbeiten Gerüst - Gerüst mit Ärmel - Gerüst A-Linie usw. Diese sind alle in einzelnen Dateien abgespeichert. Damit alles nachvollziehen kann, lege ich mir ein Protokoll in Word an. Dabei ist mir jetzt aufgefallen, dass in der Chronik folgendes passiert ist: Ich habe nachträglich eine Linie gelöscht und beobachtet, dass sich die laufenden Nummern verschoben haben. In der ID fehlt aber dieser Abschnitt. Z.B. springt die ID von 37 auf 39, die 38 fehlt. Kann mir einer erklären was da passiert? Hat das vielleicht auch Auswirkungen auf andere Vorgänge die später angelegt werden? Hat das vielleicht auch mit der “Errors” zu tun die irgendwann einmal auftauchen? Vielen Dank für eure Antworten. Bettina

2 Likes

Each new tool use gets stamped with the next serial number, regardless of whether the previous tool uses have been deleted, & regardless of if it’s placed back in time.

Jede neue Verwendung eines Werkzeugs wird mit der nächsten Seriennummer versehen, unabhängig davon, ob die vorherigen Verwendungen des Werkzeugs gelöscht wurden, und unabhängig davon, ob es in der Zeit zurückgestellt wurde.

I too wonder about the other questions. / Auch ich frage mich nach den anderen Fragen.

:unicorn:

1 Like

Yes.

Each tool has a unique incremental ID number assigned when it’s created. The ID’s are what’s used to identify a tool when used in another tool, piece, path, etc. When you delete a tool the ID is removed from the History. Since at the present time tool Id’s are not reused, there will be a gap in the numbering. In this case you deleted Tool #38, so the History skips from 37 to 39. BTW… the Tool Id’s relationship to the table row number is it shows the parsing order as the file is read. IE - the history.

No. Has no effect. Tools simply use Id references to previously created tools. As the file is parsed, and a tool Id is used in another tool, the app keeps a use counter… if the use count is greater than 0, nornally you can’t delete the tool because it’s in use. There is the case though where a tool may be used in a formula, and not another tool, in which cade you can delete it, but that will pop up the Broken Formula error dialog. If the tool is not being used, you can delete it as well as it’s ID (which is never used again). Here’s an example of a intersectXY tool:

<point firstPoint="13" id="68" lineColor="black" lineType="dashLine" lineWeight="0.35" 
 mx="0.132292" my="0.264583" name="A2" secondPoint="11" type="intersectXY"/>

The intersectXY tool id is 68, and it uses point tools 11 and 13. Point 11 being:

<point angle="180" basePoint="5" id="11" lineColor="black" lineType="none"  
mx="4.21906" my="-6.57227" name="Hüftlinie" p1Line="6" p2Line="7"  
type="lineIntersectAxis"/>

The last tool created in the pattern I looked at is #2248… the next tool created - what ever it is would be #2249, based on the internal Id counter the app uses. BTW… I guess it was determined not worth the effort to recyle Id numbers based on the fact that using a uint32 with a maximum value of a tool Id value being 4,294,967,295. Not only will one never reach this, the app will surely cease to function WELL before that number of tools, as it runs to a crawl to a stop. The app could have used a uint16 at max of 65535, and still have more than enough head room.

<point firstPoint="2193" id="2248" length="Spl_A124_A220" lineColor="deeppink" > 
lineType="none" lineWeight="0.35" mx="0.132292" my="0.264583" name="A243" > > 
secondPoint="2195" showPointName="true" type="alongLine"/>

In some cases - Yes. There is a known issue(s) when using the Union tool - which I was in the middle of fixing before I broke my hip . :frowning: There are use referencing / dereferencing issues when using the tool… which can lead to crashing. It also has issues properly creating internal paths, but that’s not a crash issue.

3 Likes

For anyone interested… here’s the routine to call to get the next Id number:

/**
 * @brief getNextId generate next unique id
 * @return next unique id
 */
quint32 VContainer::getNextId()
{
    //TODO. Current count of ids are very big and allow us save time before someone will reach its max value.
    //Better way, of cource, is to seek free ids inside the set of values and reuse them.
    //But for now better to keep it as it is now.
    if (_id == UINT_MAX)
    {
        qCritical() << (tr("Number of free id exhausted."));
    }
    _id++;
    return _id;
}

And here’s it in use… when you create a tool - we’ll stick with the IntersectXY tool… it calls the AddGObject routine.

if (typeCreation == Source::FromGui) 
{
    id = data->AddGObject(p);
    data->AddLine(firstPointId, id);
    data->AddLine(secondPointId, id);
}

Which calls the AddObject() routine… notice we’re also keeping a list of unique tool names

quint32 VContainer::AddGObject(VGObject *obj)
{
    SCASSERT(obj != nullptr)
    QSharedPointer<VGObject> pointer(obj);
    uniqueNames.insert(obj->name());
    return AddObject(d->gObjects, pointer);
}

Which then calls the getNextId() routine… and that’s how most tools get their ID. :slight_smile:

template <typename key, typename val>
quint32 VContainer::AddObject(QHash<key, val> &obj, val value)
{
     SCASSERT(value != nullptr)
     const quint32 id = getNextId();
     value->setId(id);
    obj[id] = value;
    return id;
}

Other tools like groups, which have no Graphics Object just call the getNextId() and use that in the createGroup()

const quint32 nextId = VContainer::getNextId();
const QDomElement group = m_doc->createGroup(nextId, groupName, dialog->getColor(), dialog->getLineType(),
                                              dialog->getLineWeight(), dialog->getGroupData());
3 Likes

Jetzt habe ich noch etwas beobachtet:

image

Seid einiger Zeit wird die Datei wie im Bild zu sehen ist abgespeichert. Mein Verstand sagt mir, dass ich an der Version weiter arbeite, die ich angelegt habe. Hier der obere Punkt. In dieser Datei finde ich auch die Änderungen. Die anderen beiden Dateien ( Punkt 2 und 3) sind identisch und haben die Änderungen nicht. Ich finde das sehr verwirrend, da ich immer unsicher bin mit welcher Datei ich arbeiten soll und wo sich die letzte Version befindet.

Wie ist diese Liste zu verstehen?

1 Like

Ich habe noch etwas festgestellt:

Die Gerüste die ich bearbeite sind schon vor längerer Zeit aufgestellt. Wenn ich einen Punkt anklicke, der durch eine Bewegung ( Move) entstanden ist, wird mir immer angezeigt, dass der Mittelpunkt nicht zu finden ist. Ich gebe dann einen Punkt an, von dem aus die Bewegung gestartet wurde, ohne eigentlich zu verstehen warum das so ist. Es funktioniert.

image image

Gerade habe ich ein älteres Gerüst wieder aufgemacht, dass auf das andere Gerüst aufbaut und wollte die Chroniken miteinander vergleichen. Zunächst habe in dieser Datei keine Punkte angeklickt, so dass ich auch nicht aufgefordert wurde einer Bewegung einen Punkt zuzuordnen. In der Chronik ist mir dann aufgefallen, dass die Bewegung (move) nach der ich explizit gesucht habe gar nicht vorhanden ist. Erst nach dem ich diese angeklickt habe und den Punkt angegeben habe, tauchte dieser Vorgang in der Chronik auf.

Der Punkt, um den es hier geht ist ziemlich am Anfang gesetzt worden. Es ist die Verschiebung der Schulter nach vorne. Der wird eigentlich nicht mehr im Verlauf der weiteren Konstruktion gebraucht, damit auch nicht berührt und angeklickt. Das würde ja heiße, dass er nie in der Chronik auftaucht. Hat das Auswirkungen?

In diesem Bild sieht man die Bewegung a1 die tatsächlich stattgefunden hat. Erkennbar in der Zeile 57, weil dort zwischen den neu entstanden Punkte eine Linie gezogen wurde. Die Bewegung an sich hat zwischen der Zeile 53 und 54 stattgefunden.

Klicke ich auf die Punkt a1 und a2, lege den Ursprungspunkt fest, erscheinen diese Vorgänge dann auch in der Chronik und zwar an Position 54 und 55.

1 Like

Ich habe weiter gearbeitet und folgendes ist passiert:

Es gibt den Suffix a1 und den Suffix a2 jetzt zweimal. Jeweils zu ganz anderen Zeitpunkten in der Chronik und mit unterschiedlichen Werkzeugen. Einmal ist es die Schulterverlegung und beim zweiten Mal ist es der Saum.

image

image

1 Like

The file with the extention v063(1…2).val are backup copes of the original file made when ever you opened a ver 0.6.3 pattern… the current version is 0.6.8. It does this in case the newer version has bugs, which then you can revert back the the original. If you save a pattern file as a new version you will notified you are saving a new version - Yes / No… and then when you open that file again it will not create the backups. I had an improved backup feature ready to add to the app,but it was lost when I had the major hard drive crash awhile back.

In an case, if you’re sure you haven’t edited any of the v063(?).val files and don’t need them - which would create a backup like filename_v063_(2)v063.val… you can delete those backups.

3 Likes

Just a note: To make things easier to keep track of… in the future please create a new topic for each issue. It can get confusing trying to go back and find which topic to reply to for an issue that’s buried in another topic.

With that being said… I’ll have to take some time to digest the issue… would be easier if the forums translated. < sigh > Also It may help if you can post any relevant pattern & measurement files.

1 Like

Hier die Datei, in der die Bewegung Suffix a1 und a2 ausgeführt wurden und nicht in der Chronik, auftauchen ( Position 54): Oberteil ohne Abnäher_Gerüst_Gerüst Ärmel_v063_(3).val (32,9 KB)

Und die Datei wo der Suffix a1 und a2 zweimal auftaucht. Einmal war es eine bewegung und das andere mal wurde gespiegelt (Position 54 / 55 und 140 /141 ) 2023-015-Brisch, Brigitte-Oberteil_1.val (71,3 KB) 2020-Größentabelle Bettina.vst (3,6 KB)

1 Like

OK, werde ich machen :star_struck:

2 Likes

Hey @Scholli

I’m looking at the pattern file(s) now… I don’t see any apparent issues, but then I am using the lastest build that fixes all the logging issues. Just for giggles, maybe try installing the new release below. Maybe this fixes the issue? If not I’ll keep looking.

That being said… I’m a bit confused why there seems to be redundant and duplicate points. For example:

duplicate

Point A20 and VL are the same point. Point A20 is a Point on Line_A2_VL which has the same length of Line_BrB_BP. (BrB to A2 is parallel to VL_TL to VL.) You don’t need Point A2, Line_A2_VL, and subsequently point A20… you can just use Point VL.

1 Like

Der Punkt VL entspricht der vorderen Länge. Von A2 wird einmal die Halslochbreite nach unten (VM) und nach rechts abgetragen (A20). Das sind die Eckmaße für mein Halsloch. Im Bild siehst du die normale Position von A20. Da in diesem Fall das Oberteil sehr weit ist, wollte ich die Schulter mehr in das Armloch schieben und habe dies über diesen Weg getan um den Armlochdurchmesser nicht zu verändern. ArDV hat hier eine Zugabe von 5 cm. Beim Schnitt der Kundin gibt es noch Zugaben bei BrB und RüB. Die sind aber in deren Datei abgespeichert.

Was du hier siehst ist ein Gerüst, dass über die Brustweitenpunkte BrB * ArDV und RüB auf die jeweiligen Modellvorstellungen angepasst wird. Dieses Gerüst ist ohne Brustabnäher aufgestellt und ich kann die Schulter über den Punkt 20 und den Bogen A20_52 verändern. In der Gruppe 9 Änderungspunkte sind immer jene Punkte hinterlegt mit denen ich das Gerüst dann auf die jeweiligen Schnitte anpassen kann. Ich habe mir jeweils Gerüste für Kleider, Oberteile, Raglan, Hose und Rock angelegt, damit ich diese immer als Ausgangsbasis nehmen kann.

1 Like

Wow! @Scholli, you are truly a master at creating an Interactive Master Pattern in Seamly! Thank you for explaining this.

1 Like