Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by _c_

  1. Thank you Julian, I think we need that number back. It didn't hurt in the least and there was no reason to drop it.
  2. In case you didn't notice, round walls don't respond any longer to the flag 89. Now they are all object type 68. All your scripts relying on objectType =89 are broken. Similarly, in Worksheets you cannot restrict your criteria to T=89 or ROUNDWALL. Searching for some sort of identifier I found this approach with GetArc, do you have any better? GetVersionEx(major, minor, maintenance, platf, build); vwVersion := Str2num(Concat(major, minor, maintenance)); {...} IF vwVersion < 2700 THEN isRoundWall := (GetTypeN(wallHandle) = 89) ELSE BEGIN GetArc(wallHandle, startAng, endAng); isRoundWall := (startAng + endAng <> 0); END;
  3. @Pat Stanford you are correct, it is not in the site-packages folder, it is in pyhton3.9 I am still not in clear about all path nuances between python/VW/editor, so can't really tell if it's wrong.
  4. It's there. I don't understand what is going on, I file now a report and hopefully @K.Lalkovski can get a look into that. Edit: no, decided not to file a report. Tkinter is not working easily anywhere, particularly on Mac, and there is even the limit of it being somehow commercial.
  5. I tried using tkinter just recently and it stalls VW indefinitely, simply upon loading the import, does anyone see this?
  6. I noticed that my old subroutine for parsing the 3D state of an object wasn't reliable any longer. There are various object flags in the SDK (/SDKLib/Include/Kernel/API/ObjectVariables.h) that allow to parse the multiple flavours of objects' 2D-ness . Surprisingly, though, a layer plane object doesn't resolve as 2D. For me a rectangle, as primitive shape, is a 2D object, be it screen or layerPlane. And for a multitude of Vectorscript tasks this is what we need to know. In this file you can experiment with the various flags: test is3D.vwx Example: a layer plane object surprisingly resolves as 3D with the flag 651: Example: a 3D plane object is not really 2D for us but surprisingly resolves as planar with the flag 1161: (and let's not speak about the surreal fact that this object floats in space without giving a z value in the OIP, a reason for confusion for the user) Thus: { *********************************************** } { checks if h is 3D obj, doesn't check NIL status } FUNCTION H_Is3D(h: HANDLE): BOOLEAN; BEGIN H_Is3D := (GetObjectVariableBoolean(h, 1160) = FALSE) AND (GetObjectVariableBoolean(h, 1162) = FALSE); { isScreen and isLayerPlane both false } END; or in Python def o_is3D(h): """checks if h is 3D obj, doesn't check NIL status""" return ((vs.GetObjectVariableBoolean(h, 1160) == False) and (vs.GetObjectVariableBoolean(h, 1162) == False)) # isScreen and is LayerPlane are both false Try this on any selection: import vs h = vs.FSActLayer() if h == vs.Handle(0): vs.AlrtDialog('Select something') else: isScreen = vs.GetObjectVariableBoolean(h, 1160) # obj is screen isPlanar = vs.GetObjectVariableBoolean(h, 1161) # obj is planar isLayerPlane = vs.GetObjectVariableBoolean(h, 1162) # obj is in layer plane isHybrid = vs.GetObjectVariableBoolean(h, 1163) # obj is hybrid is3D = vs.GetObjectVariableBoolean(h, 650) # obj is 3D is2D = vs.GetObjectVariableBoolean(h, 651) # obj is 2D vs.AlrtDialog(f"screen: {isScreen}\nisPlanar: {isPlanar}\nlayerPlane: {isLayerPlane}\nhybrid: {isHybrid}\nis2D: {is2D}\nis3D: {is3D}")
  7. Hello, I am working on a brute force Pascal <> Python converter. This won't actually be much, but will provide a way to resolve the conversion of whole libraries. Not everything can be fixed though, and a lot of fixes still remain for making the code run properly. And let's not speak about optimising for Python.
  8. We closed our standard architectural office already years ago and I should have sold already then, but was using VW for consultancies and CAD management. Last year I moved to a full BIM Manager position, unfortunately not on VW. ... there are no BIM Manager positions on VW, it is used here mainly in competitions.
  9. Here in Germany we are suddenly and without any warning refused our service select paid VW 2022 numbers. The licences are paid, we don't get the numbers if we don't give back the dongle. There have been exceptions, though, some client got them.
  10. Thank you @juanP, what I am selling is a dongled version, as they are in usage here, and never required an activation. The buyer doesn't know what an internet activation means, particularly in matter of discomfort while abroad and I don't want to give the impression of cheating selling empty air.
  11. Hallo, do you still sell the archicad licence?
  12. Bump. I ask, because since I am selling I am required to inform the buyer.
  13. Is this resolved or one still needs to wait for deactivation?
  14. Hello, we are selling our Vectorworks Architect International licences, with hardware dongle, serials covering VW from 2004 (VW 11) to 2021. VW 2022 is paid but can only be activated if one is ready to renounce to the dongle. The serials are starting from before dongles: Minicad 7. We are based in Berlin. Edit: On wish, we are also selling BIM Management tools and plug-ins for an extra price together with this offer. The tools are developed up to VW 2022, the code is not inclusive. Edit: removed contact data _c_
  15. I would love to do an article about xml, that was also a pretty undocumented speciality that I shared quite a lot across like-minded friends. Put together all the things learned, all the precious hints from the VW engineers.
  16. You cannot imagine how it was to put that description together, there was no documentation whatsoever. It is also so complex, that I myself, in spite of having by now quite a lot of list browsers in usage, must consult that article for details.
  17. Don't worry Jayme, and thank you for the hint: I will give a look to them as well. I just want to find all the problems with the vector stuff, then I am looking forward to expand to new themes.
  18. @BillW, thank you so much for the library files, precious stuff you have there.
  19. And thinking better: items within Python's tuples are immutable. The routines can thus only return a new tuple. So I see these options: var v = ( x, y, z ) if a vector variable is preloaded with a third item, return a new tuple whose var[2] has the preloaded var[2] value var v = ( x, y ) if not, return a tuple in the form ( x, y, 0 )
  20. Yes, I experimented extensively and added various notes and will add more in these days, hopefully this will help other Python novices. I kept on trying to fetch vectorial data and getting abstruse nonsense values. The loss was due the fact that, in spite proper 3-dimensional inits: both routines GetPolyPt and GetPolyLineVertex return 2-dimensional tuples, shortening if longer. vector routines expect 3-dimensional tuples or return gibberish I think that both GetPolyPt and GetPolyLineVertex should simply set the first two items and leave the third alone. It does feel wrong, when an item is deleted from a tuple. There are scenarios where a z value is preloaded. But as always is rather a matter of finding an acceptable workaround (and documenting the problem), which in this case was easy. As a principle all problems I am having in Python are due to the way vectors are accessed, manipulated and resolved. So, that overcome, all will be well. p = vs.GetPolyPt( polyHandle, vtx1 ) # sets a tuple with 2 items in the form ( 0, 0 ) ang = vs.Vec2Ang( (p[0], p[1], 0) ) # make sure that there is a z coordinate or vs.Vec2Ang will fail, if p has only 2 items (VS Python only, Pascal OK ) # alternatively if len(p) == 2: p += (0,) # add a 3rd item to the tuple ang = vs.Vec2Ang( p ) # returns angle # FAILURE EXAMPLES: # ang = vs.Vec2Ang( p ) # always returns 90 # ang = vs.Vec2Ang( (p[0], p[1]) ) # always returns 90 https://developer.vectorworks.net/index.php/VS:Vec2Ang https://developer.vectorworks.net/index.php/VS:GetPolyPt https://developer.vectorworks.net/index.php/VS:GetPolylineVertex
  • Create New...