Jump to content

Jesse Cogswell

  • Posts

  • Joined

  • Last visited


765 Spectacular

Personal Information

  • Location
    United States

Recent Profile Visitors

5,616 profile views
  1. I downloaded the file and opened it up this morning, but it appears to be completely empty. No objects found in the drawing and nothing in the Resource Manager. This could be because I do not have ConnectCAD on my machine, though the typical way for Vectorworks to handle this would be to have the objects but not allow them to be editable. There is a "hidden" parametric record for a Circuit object, which has fields for __Src_ID and __Dst_ID, so it tells me that there is some internal ID method for tracking ConnectCAD objects and that there likely is a similar field in the Panel Layout object. For your knowledge, any field starting with a double underscore (__) will not populate in the Object Info Palette. It's very useful for storing data that doesn't want to be "front facing" for direct user interaction. Unfortunately, without having access to a drawing with linked ConnectCAD objects, I can't help you too much.
  2. I have some bad news for you. The Update From Schematic button that you see in the Object Info Palette is hard coded into the Panel Layout object itself and can't remotely be triggered. You would need to create a menu command that replicates what the button does. I do not have ConnectCAD, so I can't tell you what it is doing or how to do it. I imagine based on your description that when you press the button, it searches for the linked Schematic Socket object (likely using the Socket's UUID or some other unique token), then pulls the relevant data from the Socket, then uses SetRField to update the fields of the Panel Layout before using ResetObject to refresh the Panel Layout. It sounds like you have made attempts to use SetRField and ResetObject, but you may be missing the step about using GetRField on the Socket to pull the updated panel name and connector tag first. So to answer your questions: There is not. You might ask this question on the ConnectCAD subforum. There is a chance that they might have a workaround. In this case, Python would not help. Python is great for managing data and using external libraries for things like accessing web data, but when it comes to interacting with Vectorworks, the current Python implementation is restricted by the Vectorscript functions, as all VW interactions are handled with the vs Python library, which is an exact duplicate of the Vectorscript function library. So things like ResetObject(h) instead become vs.ResetObject(h), but there is no added functionality, and in some cases, there is reduced functionality since Python can't pause itself and wait for user input like Vectorscript can. That all being said, if you post a drawing with Schematic and connected Panel Layout object, I might be able to look at the records behind the objects to see if I can help you out.
  3. I think you should file this as a bug. I did a little bit of testing, if I have a multi-line text box that doesn't have any extra lines / returns at the bottom, I am able to "click in" the cursor anywhere I choose through either double-clicking or by clicking on the text box while the Text tool is active. But if I do have empty lines at the end of the text box, I can't get the cursor to be anywhere but the empty line without moving the cursor with the arrow keys, and if I click anywhere in the text box after moving the cursor, it will snap back to the bottom empty line. I cannot fathom that this is working as intended.
  4. I very much agree with @grant_PD. Lighting design is very detail oriented and the AI doesn't parse Vectorworks geometry. It doesn't know where hanging positions are or what kind of lighting fixtures you have at your disposal. Lighting very much operates in the world of reality (as we like to say, physics: not just a good idea, it's the law!), and AI as it stands now doesn't need to adhere to this reality. The very last thing I want to do is put a rendering in front of a client that looks nice but isn't achievable. This is already tricky with the difficulty of getting "accurate" lighting in Renderworks or Redshift renders using the Spotlight Lighting Device PIO. I'm very much dreading the day that a scenic designer presents a rendering of their set made with this tool with all kinds of crazy lighting, and the director turning to me and saying, "I want that. Make it look like that." And I know that day is coming. I think that including an AI visualizer like this in a design oriented piece of software is irresponsible at best and down right unethical at worst. @mjm pointed out an instance where using the AI visualizer resulted in a an artist's signature being present in the rendering. This introduces all kinds of questions about what this tool is using for training data and whether the originators of that data have been compensated. I was pretty well horrified when @Luis M Ruiz posted ideas for what was obviously the scenic design of a production of The Lion King done with providing the geometry of an empty stage and generating the rest from text prompts. In no uncertain terms, the resulting renderings were an amalgamation of other artists' work. There's already a major argument about intellectual property in the theatrical design world, with a theatre company a couple of years ago getting caught basically ripping off Broadway scenic designs. Now you've just baked in a conduit to do exactly that, standing behind the ruling that you can't copywrite an AI generated image (but your AI generated image can absolutely be based off of some one else's intellectual property). Even these lovely sci-fi images that are the topic of this thread contain prompts strictly calling for specific artists' styles. This all being said, I actually do want to see AI integration in Vectorworks, but I'd rather it automate the mundane and repetitive tasks rather than the most enjoyable and creative part of the process, as @Jeff Prince alluded to. I would love if I could tell VW to dimension a Viewport. Or if I could tell VW to make sure that all of the symbols in a folder have geometry set By Class and in the correct class so I don't have to go through them one by one. Or have VW add a text label linked to a record at the center of all selected symbols. Or add keyed notes to selected sheets and make sure that the legends all match. Or go through all of the selected objects and vary the horizontal and vertical offsets of this wood texture so that they don't all exactly match (or better yet, build some decent non-repeating wood textures). All of the crap that we spend hours needing to do by hand instead of getting to actually design things. I do also see some use with the AI visualization engine, but mainly when you provide a decent amount of geometry and drop the Creativity slider a bit. @Luis M Ruiz produced some stunning images by providing a hidden line drawing and asking the AI to make it look like a charcoal sketch or an oil painting. I think using the AI as an extension of something like the old Artistic Renderworks options is a fantastic idea. I talked to an exhibit design firm about this at length a couple of weeks ago. They were using an external AI visualization engine that they had trained using artwork from designers from the firm. They had found that a lot of clients were turned off by 3D renderings early in the process, since they believed that once it had been committed to a 3D model that it would be too difficult to change. So they started to make fairly simple hidden line geometry then fed it through the AI to make it look like their own "sketchy" style. But in this instance, they had strict control of what the AI was using as training data, something we don't currently have in Vectorworks. It really does feel like Vectorworks is chasing a trend here, but believe enough in it to risk their software for it (VW2024 Update 4 anyone?). I'd much rather see stacked wall components, a stair and railing tool that doesn't make me want to pull my hair out, finished cabling and power planning tools, and a copy of Vectorworks bug free enough that I feel like I can safely adopt it the year it releases. PS - Apologies to @Luis M Ruiz for standing on a soap box in the middle of his thread. The images are indeed quite lovely, but I do question the ethics behind them in a design oriented piece of software.
  5. Because I don't know to leave well enough alone, I made a couple further changes to this plug-in. Don't worry, unless something is broken or someone wants me to add some crazy cool feature, this one is likely finished. The dialog will now remember the Show Hidden Records choice after pressing OK. This means that if you want to update your record data for a PIO, you won't have to recheck the box and reselect the Record Format, the dialog will automatically load your previous selection. After I did a test for a user trying to link to a Lighting Device (whose record has 100+ fields), I decided to revamp the Check Mismatch button. Before, it would launch an alert dialog for each missing record field, which was fine on records with only a couple fields, but is incredibly obnoxious when you have a hundred or so. It now launches a dialog box with a multi-line text box, so you can copy and paste out of it in case you need to really check for spelling/capitalization/extra spaces. Installation remains the same as described above. Link Worksheet to Record.zip
  6. Good morning, friends. I made some adjustments to this plug-in based on feedback from @BartHays. The changes are as follows: When Multi-Column is selected and Text Box children are created, their position will initially be locked to the parent Text Box, matching the top of the Text Box and spaced using the Column Spacing parameter. When locked in such a matter, moving the parent will also move its downstream children. This can be turned off by unchecking the Lock Position to Parent checkbox in the Object Info Palette. When you are using bulleted or numbered lists, Bart noticed that if a box was split in the middle of a listed item, it would start a new item in the next Text Box, eeven if it wasn't supposed to. I couldn't find a way to automatically detect if the split was in the middle of a listed item versus between listed items, so I just added an Override List at Start checkbox in the Object Info Palette, which will override the listing rules for the very beginning of the Text Box. This will only appear if the split was in the middle of a list. Speaking of listed items, in the original object, all listed lines would be automatically tabbed in. This looks fine for text boxes justified left, but looks goofy for any other justification. There is now a checkbox in the OIP called Tab in List Formatting. Unchecking this option will not tab in for listed lines. Installation instructions are the same as listed above. If you already have the object installed, following the instructions above should write over the original object. Let me know if you experience any trauma. JNC-Text Box.zip
  7. I wrote a script that can link a worksheet (including a referenced Excel document) to a record format, as detailed in this post: I have since added a feature to allow the user to select the record behind parametric objects such as Lighting Devices, download link can be found here: @Company Call BV Here's why this is relevant to you: you should be able to use this command to link an imported worksheet with patch data to the Lighting Device record to patch your fixtures. I ran a quick test by exporting a .csv from an Eos show file and used it to patch some fixtures. The key here is that the top row of the worksheet must be column headers and must match the parameters of the Lighting Device object (easily found by going to File - Document Settings - Spotlight Preferences and selecting the Lighting Devices: Parameters tab). Example patch worksheet and fixtures. Columns to sync are colored red: Selecting the proper options in the Link Worksheet to Record dialog box: In this example, I used the Channel field as the key. With this plug-in, this process will only really work if you have a single fixture per channel, otherwise it will very likely make all matching channels match whatever is the lowest matching row in the worksheet. In this instance, I would very much recommend not clicking the Check Mismatch button, since it will list out all of the parameters of the Lighting Device object not found in the worksheet (which is very likely a lot of them). Result from running the command: Give this a shot and see if you can make it work for your use case.
  8. Good morning, friends. I made a quick revision to the Link Worksheet to Record command linked above. I added a checkbox to Show Hidden Records. This lets you link a worksheet to the parametric records of Plug-in Objects, which should allow for you to more easily control parametric objects using worksheets. Download instructions are the same as listed above. Link Worksheet to Record.zip
  9. Any movement on this? This has been a huge bummer for sharing scripts for users. I have to either post the code directly with extra spaces inserted and instructions to remove them, or I have to encrypt the plug-in so that the combination of letters doesn't directly appear, which is less than helpful if someone wants to see the code behind the plug-in for modification / learning purposes.
  10. I wrote up a quick little script that will do this for you. It requires that you have more than one Text object to be selected. When the script is run, it will create a database of all currently selected Text boxes within the current parent container (Group, Symbol, Viewport Annotation, or Layer), sort them by Y dimension, and then add the contents of the Text boxes to the top-most Text box and delete the originals. Test Objects: Resulting Text Box: Keep in mind that the resulting multi-line Text object will have the same formatting as the original top-most Text object, the other Text objects' formatting will be forgotten. This includes things like Wrap Text and Width. Normally I would just post the code itself since it's so simple, but because it uses the dreaded combination of characters to add the carriage return, I've instead just attached the menu command .vsm itself. Installation instructions are as follows: Download the attached Combine Text Boxes.vsm file Place file within your User Folder in the Plug-ins folder To easily get to this, open up your Vectorworks Preferences Go to the User Folder tab Click on the Explore button (Windows), or Open in Finder button (Mac) Restart Vectorworks Once restarted, you will need to add the script to your workspace. Go to Tools - Workspaces - Edit Current Workspace Select the Menus tab In the box on the left, navigate to and expand the JNC category In the box on the right, find a menu you'd like the command to be placed in, such as Modify or Tools or Text Click and drag the Combine Text Boxes command from the box on the left to the desired menu in the box on the right. Click OK to accept the changes and close the Workspace Editor. Let me know if you have any trouble getting this to work or if is produces unexpected results. Combine Text Boxes.vsm
  11. Some difficulty comes depending on which fields you are updating and which version of Vectorworks you are using. For instance, if you are trying to change the Symbol field of the Lighting Device and are using VW2021 or newer, you need to update both the 'Symbol Name' field as well as the 'Symbol Definition' field with the new symbol name. The other very important thing is to include a ResetObject command for the chosen Lighting Device after changing fields using SetRField so that the new values take to the Lighting Device. And also include an ApplyLightInfoRecord command if you are using a script to change Lighting Device instrument types.
  12. This means that something other than a Title Block Border object is named Title Block Border. Make sure that you don't have a symbol, style, or class named "Title Block Border". Vectorworks uses a single naming pool for ALL objects in a drawing aside from Layers. So you can't have a class named "Wall" and also have a Wall plug-in object in the same drawing. I keep this organized by grouping my classes together (walls are in Facility-Wall, title blocks are in Sheet-Title Block, etc) and by adding "Symbol" or "Style" at the end of my symbol and style definitions (as in "Title Block Border Symbol"). If you are having a hard time identifying what object is creating a conflict, you can use this plugin to determine what object is currently named "Title Block Border":
  13. Texture mapping in Vectorworks isn't the most friendly, even with the newish Surface UV tools. You are mostly correct. When you set up the texture, there is a section of the dialog box marked Size. This refers to the width of the texture. In this case, this wants to be the circumference of the sphere that you've made. If you don't know the exact width of the image, but want to instead specify the height or some other piece of image itself, you can click on the Set By Image button and draw a line over the image and specify what the length of that line. Vectorworks will use that to compute the width/size. However, even if you don't set this, you can still "scale" the texture on an object by object basis (but only symmetrically, you can't stretch the texture or change its aspect ratio). When you apply the texture to an object and open that object's Render tab in the Object Info Palette, you will see a Scale parameter and a slider. You can then change the scale of the texture for that object. This means that you could have one Earth texture, but apply it to different sized globes, though you will need to compute what the scale difference between the object and the texture. There is currently no option to automatically scale the textures to fit the object. A script could be written to do so, and it's a feature on a number of my plug-ins, but the Vectorscript texture commands are pretty limited, and I think it might be too difficult to write a catch-all since there's no way to specify faces of objects in VS. The auto size on my mine are written very specifically to the objects, and they are mostly extruded rectangles, so the computation is dead simple.
  14. Those settings will pull from the value of the Color parameter in the Object Info Palette, not the color in the Attributes pane. Being that the Diablo is a moving light, you likely don't have information in the Color parameter, but I'm betting that you put a gel color in there (like R3310 to get at least close to the color you specified), the pen will change to match. The option that you will want to pull the pen color from the class settings would be to select Object attributes instead of Color field.
  15. @Niccinator I looked into extending functionality to Referenced Viewports this morning, and I don't know if it will be possible. Referenced Viewports are not exactly Viewports per se, but a Plug-in Object called "NAA_DesignLayerViewport", so the standard Viewport functions may not work on them. The larger issue is that I would need to pull classes and layers from an external file. I know how to do that, but not how to get the full path to the referenced file, just the filename. I would also likely need to write a completely separate plug-in for this, as the process for getting and storing classes and layers are completely different between external files and the local file, as I'd have to generate a new list of classes and layers based on which viewport was selected. I am a little busy for this upcoming week, but am planning on taking some time off later this summer and could look further into this at that time.
  • Create New...