Jump to content

Miguel Barrera

Member
  • Content Count

    648
  • Joined

  • Last visited

Community Reputation

14 Good

2 Followers

About Miguel Barrera

  • Rank
    500 Club

Personal Information

  • Occupation
    Civil Engineer
  • Hobbies
    computer programming
  • Location
    San Antonio, TX

Recent Profile Visitors

2,124 profile views
  1. Meaning just like you create hybrid symbols. You include both a 2D and a 3D object(s)
  2. I noticed that you placed the pio in Plan View which is a 3D view. That explains to some degree why the extrude fails and the pio disappears. Since the extrude fails for whatever reason, you are left with a rectangle and a circle which are 2D objects and you cannot view these objects in Plan View. It is only when you switch to Top/Plan that they reappear. the solution would be to create a Hybrid object. That is create the rectangle with the circular hole first in Top/Plan view and then duplicate and extrude the copy to create the 3D part.
  3. Parameters are only for plugin OBJECTS, These you create yourself if you want the user to enter a value such as dimensions of rectangle, radius of circle, etc. which will be listed in the Object Info palette. Since the sample script is a COMMAND, it does not have any parameters defined.
  4. As JBenghiat said, there is no way to create a pulldown with submenus out of the box but you can simulate something similar. Before the tree control, I had the same problem trying to show symbols located in subfolders. It has been a long time but I think what I did was to mark folders that had submenus. When the user click the marked folder, I would clear the menu and show the contents of the parent folder with the parent as the first item and then the contents offset by a couple of spaces. When the user clicked the parent header folder, I would show the higher level once again. Of course you need to keep track somehow the relationship between parent and nested items or folders.
  5. You could also export the file as a vectorscript text file. This will show how vectorworks creates the nurbs curves as a script. It is very accurate for simple geometry but it tends to skip objects with more complicated geometry.
  6. Make sure that the profile object is a group as in: BeginGroup; profileObjects EndGroup; profileHdl:= LNewObj; I have not come up with the offset elevation problem because I do keep the insertion point at 0 elevation for all PIOs. However, I do have to place the PIO at the same elevation as the terrain model. Rather than change the layer elevation , I move the entire object to the desired elevation as in: PROCEDURE SetElev(objHdl: HANDLE; org3Dz,elev: REAL); VAR dz: REAL; BEGIN dz:= elev - org3Dz; IF dz <> 0 THEN BEGIN Move3DObj(objHdl,0,0,dz); ResetObject(objHdl); END; END; I did have a problem at one time with the change in elevation not showing so I had to add the ResetObject to fix it.
  7. Do you need to see the graphic of the symbol? If not, why not just add the symbol name to a popup parameter. I have not used vsoButtonGetResource because it is only available from VW 2018. I created the following dialog in 2014, Select Sign Legend, which would be similar to that. The dialog is activated by clicking on the OIP LEGEND button and the selected sign is store in the Sign Type parameter. Other parameters get their value from the record attached to the symbol. The following is a variation of the same idea but the dialog has a tree picker control instead. I created this plugin to scale symbols before the capability was added to symbols.
  8. yes you can change the popup item list with vectorscript. see below for more info: Custom Shape Pane Popup However, the plugin has to be event enabled to update the popup after each interaction in the object info.
  9. I am glad that it helped you
  10. First you have to make the ODBC connection in your system with an odbc administrator. I have windows so the following step will be different in a Mac. 1. Open odbcad32.exe located in C:\WINDOWS\syswow64. 2. Create a User DSN or System DSN and click Add 3. Select the driver for the database and click finish. There are a select number of MS drivers including excel files that ship with windows. 4. The following dialog will vary depending on the driver chosen. For databases, it will have connection options such as user name and password but for excel files, you just need to select the spreadsheet. Enter the Data Source Name, which is the database name that VW will see, and click OK. In VW 1. Click on the menu Tools->Database-> Manage Databases... 2. In the next dialog, click on Connect 3. Under Use Data Source Name, the system ODBC that was created above should appear in the drop down list. Select the DSN and click OK. The following is a vectorscript snippet that shows how I get the connection. It looks for a connection in VW first and if not available, it will connect directly to the system ODBC. dataName:= kDB_DATANAME; tablName:= kDB_TABLNAME; InitODBC(dataName,tablName,hdrName); shtData.sqlQry:= ''; shtData.sqlQry:= Concat(shtData.sqlQry,'SELECT * FROM ',tablName); shtData.sqlQry:= Concat(shtData.sqlQry,' WHERE '); shtData.sqlQry:= Concat(shtData.sqlQry,hdrName.primarySt,' LIKE ''%',shtData.st1Lt,'%'''); shtData.sqlQry:= Concat(shtData.sqlQry,' OR '); shtData.sqlQry:= Concat(shtData.sqlQry,hdrName.secondStr,' LIKE ''%',shtData.st1Lt,'%'''); WriteLn(shtData.sqlQry); foundDB:= FALSE; IF DBDocGetDB(dbConnList) THEN BEGIN IF DBSQLExecute(dataName,shtData.sqlQry,colTot,resSetInst) THEN BEGIN ProcessRecs; foundDB:= TRUE; END ELSE IF DBSQLExecuteError(errMsg,errState,errCode,intDesc) THEN WriteLn(errMsg,', Code = ',errCode); END ELSE IF DBSQLExecuteDSN(dataName,kDB_USERNAME,kDB_PASSWORD,shtData.sqlQry,colTot,resSetInst) THEN BEGIN ProcessRecs; foundDB:= TRUE; END ELSE IF DBSQLExecuteError(errMsg,errState,errCode,intDesc) THEN WriteLn(errMsg,', Code = ',errCode);
  11. You can link an excel file to vectorworks with ODBC. I use the connection to fill-in fields with vectorscript in a form based on a user selection. However, the primary function of the ODBC connection is to link the database (excel file in this case) to Vectorwork objects with a common key field and it seems that is exactly what you are trying to do.
  12. Are there any examples of how to add python routines into vectorscript?
  13. You can get the volume and then divide it by the height of the slab to give you the surface area. You just need to check for the unit of measure returned by the functions
  14. Another way to structure the pio is to have the pio origin at the object it is connected to and have the control point as the moving part of the pio.
  15. Just the fact that you changed the object, it should call the regeneration code. To test whether the length has changed, you could store the last value in a hidden parameter and then compare to the new length.

 

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...