K.Lalkovski
-
Posts
116 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Articles
Marionette
Store
Posts posted by K.Lalkovski
-
-
Hi @Paolo,
I saw you have already found a solution, but here is an example on Windows that finds package certifi. Just open vwx file and run find certifi node. The problem with the module not being found is that certifi for VW2023(Win) is not a direct descendant of the 'site-packages' folder and just the path to certifi needs to be added at runtime.
- 1
-
Thank you!
-
Hi Niels Timmer,
Could you please attach here the object you have created in order for us to look into it?
Thanks,
Konstantin
-
Hi @_James
Yes, NBS Chorus plug-in works for 2023.Please, see attached video on how to install the plug-in with VW 2023.
Regards
Konstantin
-
On 10/7/2020 at 6:26 PM, tbexon said:
So I just moved all my plugins across to VW 2021, and I'm now getting Import Errors for Plug ins that use the External Package PyOpenSSL.
The error i'm getting is:
DLL load failed while importing _openssl: The specified module could not be found.
I've tried both deleting and reinstalling PyOpenSSL via VerifyOrGetLib, aswell as simply copying the working "Python Externals" from 2020 Plug in folder, neither seems to solve the issue.
Pip does seem to be successfully installing PyOpenSSL, with the most up to date versions of it's dependents.
I'm aware that with 2021 the Python distribution has been upgraded to 3.8, so I'm wondering if something to do with that could be causing this? Checking the docs here it is compatible with 3.5+
I don't believe it's an issue with the package itself as if I install it, and run from my local copy of Python 3.8 via IDLE it imports fine.
Any thoughts would be greatly appreciated! This is rather where my knowledge reaches it's limit!
Hi TBexon,
I do not know if you have found the solution for your issue or still interested in running PyOpenSSL with Vectorworks,
but on Friday I started looking at this problem while resolving a bug from Dominique about the serch path.
The DLL that pyOpenSSL looks for is python3.dll.It is in python's folder where also python.exe resides.
This path is included in the python search paths in VW.
For some reason the code of pyOpenSSL when installed cannot find python3.dll.It's package's code search problem.
If you copy python3.dll from python's folder to VW application folder(where VW exe resides) you will be able to use pyOpenSSl.
-
Hi _c_,
I'll check why user interactions does not work.
Regards,
Konstantin
- 4
-
Hi @Paolo,
There are two approaches to resolve the problem:
First approach: Replace VW2022 SP1(619242) with the new VW 2022 SP2(622317) .
Second, if you prefer to deal with the existing VW2022 SP1(619242)
Please, find the attached file scripts.zip.
On the problematic PC:
1. Go to <VW App folder>\Python39\Scripts2.Delete the contents of this folder.
3.Unzip the contents of the scripts.zip file
4.Run VW and try to install PIL.
You should be able to install the Pillow package and any other package.
Let me know if this works for you!
- 2
-
Hi @Paolo,
Please, take a look at the attached video. What is the number of the Autobuild 2022 you are testing on windows? Give me also details of your system configuration(windows version, processor). The warning on Mac will be removed in 2022 SP3. Could you prepare a video file for me to see what exactly happens on your machine?
- 1
-
13 hours ago, Paolo said:
Hello @K.Lalkovski,
here we are again… still the
Marionette.VerifyOrGetLib()
does not work on Windows, Vectorworks 2022, importing Pillow module.
Here below the code I am using, with the appropriate wheel files. It works on macs (arm or x86), but does not install nothing on Windows.
Previously, with Vectorworks 2021, it worked…
Can you address me (us) to a fix, even creating a temporary alternative function to the VerifyOrGetLib()?
Also I am still getting the same warning (see post dated january 5 in this same thread) after the (correct) module installation on mac.
import platform import Marionette arm64 = ('arm64' in platform.machine()) (major, minor, maintenance, platform, buildNum) = vs.GetVersionEx() #vectorworks 2022 has python 3.9.2 if platform == 2: PIL = 'https://files.pythonhosted.org/packages/20/ec/15a263f2c65d71cf62aa767f774c2381077e07beb1e9309a94461ec1cd29/Pillow-8.4.0-cp39-cp39-win_amd64.whl' else: PIL = 'https://files.pythonhosted.org/packages/32/25/32889d2b7c577b5a454dd12194b2ecb9d87d4b49c15c278dc99bc8ff5d2e/Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl' #for mac M1 if arm64: PIL = 'https://files.pythonhosted.org/packages/7d/88/a59b397f030e131accd4ca5a2ad7f1ac62347e6f4aadbe3dabd329aaded9/Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl' result = Marionette.VerifyOrGetLib('PIL', PIL) if result: vs.AlrtDialog('PIL module is correctly installed:\n', PIL) else: #PIL not installed vs.AlertCritical('Attention!','It has been not possible to install the PIL module.')
Hi @Paolo,
Let me check and I'll get back to you later today.
- 1
-
Hi TBexon,
if you run this on 2022 it is going to work(returns true):localized_True_Bool = vs.EvalStr(vs.Handle(0), "1=1") # Gets Localised True Bool
vs.AlrtDialog(str(localized_True_Bool))/*I removed type() here*/Regards,
Konstantin
-
On 10/31/2021 at 10:35 AM, tbexon said:On 10/31/2021 at 10:35 AM, tbexon said:
Hello All
Some potential 2022 funkyness. I use the EvalStr function to get the localized string for "True" to then use this to compare to the results from Checkboxes using GetRField. (For more information on the method/reasoning see the below thread where @JBenghiatvery kindly showed me this method in the first place)
Since migrating my plug ins to VW2022 I have noticed that EvalStr is now returning a boolean not a string, and thus causing all my comparisons to fail.
localized_True_Bool = vs.EvalStr(vs.Handle(0), "1=1") # Gets Localised True Bool vs.AlrtDialog(str(type(localized_True_Bool)))
I have tried the above test script in both 2021 and 2022. in 2021 it returns the Expected results of the String "True", however in 2022 it returns a Boolean of True.
My questions are:
A) Can anyone else replicate this and get the same results?
B) Is this working as intended, or a bug? I can't see anything on the Function Reference suggesting that this has been changed in 2022, however maybe @Vlado or @K.Lalkovskimight be able to shed some light?
Thanks in advance!
-
@tbexon I asked my colleagues @Yasen Aleksiev to look into this and answer you.
- 1
-
38 minutes ago, Paolo said:
Hello @K.Lalkovski ,
I am still getting the same warning trying to install Pillow module (you said should have been fixed…).
The module is correctly installed, but this warning is presented as a script error and users of my PlumBob plugin gets disoriented.
I am running Vectorworks 2021 R1 (Build 563191) on MacOS 10.14.6.
Hello @Paolo
I have been working on this issue when I have a good result I'll let you know.
-
@tbexon
Where do you receive this behavior om Mac OS or Windows? -
@Paolo It is a warning, not an error. The pip module is part of the current python distribution with Vectorworks, both on PC and Mac. The distribution is embedded into the Vectorworks application bundle on Mac. On Win it is just a folder on the disk. On Mac, the pip module cannot be directly accessed as this can be done on PC. This line of code is used to access the embedded pip on Mac ret_code = pip.main(['install', destination,'-q','--target', cmd]) and it is the reason for the warning. In the next version of VerifyOrGetLib, I'll fix the line in order to remove that warning.
- 2
-
@tbexon The fix for pip is now included in VW 2020 SP5.
- 2
-
@tbexon Thank you for your reply. It's not about the versions,
I've sent you this pip3 copy just to see if my suspicion of what is going wrong is correct and my fix is working.
-
@Paolo The pip3 problem is fixed. You just need a 2021 version with a build number bigger than 560093.
- 1
-
@tbexon Could please try this pip3.exe in the attached archive pip3.zip
1.Goto VW folder\Python35\Scripts
2.rename old pip3.exe to pip3old.exe
3.unzip new pip3.exe.
4.Start VW and try on your machine the script above that was giving the error "SyntaxError: Non-UTF-8 code starting with '\x90'" in file D:\Program Files\Vectorwork". Report the results here.If there is no more such a syntax error try to download PIL for Python 3.5 via Marioentte.VerifyOrgetLib and let me kknow about the result.
- 1
-
@tbexon Thank you for the info. Could you please execute this script as well?
import sys
print("sys.getwindowsversion = ",sys.getwindowsversion()) -
@Paolo If possible let the user execute the following script from the command line. Goes to Python folder of VW(Python35).
import sys
import locale
print("sys.stdin.encoding = ", sys.stdin.encoding)
print("locale.getpreferredencoding = ",locale.getpreferredencoding())
print("locale.getpreferredencoding = ",locale.getpreferredencoding(False))
print("sys.getdefaultencoding = ",sys.getdefaultencoding())
print("sys.getfilesystemencoding = ",sys.getfilesystemencoding()) -
@Paolo ,
Could you please report the exact number of the build 2020 sp4 you are using?
Could I have also any available information about windows (version, build), where the problem with pip 3 occurs.
Do you have any other python installation on your PC ?
I have tested your file Download PIL.vwx with 2020 SP4(551884), everything seems OK.
I have Windows 10 Pro, build 1903.
Please, take a look at the attached video.
18 hours ago, tbexon said:cmdpip, 'pip list'
- 1
-
Please, could you try attached file.The links to wheel files were outdated, now they are fixed.
- 2
Marionette Plug-in Style parameters by instance
in Marionette
Posted
Hi @heavy manners,
We implemented Plug-in styles for Marionette Objects 2 years ago. And setting all the Marionette object parameters by instance was by design.This is how it works at the moment.
My suggestion is just create a wish in our Jira so that we can consider supporting the parameters by style as well.
As for your second question about the mystery - "However, the script itself is set by style and can be edited to affect all instances that use the style."
Please, look at the attached video.
As can be seen, regardless of the fact that the individual circles have different radiuses, manually changed through the OIP for each instance of the style, if we edit the network in the red symbol in RM and add additional functionality, in this case, extrude, after finishing the marionette network editing in the Resource Manager (the red symbol), all circles will become cylindrical extrudes, and their radius will be the same, equal to the parameter value seen in the dialog with the button E dit script.
That is, all instances will change after editing the marionette network in the Marionette Object style and will be aligned to the parameter values of the Marionette network in the red symbol in the Resource Manager. The idea is, taking your door example into consideration - if you want, for instance, to add a handle to the doors, you add to the marionette network in the red symbol new nodes that create it, and all instances will have a handle after editing the network of the plug-in style.
Regards,
Konstantin
2024-06-14 16-00-35.mkv