Jump to content

Hans Martin Kern

  • Posts

  • Joined

  • Last visited

Everything posted by Hans Martin Kern

  1. Just off the top of my head - Did you supply a png for the "Keiner" option (even if it's a an empty png)?
  2. If I insert a Door or Window object into a drawing using VW 2023, VW immediately displays blue reshape handles on the Door / Window object and I can start resizing it right away - without an additional trip to the reshape tool. Any hints on how to achieve the same behavior for a SDK-based third party plug-in? I found the extended property "kObjXPropInteractiveSizingInsert" but it looks like it's restricted to door/window use? Any hints appreciated.
  3. Hey @Woodychips, unfortunately, there's no way to parametrically remove the edge banding on the toe kick recess. As you're exporting to Enroute I assume your design is almost done so it may be worth your while to actually ungroup (a copy of) the cabinet object and turn off the the edge banding for the toe kick recess in the left & right side of the cabinet.
  4. One of our plug-ins is automagically exporting symbols to a library file using virtual bool VCOM_CALLTYPE ExportResourceN(MCObjectHandle resource, IFileIdentifier* pFileID = nil, TImportResourceConflictCallbackProcPtr conflictCallback = nil) = 0; Works like a charm. Users have requested that we should export the symbol into a resource folder within the library file - so the structure of the library file is somewhat "tidier" and easier to work with when they open it up for maintenance purposes. Is there a way to accomplish that with the SDK?
  5. @VW Inc. - maybe there is a special GS_Kludge call to give VW some time to actually close the document?
  6. You can find instructions on installing the dialog builder at https://developer.vectorworks.net/index.php/SDK:Dialog_Builder There's also the option to create the dialog layout with the SDK functions supplied, just scan ISDK for functions like Create... and SetBelow... / SetRight...
  7. Haven't seen this one. Off the top of my head - Is it a master snap in disguise?
  8. Pat - thanks for checking the issue in a different version. I verified it using the different version, too. Looks like I'll hold my breath... 😉
  9. Tried it with a stock Vectorworks 2020 SP4 US - same problem. Record720.mp4
  10. Yup, I'm using the localized German version. Good point - I'll try with a stock VW US version tomorrow...
  11. Units are the same in both files. In fact, I do create them both from the very same template file. Same result with text field. The same effect can be triggered if I create a record format manually in both files.
  12. Thanks for reaching out, Jushua. In fact, that's what I did. I assigned the record format to an object in file B. Both record formats are structurally identical as they were created from scratch by the code snippet posted. I have not touched the record formats after creation by any means. They are identical. So my conclusion is that there has to be some hidden ID / timestamp attached to the record format which makes the record formats different.
  13. I create a VW record format in document A with the following code snippet if (! VWRecordFormatObj::GetRecordFormat("SomeRecordFormat")) { VWRecordFormatObj recordFormat("SomeRecordFormat"); recordFormat.AddParamCoord("SomeParam", 0.0); recordFormat.SetLock(false); recordFormat.SetFormatVisibility(true); } and assign the record format to a VW object in document A and enter some value for "SomeParam". Then, I open up a new document B and create a VW record format in document B with the very same code snippet shown above - so record format "SomeRecordFormat" is structurally identical in both document A and B. Now, I try to copy / paste the VW object with the associated "SomeRecordFormat" data from document A to document B. Vectorworks brings up a dialog complaining about the record format ("SomeRecordFormat") already being contained in document B and asks if I would like to replace, merge, rename the record format or continue using the existing record format. Is there a way to "convince" VW that the record format in document A and B are the same and that it should not bring up the aforementioned dialog? Looks like there's a hidden unique ID or a time stamp attached to the record format?
  14. Stephan, Here's how I would tackle this: class SomeClass { public: SomeClass(); private: IEnergyBuildingElementWinDoorExPtr m_energy_2021; } SomeClass::SomeClass() : m_energy_2021(IID_EnergyBuildingElementWinDoorEx) { // If querying the interface fails for some reason, m_enery_2021 would be nullptr } The default destructor of SomeClass() will take care of releasing the acquired interface. Even if you create your own destructor, m_energy_2021 will still be released. So, to the best of my knowledge, there's no need for you to manually release it.
  15. A dialog of ours displays a list browser with a list of choices. Users can double-click on one of the items in order to select AND close the dialog right away. This is implemented in the dialog event handler function by if (itemHit == -kListBrowser) itemHit = kDefaultButtonID; This was working fine on both platforms for years, but with VW 2020, the code is no longer working on Windows (macOS still works fine). Is this a regression or do we need jump through more hoops due to the new editable list browsers?
  16. Thanks - great idea, will try that one. Maybe we should encourage VW, Inc. to deliver a VW.app bundle with the get-task-allow entitlement alongside the SDK to avoid this "all-or-nothing" workaround?
  17. I found that Vectorworks 2020 uses the the "disable-library-validation" entitlement, so plug-ins should load and run (for now). However, it looks like it is lacking the "get-task-allow" entitlement, which enables debugging the plug-ins with Xcode debugger (at least on 10.14.6, lldb can no longer attach to the Vectorworks 2020 process). Any pointers?
  18. macOS Catalina requires code to be signed and notarized. Does this apply to Vectorworks plug-ins, too? Or does VW use the disable-library-validation entitlement? Any hints would be greatly appreciated.
  19. Well, in my particular setting, the dimension would be contained in a plug-in object, so I'm not concerned about the user messing with the dimension - but your suggestion "fake it using the leader text" is certainly a good one - thanks a bunch (didn't see the forest for the trees).
  20. Hi, I've been searching high and low both in ISDK and in the Object variables for an SDK equivalent to VectorScript's SetDimText() function (http://developer.vectorworks.net/index.php/VS:SetDimText). Any pointers? I think I'm not seeing the forest for the trees here. Thanks! Basically, I would like to create a linear dimension object and modify the value displayed by the dimension object afterwards. Of course, I could dive head-first into the dimHeaderNode and navigate to the text node, but I'm wondering if there's an official way to do it.
  21. The engineers are working hard on interiorcad 2018 - We hope to get it out to both our international and German speaking customers in late October / early November. I'm not yet allowed to talk about the feature set but will post more details / a URL here as soon as I'm allowed to ;-)
  22. Patrick, thanks for the hint. However, this leads to the inevitable question: How do rotate a custom-object without taking the current view into account? Coming from an SDK background, I would expect to set the custom object's 4x3 TransformMatrix and I'm done. HMK
  23. Patrick - sure, here it is. Just for fun, I try to create & rotate a "Screw and Nut" custom object. RotatingScrew.vwx
  24. All, I'm trying to get my feet wet with creating Marionette nodes to support @Stephan Moenninghoff's endeavours. As you would expect from an old fart I run into all kinds of problems, so please feel free to hit me with a rolled-up newspaper if my questions are way too basic. My first "project" is a node creating any kind of custom object (code below). I tried both interiorcad's objects and stock VW plug-in objects. Works beautiful. If I route the custom object created by my node through the stock "Set 3D Rotation" Marionette node, the object is not rotated. I'm sure I'm missing something obvious here - any hints? Thanks! HMK == @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): #APPEARANCE #Name this = Marionette.Node( "Create Custom Object" ) this.SetDescription('Creates a custom object') #Input Ports universalName = Marionette.PortIn(0) universalName.SetDescription('The universal name of the custom object') position = Marionette.PortIn(0) position.SetDescription('Insertion point of object instance') rotation = Marionette.PortIn(0) rotation.SetDescription('Rotation angle of object instance') showPropertiesDialog = Marionette.PortIn(0) showPropertiesDialog.SetDescription('Show the object''s properties dialog') #OIP Controls #Output Ports object = Marionette.PortOut('hObj') object.SetDescription('The resulting object instance') #BEHAVIOR def RunNode(self): #inputs universalName = self.Params.universalName.value position = self.Params.position.value rotation = self.Params.rotation.value showPropertiesDialog = self.Params.showPropertiesDialog.value #script customObject = vs.CreateCustomObjectN(universalName, position[0], position[1], rotation, showPropertiesDialog) #outputs self.Params.object.value = customObject
  • Create New...