Jump to content

Pat Stanford

Moderator
  • Posts

    12,594
  • Joined

  • Last visited

Everything posted by Pat Stanford

  1. That's why I try to read everything on the board. You never know when an idea from somewhere totally different will make a huge difference to what you are doing.
  2. @bcd Nothing to be sorry about. You actually hit on the answer. With the Wall Insertion Mode off, the Duplicate works as Michael, Raymond and I wanted it to. DOH! Great solution. Procedure Test; Var H1, H2: Handle; B1: Boolean; Begin B1:=GetPref(581); SetPref(581, False); H1:=FSActLayer; H2:=CreateDuplicateObject(H1, ActLayer); HMove(H2,60",60"); SetPref(581,B1); End; Run(Test);
  3. I don't always Vectorscript, but when I don't that Python white space makes me cranky. Code Responsibly my Friend.
  4. I'll try. I'm on a Mac, so the exact paths on Windows will be different. I would move the file Detail Cut Wood.vso from: Applications\Vectorworks 2017\Plug-Ins to Pat\Library\Application Support\Vectorworks\2017\Libraries\Plug-ins. I think the destination path on Windows would be on Windows it would be by default the folder [userName] /AppData/Roaming/Nemetschek/Vectorworks/2017/Plug-ins It probably would be wise to double check that the file has User access permissions before you restart VW. You will probably need to update your Workspace by removing the VSO and re-adding it so VW knows the new location. The Detail Cut Wood.vso should then show up in the Plug-in Manager in the Custom Plug-In pane instead of in the Built-In Plug-ins pane. Edit the parameters just as you have before. Hopefully now the changes will be saved.
  5. There probably is and @MullinRJwill probably point it out to both of us shortly. ;-)
  6. A better option may be to use a worksheet. You can add columns for the parameters you want to be able to control. Edit the first one and then copy that cell, select all the other cells in the column and Paste. Kind of works like Fill Down in Excel. Scripts can work, but you will need to have either one script that changes all of the parameters or multiple scripts for each different parameter. And in order to make a change you will need to edit the script first and then run it. You could put in dialog boxes, but the time you spend writing and editing the scripts is likely to be more than the time to make the changes manually. Take a look at the following thread to find how to see what formulas you would need in a worksheet. You probably should read back through the thread to see what the script is supposed to do. Make sure you run the script with a window NOT In Wall as the only selected item in the drawing.
  7. Feel free to ask lots of questions. There are several of us who like to help newbie scripters. ;-)
  8. The following will toggle the crop on and off when you are in a perspective view. SetPref(127, Not GetPref(127)); Copy that line, go to Tool:Plugins:Plugin Manager. Click the New button and choose Menu Command. Click Edit Script and paste in the line above. Click OK. Click Close. Edit your workspace to include the new command. Let us know if you need more help.
  9. So why not do the copy paste in the script. It seems to work. If you want the new object to be In Wall, just use a SetParent. DoMenuTextByName('Copy',0); DoMenuTextByName('Paste in Place',0); Just so you don't feel too bad, I just spent 45 minutes coming to this realization. ;-)
  10. Most of the default plugin objects are transitioning from being Vectorscript based to being SDK based for better performance. Unfortunately, this greatly limits the ability of the end user to change the defaults. I am not certain if that is what is happening in your case or not. Your idea about permissions could very well be correct. Try moving the Plugin from the Application folder to your user folder. Use the same relative path and quit VW before you do the move. Then try and edit the parameters from there.
  11. Since you started with Pascal, you probably should get into scripting. Vectorscript is a Pascal based language. There is also a Python alternative if you want to learn something newer, but for long time (30+year) Pascal heads, Vectorscript is the easiest entry point. You still need to learn how VS manipulates objects, but the basics are all the same.
  12. Andy, I read the problem the other way. I think Amosher wanted to be able to keep VW running, but have no open windows. Without the Application Window option turned on, you get this ability. With Use Application Window, you will always have a grey "background" window even if you have no documents open. So in order to see the desktop you have to minimize VW. Another option (on Mac) is to use different "Desktops" and assign VW to a desktop that is not used for other applications.
  13. Go to the Window menu and make sure that Show Document Tabs and Use Application Window are unchecked. This will make 2017 behave much like 2016. But there are substantial benefits to the new tabbed format, so you might want to try it for a while and see what you think.
  14. Nice divergent thinking and it gets the data out, but what I was thinking was more like this mockup:
  15. I don't think this can be done from a script or a Marionette node (which is effectively a Python script) as the necessary calls are not exposed to the scripting language. Sorry.
  16. It looks like you have your criteria set so that no objects are being returned. Show us what criteria you are using and we can probably help. From a high level, the Criteria (set by right clicking on the database row header and choosing Set Criteria of Edit criteria specifies WHAT objects are going to be shown in the database. The formulas in the database header row specify the information ABOUT the object that is going to be shown.
  17. You could probably use the multiple object type criteria plus the IF statements to get the title block info into a single database, but if this is really just header/title information you are probably better off with the two databases in adjacent rows. I am assuming that the title block info would be first as the title. If you want multiple instances of the room info interspersed with the finishes, I think you are in for a hard time getting everything to sort to the order you want. Can you post a mockup of how you would like the schedule to look?
  18. Please submit that file as a bug. When the programmers have an obvious fault they can see it makes it far easier for them to figure out how to solve it.
  19. For the correct answer, you are going to have to be far more specific in asking the question. Here are three guesses about what you want to do. You have a building with a lot of windows but only one door. You want the door to show up in the Window Schedule. A. Tough Luck. There is not an easy way to do this. B. A possible work around if you don't need it to sort into the middle of the other database would be to create a separate database in the row immediately below the window database and set the formulas to show the data in the "same" columns. C. Bite the bullet and do it the hard way. Set the criteria to be objects with either Door or Window records. The formula in each cell of the database header would be some version of =If(R='Door', Door.Field, Window.Field). This assumes that you don't have any objects that have both records attached. Otherwise you have to figure out a different way to discriminate between the data to be presented. Or maybe you can Copy the Database and Paste it below and then edit the criteria and the formulas. I think that will keep the formatting, but I am not sure.
  20. Yeah, the custom script would be in Python of (more likely) Vectorscript and the formula would look something like =RunScript(SumIntersection,D,6). But the script has not been written yet. You would have to put a version of the function in every column where there was a layer above. Hopefully next week. My next 4 days are non-stop.
  21. Glad you figured it out. Yes, each database is unique to itself. You have to have the criteria and header row formulas for each database.
  22. What is the criteria you are using for the database without the sub header? What are the formulas for columns A and F?
  23. How do you currently have your textures set up so that they have a name and a number? I have written a custom worksheet script that will return the name of the texture applied to an object in a database row. Take a look at the attached file and see if that help you. Texture2WS.vwx
  24. The =Count() [without criteria] in a database cell will return the number of items in the row. If you are using a SUMmerize tile, it will show the number of subrows that are SUMmarized together. I think I can write you a custom Worksheet Script that will allow you to get what you want. Would this work? Create a database with criteria to give you the symbols on all layers. Create a column that displays the symbol name. Put the layer names in cells above the database in the proper column. Put a custom script that will read the symbol name from the database row and the layer name from the labels above and use that data to calculate the number of symbols on the layer and then return that information into the database cell. If that sounds reasonable, I will see what I can come up with.
  25. Michaels way is probably best, especially if you need to have column labels at the top, but another way is to use multiple cropped viewports. Set the crop on the first viewport to show the first 50 rows, the second rows 51-100, etc.
×
×
  • Create New...