Jump to content

Vlado

Vectorworks, Inc Employee
  • Posts

    654
  • Joined

  • Last visited

Posts posted by Vlado

  1. ... scaling problems are typically due to incorrect coordinate system, but the WKT looks the same.

    Maybe you can getting more points and plotting them in Vectorworks to see how they relate to the imported image. This will give you more confidence that it's not the WKT.

     

    Another way might be if you export a shapefile with prj file, and then import it in Vectorworks in a new file [so that it sets the Georeferencing]

    • Like 1
  2. @PNWPaul I was able to import it somewhat where it is supposed to go, but unfortunately it is not perfectly fitting. And I'm not sure what's wrong. Anyway, here is what I did:

    ok, so these are called cartesian coordinates (i.e. easing and northing).
    1110896.65E
    1313006.9N
    Note they are measured in linear coordinates, where lat/long are measured in degrees.

     

    After I setup the Vectorworks drawing geo-referencing with the WKT above, these cartesian coordinates gave me:
    -48.91273585 lat
    -122.070105424 lon

    These checks are very easily done in Vectorworks using the Stake tool, and the .Set Geolocation" button.
    Then with the Geoimage, it all seems to line up to your image from the original post:
    image.png

     

    Then I was able to import the .las file, making sure the center checkbox is off, and select Feet for units as this coordinate system uses feet (note, it doesn't really matter what units the Vectorworks document is in)
    image.png

     

    Then the image didn't fit at all, it was way to far, and comparing the location of where it should be to where it is (in cartesian coordinates) it seems like it's off by scale of 1000.

     

    So then I just scaled the Point Cloud object by factor of 0.001:

    image.png

     

    And that put it at the stake point, but it is still slightly off from the geo-image background:

     

    image.png

     

    I have no idea why this is happening. I'll keep poking it, and see if something comes out.

    • Like 2
  3. @PNWPaul It looks like EPSG:4152 is not the correct coordinate system, as it looks like this is only spherical coordinate system. The images you provide shows a projection added to it, but it is not clear what is the EPSG if that projection.

     

    I managed to pull the data out from the image and setup this WKT that is based on EPSG:4152 spheroid plus the projection parameters from your images. See below for the text of it.

     

    However, I'm still not able to align your file with it, as it's not clear what units the LIDAR file is using. Yes, it should be automatic, but it should be possible to be done manually. I've tried several settings but shouldn't guess it.

     

    Do you know the latitude and longitude of the location where the file is supposed to be? That can give us a clue what are the correct unit configuration.

     

    Regards,

    Vlado

     

    PROJCS["custom",
        GEOGCS["NAD83(HARN)",
            DATUM["NAD83_High_Accuracy_Reference_Network",
                SPHEROID["GRS 1980",6378137,298.257222101,
                    AUTHORITY["EPSG","7019"]],
                AUTHORITY["EPSG","6152"]],
            PRIMEM["Greenwich",0,
                AUTHORITY["EPSG","8901"]],
            UNIT["degree",0.0174532925199433,
                AUTHORITY["EPSG","9122"]],
            AUTHORITY["EPSG","4152"]],
        PROJECTION["Lambert Conformal Conic"],
        PARAMETER["latitude_of_origin",45.33333333333334],
        PARAMETER["central_meridian",-120.5],
        PARAMETER["standard_parallel_1",45.83333333333334],
        PARAMETER["standard_parallel_2",47.83333333333334],
        PARAMETER["false_easting",1640416.667],
        PARAMETER["false_northing",0],
        UNIT["foot",0.3048,
            AUTHORITY["EPSG","9002"]],
        AXIS["Easting",EAST],
        AXIS["Northing",NORTH]]

     

    • Like 2
  4. @Don Seidel as far as I'm aware, SQLite is working ok. I know you are having an issue which you already are working with an engineer to figure out, and we're having trouble reproducing it on our side. I'm not sure you can blankly state that it's completely not working judging by the conversation on the filed issue.

     

    Is this a new issue? Please file it as a new issue and let us know.

  5. On 11/14/2023 at 9:44 PM, Your Name Here said:

    If it's mission critical, I don't use Laubwerk plants.

     

    This will be fixed in Vectorworks 2023 SP8

     

    The technical description is that the Laubwerk library that we use was fixed and included in Vectorworks 2024 and thoroughly tested a while back. However due to the severity of the problem, we will include it in Vectorworks 2023 SP8. We're spending extra effort to make sure it will be stable in 2023 too.

    • Like 1
  6. @Amanda McDermott @RonMan We've tracked down the slowness to the resource libraries load. It's not really plugin related, it's the loading of the resources DB.

    @Dubman can you delete your user folder, make sure you save you old one so you don't lose something important? Do you see the delay again? If so, please send me the user log files (the VW User Log.txt and VW User Log Sent.txt -- let me know if you cannot find them) @Hugues see the post above.

    • Like 1
  7. @RonMan do you mind trying to delete the file /tmp/DebugModule_5.txt from your machine, and try running again with the Debut Module in?

    You can go there by opening a finder window, then from the menu Go -> Go to Folder..., then type /tmp, the folder will open and there should be a file DebugModule_5.txt.

     

    Is there? If yes, delete it and try again. Close Vectorworks and run it again. This file is used to cash flags and optimize the DebugModule, so it doesn't do extra work on startup. So you'll see it show up, and then it should be faster, if that's the reason.

     

    Note, please don't rely on the Splash screen, it's not necessarily synced to what's actually happening. The real test is to remove the DebugModule plugin from the Plugins folder, and see it becoming faster.

     

    Thank you for you testing!

  8. 15 hours ago, Letti R said:

    so i finished my Plug-in. Now i want to put it in the Forums to share it (for free). Is there something i have to consider to not run into legal problems because i used the VW SDK, or can i just put it out there for others to use?

    @Letti R we have nowadays the Partner Install feature, that allows users to install/add on features developed by third-parties. Send me an email to vstanev@vectorworks.net and I'll forward it to the correct people for that.

  9. Hi @Timothy Besada, this is an interesting question, but at the moment we do not provide anything for the Python Scripting that can work with the Web Palette.

    Only the SDK is capable to provide a web-palette. You can find an example how to make such palette here: https://github.com/VectorworksDeveloper/SDKExamples (this is self contained project, so you should be able to compile it directly)

     

    The base of the web-palette implementation is the two sides:
    - back-end -- which is essentially the C++ plugin. It is the browser, it can add JavaScript code, a.k.a. insert JS functions for the webpages to use, and also to implement JS functions. This way, the page [the front-end] can call into Vectorworks and get data.

    - front-end -- this can be an external site, or locally implemented [as the example shows, using VueJS]. This would use the JS functions provided by the back-end.

     

    Python cannot participate in this at the moment. I guess you can simulate by exposing Script functions [IExtensionVSFunctions] in your back-end, and thus delegate a JS implementation, but I think that would not be very efficient, plus you'll need to store state somewhere, between the calls in Python. I would not recommend going down this way.

     

    Unfortunately, the SDK is your only way to do your own web-palette.

     

    Regards,

    Vlado

     

  10. 12 hours ago, Amanda McDermott said:

    Tempted to try this - can anyone from Vwx advise on whether this is a good idea?!

    The DebugModule plugin is a set of tools for third-party development. It has no effect on the features of the application. Vectorworks would work ok without it, unless you want to enable the dev features, from the Partner Install menu.

    I would rather get to the bottom of why this is a problem, than to advise everyone to delete it. We'll look at what's going on with this.

    • Like 2
  11. @MarcusBIMBOT this looks like you are using the examples provided with the SDK. Unfortunately, those are not in good shape.

    Use the Github examples, there are in much better state.

     

    Go to https://github.com/VectorworksDeveloper/SDKExamples

    Download the entire repo, it is self contained, already setup to compile directly.

     

    Then try to compile the project:

    SDKExamples\Examples\ObjectExample\ObjectExample2023.sln

     

    We use Visual Studio 2017 for that version, but I guess the build tools are what you need.

     

    It should just compile.

     

    Let me know if you struggle, I'll be glad to help you. Sent me an email at:

    vstanev@vectorworks.net

     

    Regards,

    Vlado

     

  12. 2 hours ago, MarcusBIMBOT said:

    I just grabbed this project (2023 version) from github and can't get it to build.  I'm having trouble with vwsdk.dll debug version

     

    Hi @MarcusBIMBOT, which project from the examples are you trying to build?

    The depot is setup so you take the entire thing, and open the appropriate solution file for the version you want to use.

  13. Hey @Pat Stanford, @J P, and all,

     

    The root of the problem is that the available object variables are only for styles, and in this case you just have a wall. So, the way you get out data from the wall [nowadays] is via QTO functions, in this case it's =ObjectData('fire rating') 

    Here is the modified script that executes the QTO function on the wall in the script:
    Note: you must do it via a string variable, for EvalStr to work property. It cannot work with direct string as parameter

     

    Procedure WallFireRatingForDoor;
    
    {August 8, 2023}
    {February 25,2022}
    2023, 2022 Patrick Stanford pat@coviana.com}
    {Licensed under the GNU Lesser General Public License}
    {No warranty expressed or implied. Use at your own risk}
    {Test before useing on real data}
    
    VAR	H1, H2	:Handle;
    	R1		:Real;
    	B1		:Boolean;
    	S1, EXP	:String;
    	
    BEGIN
    	H1:=WSScript_GetObject;
    	H2:=GetParent(H1);
    	If GetType(H2)<>68 then 
    		WSScript_SetResStr('---')
    	Else
    		BEGIN
    			EXP := 'ObjectData(''fire rating'')';
    			S1:=EvalStr(H2, EXP); {Execute the Worksheet formula expression on the given handle}
    			WSScript_SetResStr(S1);
    		End;
    End;
    
    Run(WallFireRatingForDoor);

     

    • Like 4
  14. Also you might be better off using Python as a language instead of Pascal. It's just more modern syntax and it has the exact same functions available anyway.

     

    Also, it might be easier to use the Dialog Builder to create the Layout (#1 above) as it gives you a way to test and fine tune the layout, especially when it becomes more comples:

    https://developer.vectorworks.net/index.php/SDK:Dialog_Builder

     

    Here is some basic information on the dialog builder:

    https://developer.vectorworks.net/index.php/SDK:Dialog_Builder_Samples

     

     

    • Like 3
  15. Some explanations:
    First, a Layout Manager dialog in Vectorworks is composed of two parts:

    1. Creation -- code that creates the controls and their layout by defining what lies below or to the right;

    2. Handling -- code that defines what the dialog does, i.e. receives messages from the controls

     

    So typically, you'll have two functions for the two parts, and typically you'll have constants for the variables so you can follow the two parts easier. You can see, the example above catches the event from the OK button (which has always index of 1) and retrieves the values from the controls.


    Note, here you used Real control, but maybe it would be better to use a 'dimension' control, which is aware of units. Notice how the edit control has a type of what the real value actually is: https://developer.vectorworks.net/index.php/VS:CreateEditReal

     

    Also see here for another example:

    https://developer.vectorworks.net/index.php/VS:RunLayoutDialog

    • Like 3
  16. @JoshRula Here is your code, modified, working to show how to get two values out from the dialog on OK:

     

    {CABINET BUILDER V0.1}
    PROCEDURE CabinetBuilder;
    CONST 
    	kRealType = 1;
    	kDimType = 3;
    VAR
    	dialogID : LONGINT;
    	width, height : REAL; {dialog data}
    	
    	FUNCTION CreateDialog : LONGINT;
    	VAR
    		builderDialog:LONGINT;
    
    	BEGIN
    		builderDialog:=CreateLayout('Cabient Builder',false,'Build','Exit');
    
    
    		CreateStaticText( builderDialog ,1,'CABINET BUILDER V0.1',-1);
    		SetFirstLayoutItem( builderDialog , 1);
    
    
    		{ **********  TAB CONTROL ********** }
    
    		{ Tab Group 1}
    		CreateGroupBox(builderDialog , 5 , 'Cabinet Specs' , FALSE);
    
    
    		CreateStaticText(builderDialog , 6, 'WIDTH',8);
    		SetFirstGroupItem(builderDialog ,5,6);
    
    		CreateEditReal(builderDialog, 7, kRealType, 0, 4);
    		SetRightItem(builderDialog , 6,7,0,0);
    
    		CreateStaticText(builderDialog , 8, 'HEIGHT',8);
    		SetBelowItem(builderDialog , 6,8,0,0);
    
    		CreateEditReal( builderDialog , 9, kRealType, 0, 4);
    		SetRightItem(builderDialog , 8,9,0,0);
    
    		CreateStaticText(builderDialog , 10, 'DEPTH',8);
    		SetBelowItem(builderDialog , 8,10,0,0);
    
    		CreateEditReal( builderDialog , 11, 1, 0, 4);
    		SetRightItem(builderDialog , 10,11,0,0);
    
    		CreateStaticText(builderDialog , 12, 'KICK',8);
    		SetBelowItem(builderDialog , 10,12,0,0);
    
    		CreateEditReal( builderDialog , 13, 1, 0, 4);
    		SetRightItem(builderDialog , 12,13,0,0);
    
    		CreateStaticText(builderDialog , 14, 'DOOR(S)',8);
    		SetBelowItem(builderDialog , 12 ,14,0,0);
    
    		CreateEditInteger( builderDialog , 15, 2, 3);
    		SetRightItem(builderDialog , 14,15,0,0);
    
    
    		{Tab Group 2}
    
    		CreateGroupBox(builderDialog , 16 , 'Material Specs' , FALSE);
    
    
    		CreateStaticText(builderDialog , 17, 'Material Thickness',8);
    		SetFirstGroupItem(builderDialog ,16,17);
    
    		CreateEditReal(builderDialog, 18, 3, 19mm, 8);
    		SetRightItem(builderDialog , 17,18,0,0);
    
    		CreateStaticText(builderDialog , 19, 'Laminate Thickness',8);
    		SetBelowItem(builderDialog , 17,19,0,0);
    
    		CreateEditReal( builderDialog , 20, 3, 0.039", 8);
    		SetRightItem(builderDialog , 19,20,0,0);
    
    		CreateStaticText(builderDialog , 21, 'Kick Set Back',8);
    		SetBelowItem(builderDialog , 19,21,0,0);
    
    		CreateEditReal( builderDialog , 22, 3, 4", 8);
    		SetRightItem(builderDialog , 21,22,0,0);
    
    		CreateStaticText(builderDialog , 23, 'Door Gap',8);
    		SetBelowItem(builderDialog , 21,23,0,0);
    
    		CreateEditReal( builderDialog , 24, 3, 0.125, 8);
    		SetRightItem(builderDialog , 23,24,0,0);
    
    
    		{ Create tab control }
    		CreateTabControl( builderDialog , 100);
    		SetBelowItem( builderDialog , 1, 100, 0, 0);
    
    		{ Add the tab panes }
    		CreateTabPane( builderDialog , 100, 5);
    		CreateTabPane( builderDialog , 100, 16);
    
    		CreateDialog := builderDialog;
    	END;
    
    
    	PROCEDURE HandleDialog(VAR item : LONGINT; data :LONGINT);
    	VAR ok : BOOLEAN;
    	BEGIN
    		IF item = 1 {OK button} THEN BEGIN 
    			ok := GetEditReal( dialogID, 7, kRealType, width );
    			ok := GetEditReal( dialogID, 9, kRealType, height );
    		END;
    	END;
    	
    BEGIN
    	dialogID := CreateDialog;
    	IF RunLayoutDialog(dialogID,HandleDialog) = 1 {OK} THEN BEGIN
    		{ the dialog was closed with ok}
    		AlrtDialog( Concat( 'Width=', width, ' Height=', height ) );
    	END;
    END;
    RUN(CabinetBuilder);

     

    • Like 1
  17. 3 hours ago, twk said:

    After all that testing, all I had to do was make sure that my custom workspace had these particular tools 'unstacked'. Ie not nested under another tool.

     

    Oh wow, I haven't heard about this. Can you enter a JIRA with your workspace file that causes this? I wasn't able to reproduce it immediately.

    or you can send me the file over to vstanev@vectorworks.net, and I'll file it, to get fixed

    • Like 1
×
×
  • Create New...