Jump to content

Empfohlene Beiträge

Geschrieben

Hallo @Neo,

Bei meinen Versuchen mit der Überarbeitung vom Plugin "Objektreihen Setzen" bin ich auf folgendes Problem gestoßen...
Um eine Gruppe aus meinen Kopien zu erzeugen wird...
{"jsonrpc": "2.0", "method": "editor.groupEntities", "params": [{"_class": "entity", "name": "20' Container (xxx)"}, {"_class": "entity", "name": "20' Container (xxx)"}, ... "id": 1}
verwendet. Ich habe also x mal {"_class": "entity", "name": "20' Container (xxx)"} im Kommandostring.
Ab einer bestimmten Anzahl steigt das System aus und gibt eine Fehlermeldung zurück.
Bild001.jpg.ba219f3aa7896c5af7c9546921b19961.jpg

Details:

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.IO.IOException: In die Übertragungsverbindung können keine Daten geschrieben werden: Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen. ---> System.Net.Sockets.SocketException: Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen
   bei System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   bei System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   --- Ende der internen Ausnahmestapelüberwachung ---

 

Dies führt mich zu der Frage, ob es so etwas wie eine maximale Zeilenlänge für die Kommandozeile gibt? Oder kann es dafür noch andere Gründe geben?

Gruß
EASY

Geschrieben
vor 10 Stunden schrieb EASY:

Dies führt mich zu der Frage, ob es so etwas wie eine maximale Zeilenlänge für die Kommandozeile gibt?

Das Studio selbst setzt keine expliziten Grenzen, die verwendete Netzwerkkomponente scheint aber eine Textzeile auf 16k zu begrenzen (ich kann es aktuell nicht testen). Wenn es an dieser Grenze scheitert, kann ich sie in einem nächsten Update aber vergrößern.

Viele Grüße,

Neo

Geschrieben

Hallo @Neo,

mal so als Überlegung:

um nicht der Lästigkeit zu unterliegen eventuell eine sehr lange Kommandozeile erzeugen zu müssen, wäre es möglich, daß man einer bestehenden Gruppe Elemente hinzufügen kann. So könnte man auch (später) einer Gruppe Elemente hinzufügen, ohne daß man sie zuvor auflösen muß.
Die gleiche Überlegung wäre auch beim Selektieren von Objekten (bei der alten Schnittstelle gab es dafür noch ein Parameter [Hinzufügen / nicht hinzufügen]...)

P.S. kannst Du auch gerne in Feature Wünsche verschieben...

Gruß
EASY

  • 2 Wochen später...
Geschrieben

Hallo @Neo,

Am 8.2.2025 um 09:55 schrieb Neo:

Das Studio selbst setzt keine expliziten Grenzen, die verwendete Netzwerkkomponente scheint aber eine Textzeile auf 16k zu begrenzen (ich kann es aktuell nicht testen). Wenn es an dieser Grenze scheitert, kann ich sie in einem nächsten Update aber vergrößern.

... konntest Du schon testen?

Nachdem Du an anderer Stelle an @gmd geschrieben hast...

Zitat

Sind dir die Batch Requests von JSON-RPC bekannt? Du kannst auch mit der neuen Schnittstelle eine Gruppe von Einzelkommandos versenden, in dem du die Requests als JSON-Array versendest. Dieses Array wird immer in einem Stück verarbeitet, dazwischen gibt es keine anderweitige Unterbrechnung durch das Studio.

... wäre für mich schon interessant ob der "Fehler" beim MBS liegt, denn damit kommt man noch schneller an die Grenze...

Gruß
EASY

Geschrieben

Neo, Easy,

Testergebnis:

String  - nur teilweise zur veranschaulichung 
[{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6001)@-001"}, "id": 1},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6003)@-002"}, "id": 2},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6030)@-003"}, "id": 3},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6003)@-008"}, "id": 4},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6003)@-009"}, "id": 5},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6030)@-010"}, "id": 6},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6001)@-011"}, "id": 7},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6001)@-012"}, "id": 8},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6030)@-013"}, "id": 9},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params": {"_class": "entity", "name": "(6036)@-004"}, "id": 10},{"jsonrpc": "2.0", "method": "editor.getEntityContentID", "params  .......} ]

habe 120 dieser commands erfolgreich versendet - getestet mit Putty
Bei 160 macht die verbindung die kraetsche ... Verbindung abgebrochen durch server ..

Habe nicht genau die grenze getest, wahrscheinlich buffergroesse .. 120 commands ist erstmal ok fuer mich .. alte schnittstelle benutze ich mehr aber mit der groesse kann ich zunaechst einmal leben. Langfristig waere groesserer batch laenge gut.

Gruss
Gmd




 

 




 

Geschrieben (bearbeitet)

Hallo,

vor 12 Stunden schrieb gmd:

Habe nicht genau die grenze getest

ich habe es getestet und mir mit...

Encoding.UTF8.GetByteCount(Command)

... die Byte von "Command" ausgeben lassen. Die Grenze liegt bei 2^14, also die 16k, die @Neo vermutet hat.

vor 12 Stunden schrieb gmd:

120 commands ist erstmal ok fuer mich

... es kommt eben darauf an, was man machen möchte.
Bei mir ist z.B. eine Sendeeinheit (2 Kommandos)...

Zitat

{"jsonrpc": "2.0", "method": "layout.invokeScript", "a=layout:getEntityByName('Pyramide') a.transformation.position={x=-45.3351, y=-47.302, z=17.39997}  pos={x=8, y=10, z=3} a.variables._pos=pos  a.variables['Stapel Pyramide [002]']=keyword", "id": 1}, {"jsonrpc": "2.0", "method": "editor.cloneEntity", "params": {"_class": "entity", "name": "Pyramide"}, "id": 9}

und da ist die Grenze schon bei 45 Einheiten erreicht, was für die Bildung von einem 3D-Objektstapel nicht wirklich viel ist...;)

Gruß
EASY

Bearbeitet von EASY
Geschrieben
8 hours ago, EASY said:


und da ist die Grenze schon bei 45 Einheiten erreicht, was für die Bildung von einem 3D-Objektstapel nicht wirklich viel ist...;)

Neo hat ja schon angeboten den buffer zu vergroessern..
Gruss
Gmd
 

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...