Jump to content

Pat Stanford

Moderator
  • Posts

    12,718
  • Joined

  • Last visited

Everything posted by Pat Stanford

  1. What fonts are you using? The kerning on even the standard text looks odd. Do you have Sketch Rendering turned on?
  2. A one line Vectorscipt of: FlipHor; with unclip or reflip a text (or any other object). I don't know if that will work for your need or not, but I worked on a text block that was flipped (mirrored actually) with Adjust Flipped Text turned off.
  3. When you ungroup you should get three objects. A bitmap of the PDF, a rectangle the size of the page, and a group with whatever vector information is in the file. Delete the bitmap and rectangle. The group may well contain other groups of objects. Many PDF files are not vector based and you will get almost nothing of use from ungrouping the PDF. Or you may get luck and everything you need will be there. You may want to scale the PDF before you ungroup it to get it close to real scale. Find something that you know the dimension of and use the Symmetric By Distance mode of the Scale.. menu item to measure what is there and type in the correct size. Since you probably can't snap exactly on the PDF, you may need to scale again after ungrouping.
  4. The dialog box looks like it is from a worksheet script, not from the Marionette. And yes it is normal when you run worksheet scripts. Any scripting language has the possibility of being malware. The risk of something bad increased substantially when Python was added as a scripting option because it could much more easily access the entire file system than Vectorscript ever could.
  5. Vectorworks actually has three different places things can be stored. The Application folder (where you looked) which is recommended to be used only for things that ship with Vectorworks as a future upgrade may overwrite them. The User Folder, and the Workgroup Folder. Unless you are working with others and specifically need to set up things to be shared, you will not need to worry about the Workgroup Folder. The user folder is found on your Mac at the path Your User Name:Library:Application Support:Vectorworks:2020: and then the Libraries path you specified above. Tamsin gave you the short way to find it. When you save templates, workspaces, etc. they save to the user folder so you don't have to worry about them being overwritten in the Application folder. You may also want to edit your profile to include your system information and VW version as a signature to make it easier for us to help you in the future.
  6. @Neil Barman Can you please shoot me a file with some Stories set up in it so I don't have to make a test file. Thanks.
  7. Ah, scope creep. 😉 You didn't mention that you wanted them sorted. But I think we can do that also. Let me see when I can get to this.
  8. Redraw required? Or can you use a ResetObject at the end of the script? When you confirm which call the docs are backwards on, let me know and I will file a documentation bug on it.
  9. The way images are shown in worksheets depends on the class visibilities when the worksheet is recalculated. When you convert from 2019 to 2020 the images have to recalculate. If you have a bunch of classes set to invisible when you do so then it is possible that the images will show as the do in the drawing, i.e. they don't show because they are invisible due to their class settings.
  10. It works for me. In the attached movie I cheated. I have already created the inner polygon that hits the outside of the roof at approximately 15 feet. I created that poly by drawing a couple of large rectangles, One for the main building and one for the bump out. I moved them up 15-feet and then in Left/Right/Front/Back mode I adjusted the edges to match the outside surface of the roof. Here are the basic steps I did. 1. Created the two polygons. 2. Selected the outside polygon and Create Roof with a slope of 80°. 3. Switch to Top/Plan View. 4. Send the Roof to the Back. 5. Select the Roof and the inner Polygon. 6. Clip Surface. 7. With the inner polygon still Selected I Create Roof with s slope of 15°. 8. Switch to Left Isometric View 9. Add Texture to both roofs and render in OpenGL. Note the inside of the lower roof is incorrect. I can't find a way to keep it a roof and have a horizontal cut at the top. So there is a vertical cut on the inside that removes too much until it exits the thickness of the roof. For an external model this is not too bad. If you really need the model correct you will probably have to use the Split tool and deal with the lower section not being a roof but rather a CGS Solid. Roof With Different Slopes.mp4
  11. I would like to be proven wrong, but I don't think there is a way to collect mouse clicks/points to use in creating a new Marionette object. Marionette creates Objects that display on the screen, Menu items, that can create objects or modify existing objects. But it does not (yet) create tools that can gather data and use that to generate objects. You can probably build it using a default size and display control points on screen than can be manipulated with the mouse to change to the size you want. @sbarrett Please prove me wrong.
  12. It sounds like a class visibility problem. If the internal components of the instrument are in different classes than the instrument itself AND those classes are not visible, then obviously the object will not be visible. With most relatively complicated objects (doors, windows, instruments, etc.) the objects coming from the VW libraries almost all have multiple classes to the internal objects. The Active Only class visibility setting is not useful in most cases any more. Set the visibility of all your classes to Visible and your Class Options to Show/Snap Others and I bet your instruments will appear.
  13. All of the vectorscript calls to report on stories seem to exist. It should be relatively easy to modify my script that reports on all of the fields in a PIO to report all of the stories in a file. Can you specify exactly what information you want to report on each story and the order you want it reported in? It will be a script that will collect the data and write it into a fixed worksheet. The way it works now is that a new worksheet is created and named to include the date and time each time the script is run. It could be modified to overwrite the existing worksheet data and reuse the same worksheet is you know what you want it named.
  14. You can draw any object and use the Modify:Guides:Make Guide command. This changes the class to Guides and locks the object so it is not accidentally moved. You should probably also take a closer look at the various snapping features as @Boh suggested. Using snapping you can get the first point where you want it and then use that to align the others without having to make Guide objects.
  15. That is a very nice function, but I would still like to be able to access and edit Marionette data directly from a worksheet.
  16. @michaelk This is your script. You want to take a look. It looks like you followed the function descriptions in the manual directly, but I think either GetClOpacityN or SetClOpacityN are wrong in that the Fill and Pen are reversed between the two in the Function Reference. @TD-Ben Since the object had to be in the Class originally, I don't understand what you mean about the object not getting added to the class?
  17. Do you want just the data in the viewport or do you want the room to be shown and also to show the data? You can probably come up with a worksheet to use as a template that will read records attached to each item that contain the information. You would also need to attach records to each of the objects to get the data into the worksheet the way you want. And you will probably need to use a Crop Object with a name in each viewport to limit what is listed in the worksheet to just what is shown in that viewport. I am thinking you will need a different record format for each sub category you want in each category. Each category would then be a different Database row in the worksheet. The Venue information could be attached to the Crop object for the viewport. Everything you want in the worksheet will have to have an object on the drawing. You can use a single worksheet as a template and then duplicate it for each viewport. We can set the database criteria to let you enter the name of the crop object into a cell on the worksheet (you will lose the ability to use the criteria editor and will have to edit criteria manually) so that the worksheet will only show what is appropriate for that viewport. If this sounds at all reasonable and you want to proceed, ask again when you need more help.
  18. Here you go. This may be a case of be careful what you wish for. The following script clears the Follow Top Wall Peaks for every component of every Wall Style in the document. If you catch it immediately, Undo may work, but no promised. Change the False at the end of Line 13 to True and edit the dialog message to create a version that Checks the box for all components of each Wall Style. Good Luck. Procedure ClearWallStyleComponentFollowTopPeaks; {DATE GOES HERE} {©2020 Patrick Stanford pat@coviana.com} {Licensed under the GNU Lesser General Public License} {Clears the Follow Wall Top Peaks check box for every component of every Wall Style in a document} {} {No Warranty Expressed or Implied. Use at your own risk. Backup. Backup. Bakcup. Then Backup again.} {Very lightly tested. Do not use on irreplaceable data. Here by dragons. Do not drive or operate} {heavy machinery while using this script. If symptoms last for more than 48 hour consult a doctor.} Var ListID, NumItems, L1:LongInt; Procedure ProcessStyle(TheStyle:Handle); Var MaxComp, CompNumber:LongInt; B1:Boolean; Begin B1:=GetNumberofComponents(TheStyle,MaxComp); For CompNumber:=1 to MaxComp do Begin B1:=SetComponentFollowTopWallPeaks(TheStyle,CompNumber,False); End; End; Begin ListID:=BuildResourceList2(127,0,'',NumItems,False); For L1:= 1 to NumItems do ProcessStyle(GetResourceFromList(ListID,L1)); AlrtDialog('Follow Top Wall Peaks cleared for all components of all Wall Styles.'); End; Run(ClearWallStyleComponentFollowTopPeaks);
  19. In Vectorscript the following will get you a handle to a script object in the current file. I have not figured out how to get the text out of the object to be able to run it. I don't think there is a way to run Vectorscript, but PythonExecute should work IF you can find a way to get the text out of the handle to the object. Procedure Test; Var NumItems, ListID:LongInt; H1:Handle; S1:DynArray of Char; Begin ListId:=BuildResourceList2(49,0,'',NumItems,False); AlrtDialog(Concat(ListID,' - ',NumItems)); H1:=GetResourceFromList(ListID,1); AlrtDialog(GetName(H1)); End; Run(Test); Procedure Test; Var NumItems, ListID:LongInt; H1:Handle; S1:DynArray of Char; Begin ListId:=BuildResourceList2(49,0,'',NumItems,False); AlrtDialog(Concat(ListID,' - ',NumItems)); H1:=GetResourceFromList(ListID,1); AlrtDialog(GetName(H1)); End; Run(Test);
  20. Probable that Group does not change LNewObject. Try the Waldo Method. Insert Locus, LNewObj,GetPrev(LNewObject), Delete Locus. I think this was originally disclosed by @Gerard Jonker back around 2002.
  21. It seems to work here. Procedure GroupBB; Var X1,Y1,X2,Y2:Real; Begin GetBBox(FSActLayer,X1,Y1,X2,Y2); AlrtDialog(Concat(GetTypeN(FSActLayer),' - ',X1,' - ',Y1,' - ',X2,' - ',Y2)); End; Run(GroupBB);
  22. Are you sure that the class you set to invisible is not the active class? The active class and the active layer are always visible regardless of the visibility settings. Does the trim disappear in 3D when you set the class to invisible? If not, perhaps the trim is in a different class than you think.
  23. Probably best to repost this in the Wishlist Forum. More likely to be seen and considered there. But it is a very good idea.
  24. I don't think you can do it with the built in Tag. I think that lack of flexibility was one of the driving factors for the Tag Tool as a separate object.
  25. Try separating them by commas instead of double periods. =SUM(B2, (B3*2), (B4*3))
×
×
  • Create New...