EASY Posted February 7 Posted February 7 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. 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
Neo Posted February 8 Posted February 8 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
EASY Posted February 8 Author Posted February 8 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
EASY Posted February 17 Author Posted February 17 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
gmd Posted February 18 Posted February 18 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
EASY Posted February 18 Author Posted February 18 (edited) 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 Edited February 18 by EASY
gmd Posted February 18 Posted February 18 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
Neo Posted February 19 Posted February 19 Hallo, ich werde den Netzwerkpuffer mit dem nächsten Update vergrößern. Viele Grüße, Neo
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now