Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by PatW

  1. Hi Ivers, here is a little example that gives you the count off the dataTag objects. What you need to do is simply replace the counting by the set class function: crit = "((R IN ['Data Tag']))" count = 0 def callback(h): global count count += 1 vs.ForEachObject(callback, crit) vs.AlrtDialog("Counted ", count, " DataTags")
  2. PatW

    VWStaticTextCtrl SetColor

    We are using VW2020. auto statTX = GetStaticTextCtrlByID(kedtitDim_EffLengthBasket); Uint8 R = 255; Uint8 G = 0; Uint8 B = 0; CRGBColor color(R, G, B); statTX->SetColor(color, false /*atDialogInitTime*/ ); I was calling this in DispatchEvent and OnUpdateUI without any effect. What we want is to make the static text red dynamically when a value is invalid.
  3. I was not able to change the color with this funciton(also SetStyle is not working) is there any trick or alternative function?
  4. The defined params are stored in the ParamRecord which has the name off the ParamObjectType. First you need to get the param rec name, thats saver than hardcoding it: http://developer.vectorworks.net/index.php/VS:GetParametricRecord Put the handle in this function: http://developer.vectorworks.net/index.php/VS:GetName At the end you pass the paramObject, the name off the param record and the Fieldname into this function: http://developer.vectorworks.net/index.php/VS:GetRField
  5. VS function's throw no exceptions. The errors are basically prints. You can check a handle like a boolean to see if its valid: if not vs.GetObject(SymName): # XXX error # If another obj type could have the name this might be saver: kSymbol_Definition = 16 h = vs.GetObject(SymName) if (vs.GetTypeN(h) != kSymbol_Definition): # XXX error
  6. ForEachObjectInList needs a callback function you can do the selection inside there instead off looping a list. Theres a good example on: http://developer.vectorworks.net/index.php/VS:ForEachObjectInList regards, Patrick
  7. Hi CETLV, are definitely only the objects that we see on the picture in the drawing? When calculating "All" Braceworks consideres also objects that are hidden. I would take a look into the file if you can share it.
  8. The windows equivalent to AppleScript would be ActiveX here: Unfortunately it's not documented and very unstable. If you are lucky it will work.
  9. You need to provide the internal plug-in name, usualy this is the name that you see in the OIP. To get the definite name use this little script (Python): # Example obj must be selected hRec = vs.GetParametricRecord(vs.FSActLayer()) print (vs.GetName(hRec ))
  10. Hi Patrick, with these commands you should be able to do the job. They should be also available as Marionette nodes. Otherwise you can create them. http://developer.vectorworks.net/index.php/VS:Function_Reference CreateCustomObject(objectName, p, rotationAngle) SetCustomObjectPath(); The params can be modified with: GetParametricRecord SetRField
  11. Hi MTRobin, you could invoke the menu comand "Save copy as..." by http://developer.vectorworks.net/index.php/VS:DoMenuTextByName
  12. Hi, as I know there is no way to get Events with VectorScript so it will not be possible to trigger your PIO when a symbol changes. In the SDK you would create a class that inherits from VCOMImmediateImpl<IObjUpdateSupport> to catch global events. class UpdateSupportProvider : public VCOMImmediateImpl<IObjUpdateSupport> { public: UpdateSupportProvider(CallBackPtr); virtual ~UpdateSupportProvider(); // IObjUpdateSupport public: virtual void VCOM_CALLTYPE Init(IObjUpdateSupportContext* pContext); virtual void VCOM_CALLTYPE OnNotification(IObjUpdateSupportContext* pContext); virtual void VCOM_CALLTYPE OnState(IObjUpdateSupportContext* pContext, const ObjectState& state); ...
  13. Hello, maybe you simply forgaot the "namespace" try this: import random print ( random.randrange (0, 500, 3) )
  14. You could look if there es a selector to call the menu command: See:
  15. def vs.Poly(p): return None Poly is not returning tha handle 😉 Look for the function LastCreatedObj or similiar to get the handle. Edit: To slow. But one addition if you want to make sure that LNewObj is giving you the right obj you can first execute LNewObj save the handle then create the poly, do LNewObj again and check if the result is not the same as from the first call.
  16. As a test I created a WorldBased and a PageBased Symbol next to each other. When the Design-Layerscale is changed the size relations of the two symbols change as expected. (At some scale Smybol A is bigger at another Symbol B is bigger.) But when this syms are both in the viewport and I changed the Viewport layerscale the whole scene simply gets bigger or smaller and the relations stays the same. So in this case the PageBasedSym is not behaving different. Maybe you meant something else.
  17. But absolute Symbols seem also not to care about ViewPorts. So maybe it will behave the same with the ObjectFlag. Have you tried: vs.SetObjectVariableBoolean(h, index, status)
  18. Hi avictorgm, I would recommend the python functions for file stuff: with open ("file.txt", 'w') as file: file.writeline ("xxx");
  19. If you want to Draw the object in absolut scale (always the same size on the print) you simply need to consider the layer scale: mmVW = absoluteMM * layerScale; To convert the Millimeters in the drawing unit you can use: VS:GetUnits fractionLONGINTApproximate WorldCoords per drawing unit. Use GetPrefReal(150) instead.
  20. Hi, first build a resource list with "BuildResourceList" then fill the values into an ImagePopUpResource: http://developer.vectorworks.net/index.php/VS:InsertImagePopupResource
  21. Hi, I can't tell you exactly how it is done in vs code. But normaly you add the folder which contain the vs.py to the search paths. Then just for intellisense you have to make an import at the files where you want to use vs functions: import vs Or alternatively you can just put the vs.py next to your script.py but the first way is definetely better.
  22. Hi Giovanni, normaly you don't need to declare any file that should go into the vsm. When I remember correct theres also a folder tag that you can use <Folder>MyPythonPackage</Folder>. I never tried to include an external lib into a vsm but you could look for the lib as usual package with py files and include these instead.
  23. Hello, I did many approches to set the text-colour of a static text but nothing happens. How is it done? VWStaticTextCtrl* statusTxContrl = GetStaticTextCtrlByID(klbCurrState); ... // color.SetColor(color.GetRed() ); color.SetColor(10, 5, 0, 100); ... //color.SetBackgroundColor(); //color.SetFrontColor(); statusTxContrl->SetControlText (statusString); statusTxContrl->SetColor(color, false);
  24. I also use google with the site operator:
  25. Version 1.1.0


    This Marionette-Wrapper explodes a group around the origin by a given factor.


7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114


© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

  • Create New...