Jump to content

Thomas W

Member
  • Posts

    102
  • Joined

  • Last visited

Everything posted by Thomas W

  1. Cool! Yes you can change the names of the worksheets in the script. The script will fetch sub rows from the database which is on line 4 and defined in the script as DatabaseRow1 := 4, in case you can change that too. When you say automate these scripts would it be that the 'Schlosserei V100 Data' table is recalculated as soon as 'Schlosserei V100' is modified? If that's it I think it's doable but I wouldn't have time to look for the necessary functions and maybe not all the skills, you really have to know your operation well so that there is no problem. command errors. If you are interested, you can already read the explanations of these functions used in this script and it may make you want to go further! https://developer.vectorworks.net/index.php/VS:GetWSSubrowCellStrN https://developer.vectorworks.net/index.php/VS:SetWSCellFormulaN Happy already that it works like that and good use!
  2. Hi Pat, No worries and thanks for trying again, I'll send it to the hotline, in the meantime we'll run the script from the manager, it'll work fine that way too! I'll report back when I get a response from the hotline. Have a great day, Thomas
  3. Hi, I made a script that will fetch the values of the sub rows of the database which is on row 4 of the "Schlosserei V100" table and will copy them from row 2 of the "Schlosserei V100 Data" table. To make it work: 1- do not change the names of the tables 2- leave the database on line 4 3-check that there are enough rows/columns in the table where you are going to copy the rows 4- delete the lines at each update before running the script Tell me if it works as you want, to optimize it you should check the number of lines automatically then empty the content before copying. Below is the script to copy paste into a new script: PROCEDURE CopySubrowToAnotherWorksheet; VAR H1, H2 :HANDLE; NSR1, DatabaseRow1, Subrow1, numRows, numColumns :INTEGER; cellStrgA, cellStrgB, cellStrgC, cellStrgD, cellStrgE, cellStrgF, cellStrgG, cellStrgH, cellStrgI, cellStrgJ, cellStrgK, cellStrgL, cellStrgM, cellStrgN :DYNARRAY OF CHAR; State :BOOLEAN; ObjectName1, ObjectName2 :STRING; BEGIN ObjectName1 := ('Schlosserei V100'); { Worksheet Name1 } H1 := GetObject(ObjectName1); ObjectName2 := ('Schlosserei V100 Data'); { Worksheet Name2 } H2 := GetObject(ObjectName2); RecalculateWS(H1); State := GetWSAutoRecalcState(H1); { Gets the AutoRecalc state for the specified worksheet } SetWSAutoRecalcState(H1, FALSE); { Sets the AutoRecalc flag for the specified worksheet } DatabaseRow1 := 4; { Database row to be queried } GetWSSubrowCount(H1, DatabaseRow1, NSR1); { Returns a count of displayed subrows for a specified database row } FOR Subrow1 := 1 TO NSR1 DO BEGIN GetWSSubrowCellStrN(H1, DatabaseRow1, 1, Subrow1, cellStrgA); { Returns the displayed string in a database subrow cell. } SetWSCellFormulaN(H2, (Subrow1+1), 1, (Subrow1+1), 1, cellStrgA); { the Subrow1=1 of 'Schlosserei V100' database is copied to line 2 of 'Schlosserei V100 Data', so Subrow1+1 } { SetWSCellFormulaN(worksheet, topRow, leftColumn, bottomRow, rightColumn, formula) } GetWSSubrowCellStrN(H1, DatabaseRow1, 2, Subrow1, cellStrgB); SetWSCellFormulaN(H2, (Subrow1+1), 2, (Subrow1+1), 2, cellStrgB); GetWSSubrowCellStrN(H1, DatabaseRow1, 3, Subrow1, cellStrgC); SetWSCellFormulaN(H2, (Subrow1+1), 3, (Subrow1+1), 3, cellStrgC); GetWSSubrowCellStrN(H1, DatabaseRow1, 4, Subrow1, cellStrgD); SetWSCellFormulaN(H2, (Subrow1+1), 4, (Subrow1+1), 4, cellStrgD); GetWSSubrowCellStrN(H1, DatabaseRow1, 5, Subrow1, cellStrgE); SetWSCellFormulaN(H2, (Subrow1+1), 5, (Subrow1+1), 5, cellStrgE); GetWSSubrowCellStrN(H1, DatabaseRow1, 6, Subrow1, cellStrgF); SetWSCellFormulaN(H2, (Subrow1+1), 6, (Subrow1+1), 6, cellStrgF); GetWSSubrowCellStrN(H1, DatabaseRow1, 7, Subrow1, cellStrgG); SetWSCellFormulaN(H2, (Subrow1+1), 7, (Subrow1+1), 7, cellStrgG); GetWSSubrowCellStrN(H1, DatabaseRow1, 8, Subrow1, cellStrgH); SetWSCellFormulaN(H2, (Subrow1+1), 8, (Subrow1+1), 8, cellStrgH); GetWSSubrowCellStrN(H1, DatabaseRow1, 9, Subrow1, cellStrgI); SetWSCellFormulaN(H2, (Subrow1+1), 9, (Subrow1+1), 9, cellStrgI); GetWSSubrowCellStrN(H1, DatabaseRow1, 10, Subrow1, cellStrgJ); SetWSCellFormulaN(H2, (Subrow1+1), 10, (Subrow1+1), 10, cellStrgJ); GetWSSubrowCellStrN(H1, DatabaseRow1, 11, Subrow1, cellStrgK); SetWSCellFormulaN(H2, (Subrow1+1), 11, (Subrow1+1), 11, cellStrgK); GetWSSubrowCellStrN(H1, DatabaseRow1, 12, Subrow1, cellStrgL); SetWSCellFormulaN(H2, (Subrow1+1), 12, (Subrow1+1), 12, cellStrgL); GetWSSubrowCellStrN(H1, DatabaseRow1, 13, Subrow1, cellStrgM); SetWSCellFormulaN(H2, (Subrow1+1), 13, (Subrow1+1), 13, cellStrgM); GetWSSubrowCellStrN(H1, DatabaseRow1, 14, Subrow1, cellStrgN); SetWSCellFormulaN(H2, (Subrow1+1), 14, (Subrow1+1), 14, cellStrgN); SetWSAutoRecalcState(H1, TRUE); { Sets the AutoRecalc flag for the specified worksheet } END; END; Run(CopySubrowToAnotherWorksheet); Good test and let me know if it works well for you, Thomas
  4. Ok, I think I understand how you work. But you would like the "Schlosserei V100 Data" table to update as soon as the "Schlosserei V100" table changes? Automatically, I don't know, but I think it can be done with a script to be run manually as soon as you update the "Schlosserei V100" table. I look at what is feasible and what I could do!
  5. Hi @KingChaos, I don't think I have enough knowledge and time in VectorScript to make a program that works in all cases and on all worksheets, but I think the important points in relation to the problems I may have encountered could be a start scenario: 1- Gets the AutoRecalc state for the specified worksheet : GetWSAutoRecalcState() 2- Sets the AutoRecalc flag for the specified worksheet to : False : SetWSAutoRecalcState() 3- Returns whether the specified range is within the valid range of the referenced worksheet : VS:IsValidWSRange 4- Find the number of sub-lines you want to copy to be sure you can write them : Returns a count of displayed subrows for a specified database row : VS:GetWSSubrowCount 5- Inserts rows into a referenced worksheet if there are not enough according to the result above : VS:InsertWSRows X- Sets the AutoRecalc flag for the specified worksheet to : True : SetWSAutoRecalcState() Are your DataBase lines always on the same lines? Maybe experts can enlighten you more but it's not easy because database subrow cells and their contents are dynamically created. Maybe post an example of what you want? Have a great day
  6. Hi, If I understood your question correctly you can use GetWSSubrowCellStrN or GetWSSubrowCellValue to retrieve the value of a subline. Then you can use SetWSCellFormulaN to write the value to a cell: https://developer.vectorworks.net/index.php/VS:SetWSCellFormulaN This part is quite important from what I've tried: 'It is best to turn off that flag before using SetWSCellFormulaN repeatedly or in a loop and restore the flag after all operations are done' Hope I understood your question correctly, Have a great day, Thomas
  7. Hello Pat, Thank you very much for testing! I tested on the post of a colleague and I had the same result, the contents of the cell are emptied. Below is a video where you will see what is happening. I can't figure out what's going on, I manage to reproduce it on my workstation since I don't save this file to keep the error, but the other times it happened it looked like random. Since this worksheet and this script will have to be used by several people, I will not leave the script in a cell but we will have to run it from the manager. By executing it from the manager I did not have any error of this type so we will keep this option, but I would have liked to understand where this behavior comes from on the cell. Thank you for your test and if no one has ever had this kind of behavior we will opt for a double click on the script in the manager to avoid errors of this type. we have this version in france 2023 SP5.1_IC_F4_(Build 702742) Have a great day 2023-08-21_09h31_05.mp4
  8. Hi, I would like to understand what can create a display bug or who can delete the contents of cell A55 which contains the RunScript('GetWSSubrow....-V2) function. Short summary on the file: In the attached file there are 3 scripts, 2 scripts are executed in a cell with RunScript, the 3rd is executed by double clicking on it in the manager. On each database row, the Return UUID script returns the ID of the element according to the criteria. In cell A55 the script will look for identical UUID values to group them. The ClearWSCellBefore script run from the handler will check if rows are available for writing. By following the scenario below you should have the same thing as me, namely the content of cell A55 which contains runscript will be emptied while we are not acting on this cell: 1- Open the attached file, double click on the table and in cell A55 you should see =RunScript('GetWSSubrowCell...-V2') 2- Return the cursor to cell A60 (the tests were sometimes different by leaving the cursor on cell A55 (?)) and close the worksheet. 3-Run ClearWSCellBefore from the manager. 4-Go back to the worksheet and check the content of cell A55, the cell is empty and the format parameters have changed, there is no font size, some items are unchecked.. Does anyone know what can act in this way on a cell? Any ideas or leads? On 30-40 tests of this scenario I also had a blue fill appearing with huge line thickness in the cell like in the attached capture. With the scenario above and the attached file I did not have a crash. Thanks and have a good day! Test Plugin Menuiseries Extérieures 05 Simplifié V5+Script UUID et autres-V8 pour Forum - test erreur Runscript.vwx
  9. Hi all, I hope the summer is going well for you! After a good break I plunged back into the worksheet scripts, I again had inconsistent displays but that I can't reproduce in an orderly way to be able to tell you the different steps to do to have the same result as on the attached screenshots. Have you ever had this kind of display after running a script in a cell with RunScript? (In the next message I will attach a .vwx file with different steps that make the contents of the cell where there was the RunScript formula disappear) Thank you and have a great day,
  10. Hi all, I will be on vacation for 15 days so I will take up this problem as soon as I get back and if I don't answer it means I'm not in front of my screen! Have a nice day or vacation everyone!
  11. Hello everyone, I am making a script to search in a spreadsheet, the script will need to run from a cell and the RunScript function. I had some problems and I would like to know if anyone has had similar problems: - after recalculating the spreadsheet either by right-clicking or by OIP the cell that contained the RunScript function is emptied, the function was no longer visible and the properties of the cell had changed, did you Have you ever had or seen this kind of behavior? Visible on the attached captures Be careful, the attached file can cause Vector to crash when running the script in the spreadsheet: RunScript in cell A59 All remarks will be welcome to understand what can be a problem. Thank you and good day! TW 14_PP 60 Simplifié V2.vso Test Plugin Menuiseries Extérieures 05 Simplifié V5+Script UUID et autres-V8 pour Forum.vwx
  12. Hi all, I've had this issue since 5/26 whenever the code contains C hr() (without the spaces), and even if you put the code that contains C hr() (without the spaces) in a text file it will error! In this thread:
  13. Hello Pat, I put the script in a worksheet cell, it works pretty well and fast so far for copying values from 160 cells. It only runs once but if I leave the RecalculateWS(H1) function at the end of the script it loops and crashes. With the SetWSAutoRecalcState function which sets the AutoRecalc flag for the specified worksheet it works. Thanks again for the good direction! Have a great day,
  14. Hello @Pat Stanford, Thanks for putting me on the track with: "you are probably creating a recursion loop"! I found the problem or one of the problems that caused Vectorworks to crash when the script is executed in a cell with RunScript. From what I could see when SetWSCellFormulaN inserts a formula the sheet is recalculated and the script returns to H1, visible in the screenshot below, loops from line 31 to 17, then crashes. Searching I found the post below on "RecalculateWS" function and an answer from @_c_ which had me test GetWSAutoRecalcState and SetWSAutoRecalcState, it solved the problem in my case! https://forum.vectorworks.net/index.php?/topic/31084-recalculate-individual-worksheet/#comment-153151 Below is part of the script that works by running it with RunScript and stopping automatic recalculation of the worksheet while writing to cells and re-enabling it after writing cells. The gain in writing speed is enormous! It works pretty well and fast for copying about 30 cells, I'll tell you if it works just as well for 100 or more cells. If you have any comments or advice on this subject, I would gladly read them! PROCEDURE GetWSSubrowcellStrg; {$DEBUG} VAR H1 :HANDLE; NumSubrows1, NumSubrows2, DatabaseRow, DatabaseRow2 :INTEGER; Row, Column, Subrow1, Subrow2, SubrowEnd :INTEGER; rowStart, rowEnd, columnStart, columnEnd :INTEGER; I1, CheckedString :INTEGER; cellStrg, cellStrgA, cellStrgB, ref, ref1, ref2 :DYNARRAY OF CHAR; OK, State :BOOLEAN; ObjectName, WorksheetName :STRING; BEGIN H1 := GetObject('Tableau-TW 14 PP 60_V2'); { WorksheetName } { H1 := GetTopVisibleWS; } DatabaseRow := 38; GetWSSubrowCount(H1, DatabaseRow, NumSubrows1); { Returns a count of displayed subrows for a specified database row } AlrtDialog( Concat('DatabaseRow = ', DatabaseRow, CR, 'NumSubrows1 = ', NumSubrows1)); State := GetWSAutoRecalcState(H1); AlrtDialog(Concat('State = ', State)); SetWSAutoRecalcState(H1, FALSE); { Sets the AutoRecalc flag for the specified worksheet } { Without this function when the script is executed with RunScript a recursion loop is created then Vectorworks crashes } FOR Subrow1 := 1 TO NumSubrows1 DO { nombre de sous-lignes de la base de données concernée } BEGIN GetWSSubrowCellStrN(H1, DatabaseRow, 5, Subrow1, cellStrgA); { Returns the displayed string in a database subrow cell. } GetWSSubrowCellStrN(H1, DatabaseRow, 1, Subrow1, ref); { Returns the displayed string in a database subrow cell. } {AlrtDialog(Concat('Subrow1 = ', Subrow1, CR, 'cellStrgA = ', cellStrgA));} SetWSCellFormulaN(H1, (60+Subrow1), 5, (60+Subrow1), 5, cellStrgA); { Inserts a formula into a cell of the referenced worksheet. } SetWSCellFormulaN(H1, (60+Subrow1), 1, (60+Subrow1), 1, ref); END; SetWSAutoRecalcState(H1, State); { RecalculateWS(H1); } { do not activate here if executed with RunScript } RESETOBJECT(H1); RESETOBJECT(GETWSIMAGE(H1)); END; Run(GetWSSubrowcellStrg); Thanks and have a great day!
  15. Hi Pat and thanks for your answer. I had tried to run the script from a cell worksheet but Vectorworks crashed every time. I'll search if I find a recursion loop that will cause problems, thanks for the lead! I had tried running the script in debug mode from a cell to locate the problem and noticed that the script was not running in the same order as outside the worksheet. I'll look in that direction and let you know if I manage to fix this crashing issue. Thanks, and have a good day! Thomas
  16. Hello everyone! I have a problem with a script that searches for elements in a spreadsheet. The script works when the worksheet is closed or opened but not by executing it in a database line with the RunScript('') function, the result is visible on the attached screenshots. In summary : I created a door plugin with different accessory options that we find in the worksheet. The UUID of each door and of each door concerned by each Options is displayed in the worksheet, as on the captures. Then the objective is to group the results by UUID to know which options concern which doors. The set will be imported into a software to manage the orders, that's why we have to group them like this. Does anyone know why the script works by running it when the worksheet is open or closed but not with the RunScript() function? I get crashes whenever I try to run it in a database cell or row. I would like to run the script in the worksheet without the user needing to run it manually. Do you have an idea to do this? Copying data from sublines is quite slow but if the result is right and if it's stable that's fine with me! Testing on larger files is quite slow but gets the job done... You will find attached the .vwx file and the plug-in used. Thank you in advance and have a nice day everyone, Thomas Test Plugin Menuiseries Extérieures 05 Simplifié V5+Script UUID et autres-V5 - Forum.vwx TW 14_PP 60 Simplifié V2.vso
  17. Thank you for your answers and comments that allowed me to move forward! @Pat Stanford After your explanation I understand that I am not using the same reasoning as in your example, I am not using "primary" object and "secondary" object, I was looking to compare 2 parameters in my plugin, as on the attached screenshot. I will look for the Uuid with an external script, it will be fairer and avoid checks. @JBenghiat I think my main mistake was reading the Uuid that was stored inside the plugin, so sometimes it showed a value that was not updating. By using GetObjectUuid() with a script from outside the plugin I was able to verify that the points below were wrong: In the 2 cases above the Uuids are well regenerated! I will try to retrieve the Uuids we need directly from the table that will be used to retrieve and sort the quantities. A response from @michaelk in the post below should get me there! Thank you again for your answers which helped me a lot! Have a great day
  18. Thank you very much @Pat Stanford and @JBenghiat for your remarks, they made me look elsewhere and I notice that this work of linking with objects and UUIDs is not easy or painful! The UUIDs are therefore not really unique in certain cases, which I have seen: 1- If we duplicate a .vwx file, the UUIDs are the same in the 2 files, the UUID stays with the object. 2- If we duplicate a layer in the same file, the UUIDs will be the same on the 2 layers, as long as there is no Reset Event. 3- If we duplicate a plug in on the same layer with Ctrl + D or Edit/ Duplicate the 2 superimposed elements will have the same UUID (as long as the plug in is not recalculated), there may therefore be duplicates of UUID in the same file. I tried other functions like 'vsoStateGetParamChng( objHd, outChangeID, outPrmIndex, outOldValue)' which I was able to get to work but it won't help me in this case since it shows us if the user has changed a parameter of a widget but not if a parameter of the plugin is no longer correct, such as the UUID. @Pat Stanford : Following your message I created 2 fields to store the current UUID and the previous one, but I can't find the right reasoning to make it all work. At the beginning of kResetEventID { 3 } I look for the UUID value to copy it to the plugin parameter field: kResetEventID { 3 }: {Reset Event. This is where you will put your drawing commands} BEGIN Symbol(pThisSymDef, 0, 0, 0); { IF ObjHd<>0 then copy the UUID of the plug-in object into the parameter 'UuidObjHd_00 } IF objHd<>NIL THEN BEGIN UuidObjHd_00 := GetObjectUuid(objHd); AlrtDialog(Concat('IF objHd<>NIL THEN :', CR, 'UUIDobjHd_00 = ', UuidObjHd_00)); SetRField(objHd, GetName(recHd), 'UuidObjHd_00', UuidObjHd_00); ResetObject(objHd); END; Then to copy the value in the previous UUID and so that it is not copied every time I tried: { If the plug-in has just been created then copy the value of UuidObjHd_00 into the parameter UuidObjHd_01} IF vsoStateGet(objHd, kCreatedReset) THEN BEGIN AlrtDialog(Concat('IF kCreatedReset THEN :', CR, 'UuidObjHd_01 = ', pUuidObjHd_01)); SetRField(objHd, GetName(recHd), 'UuidObjHd_01', UuidObjHd_00); ResetObject(objHd); END; It works but I don't see how to keep the values of the 2 current and previous UUIDs up to date, nor when to compare them? Since we copy the value of the current UUID at the beginning of kResetEventID we can't compare it before? If you have any advice on how to do the uuid comparison or another solution or advice it will be appreciated... Thank you and good day!
  19. Hi, I did some tests to see if the UUID values of the plugins changed between my session yesterday and today, from what I see it doesn't. After removing a few plugins and then recalculating the array containing the UUID values, the values remain the same as yesterday apart from the removed ones. I also tried by opening the file on a colleague's workstation, then recalculating the table the values of the UUIDs were the same, it was already to see if these values changed from one session to another and to one position to another. But even if these UUIDs change, it would not be inconvenient for our use because the link between the main element of the plug-in and the checked options remains the same and the codes which serve us as hardware references are written manually in the table . I will continue my tests and have a great day!
  20. Yes I had seen posts about this behavior inside of a Vectorscript. The objective is to use the UUID to make the link between the base symbol chosen in the plug-in and all the possible options that we will add to know which options concern which symbols. But I found some posts that are not very reassuring about the "use of UUID like this one : Although if the UUID changes and the link is the same our quantities will remain the same.... to test!
  21. Thanks Pat, I will modify IsFlipped and NOT IsFlipped in my search criteria to have a fairer reasoning compared to a boolean. For the UUID since it is copied in the parameter at the beginning of kResetEventID I cannot understand for the moment in which cases it could be different from the real UUID, except if it is not updated. Thank you for your feedback which has already allowed me to move forward. Have a good day
  22. Hi, Thanks for your response Pat. I replaced my inconsistent PON=IsFlipped and PON<>IsFlipped values with IsFlipped=FALSE and IsFlipped, which makes more sense. But I can't understand why I get the same results with the search criteria below: =DATABASE(NOTINDLVP & (NOTINREFDLVP) & ((PON='TW 14_PP 60 Simplifié') & (PON=ISFLIPPED) & ('TW 14_PP 60 Simplifié'.'ThisSymDef'='PORTE A1'))) same result as: =DATABASE(NOTINDLVP & (NOTINREFDLVP) & ((PON='TW 14_PP 60 Simplifié') & (ISFLIPPED=FALSE) & ('TW 14_PP 60 Simplifié'.'ThisSymDef'='PORTE A1'))) and : =DATABASE(NOTINREFDLVP & (NOTINDLVP) & ((PON='TW 14_PP 60 Simplifié') & (PON<>ISFLIPPED) & ('TW 14_PP 60 Simplifié'.'ThisSymDef'='PORTE A1'))) same result as: =DATABASE(NOTINREFDLVP & (NOTINDLVP) & ((PON='TW 14_PP 60 Simplifié') & (ISFLIPPED) & ('TW 14_PP 60 Simplifié'.'ThisSymDef'='PORTE A1'))) In any case I will use IsFlipped and/or IsFlipped=FALSE, but it's surprising to have the same results. - For the UUID, I created a text parameter in the Plug-in definition and when executing kResetEventID I tell it to fetch the value with GetObjectUuid and copy it with SetRField, like below: kResetEventID: {Reset Event. This is where you will put your drawing commands} BEGIN Symbol(pThisSymDef, 0, 0, 0); { 1.0 SI objHd<>0 Alors copie la valeur de l'identifiant dans le champ 'UUIDobjHd' } IF objHd<>NIL THEN BEGIN UuidObjHd := GetObjectUuid(objHd); { AlrtDialog(Concat('UUID objHd = ', UuidObjHd)); } SetRField(objHd, GetName(recHd), 'UUIDobjHd', UuidObjHd); ResetObject(objHd); END; using from the beginning of the script : result := GetCustomObjectInfo(objName,objHd,recHd,wallHd); - it seems to work well but when you say "then check if the actually UUID matches the stored UUID" do you think it should be checked at the end of the script if the Uuid is still the correct one? If in the options of definition of the plug-in one updates according to the events, the displacements and the rotations the Uuid should always be single not? Attached is the .vso version with updated events and a new Uuid when duplicating the plug-in. Thanks and have a great day, Thomas Test Plugin Menuiseries Extérieures 05 Simplifié.vwx TW 14_PP 60 Simplifié.vso
  23. Hi, In order for the plug-in to have a unique UUID when it is duplicated or copied and pasted, it will be necessary to activate the update after displacement and rotation in the editing options of the definition of the plug-in, which is not the case in the .vso of the previous post. Have a great day,
  24. Hi, Thanks to the various messages dealing with the subject I have just made my first door plugin with different possible options in the object info panel. For rights issues I can't share the original, so I made a simplified version with the same reasoning. (but only with 2d) The objective was to group several symbols and options in a plugin and to retrieve all the data in an array, which by the way works rather well! There are certain conditions in the script to not be able to check certain options if another is or is not checked. The text that is inserted is modifiable in terms of size and position. We use UUID for each door to be able to make the link between the options / hardware and the door concerned. 1- I have a question about the table in which we retrieve the data: In this table that you will find in the attached file, we retrieve the data to order the material and/or the manufacturing. We sort between Choice 1 and Choice 2, then by door by differentiating those which are Left pushing and Right pushing via IsFlipped, the left pushing not being mirrored. When we sort with a criterion in a column =IsFlipped it works very well, but when we add in the row the criterion with the formula & (PON=ISFLIPPED) the opposite happens, it is visible in the table of the .vwx file and in the attached captures, if someone has an explanation it will be glad! (even if it's still the case and it works it's acceptable...) You will find attached the test file .vwx (in 2023), the .vso and below the script of the simplified version of the plugin, if you have remarks of improvements of the writing of the script or the parameters of the plugin dont hesitate. (Sorry I still can't send script by pasting it in Code function, still error 403) Have a great day, Thomas TW 14_PP 60 Simplifié.vso Test Plugin Menuiseries Extérieures 05 Simplifié.vwx
  25. Hello, For information I tried to send the complete code from home and I have the same error message 403 forbidden. So it would be more from the content of the message than from the firewall of my workplace server. I will see if it reproduces with other messages... Have a great day, Thomas
×
×
  • Create New...