Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by VvierA

  1. Thank you very much for the quick response, Marissa. I learn that trying to 'transfer' the code that was generated by Marionette to a PIO might not be the best idea. Instead - what do you think is the easiest way to make the Marionette Object available in every Vectorworks document as a kind of tool? I'm wondering because I didn't find a way to share the Marionette object other than opening the VW document where it is placed and transfer it by copy and paste to another drawing....
  2. Hi guys, I created a Marionette object and I'd like to convert to a custom plugin. Is there a simple way to do it? Or is it maybe possible to just copy the code of the marionette object and create a custom plugin object manually? Thanks in advance VvierA
  3. Hi everyone, I think data visualization would be a very helpful feature. For my purposes it's odd, that it is not yet possible to combine data visualization with custom class attributes for viewports. For example: We like to use custom class attributes in layout viewports to adjust the graphical appearance of the drawing elements let's say in a floor plan. If I'd like to use 'data visualization' to make something visible, for example special rooms that are tagged with a database, this is not possible. Vectorworks doesn't allow overriding class attributes in viewports with data visualization. Would't it be nice to have both: data visualization AND overriding class attributes. In case of conflicts the data visualization should have priority to overriding class attributes. Or do I miss something? Kind regards VvierA
  4. Well even if you work entirely in 3D you can still have the benefits you mention: If you could choose between '2d plan view' or a '3d top view' or a '3d horizontal section' VW could offer all the different types of views that you need. And all was based on the same 3d model lying underneath. You could even have objects that angle automatically to the view like in 'screen plane'. So the functionality would be the same but there was no need to differentiate between 2d, 2.5d or 3d objects. It was just a matter of implementation. VW usability could be modernized and streamlined without losing anything and maybe even with keeping the compatibility with MiniCAD 0.8 from 1982 ūüėČ
  5. Very interesting, thank you, Kevin. So I completely agree now that screen plane is not the issue here. My suggestion would be to remove all the limitations with snaps etc. in 3d space and layer plane that you mentioned. Once this is done, we could get rid of 2D or 2.5D and work completely in 3D, even with 2 dimensional objects like lines etc. We could keep screen plane for the purposes markdd mentioned i.e. to angle objects to the screen plane in every view of the 3D space. What are your thoughts about this?
  6. Screen plane bothers me, because it keeps crossing my way when I work. For example: when I want to define a symbol, VW asks me, if I'd like to change to selected objects to screen plane if they were drawn on layer plane. If I do not mark this check box something strange happens: the symbol of (in this example 2 rectangles) becomes a 3d symbol. So it's simply not possible to forget about screen plane by not using it. It 'pops' up from time to time and you'd have to think about it and do the right thing. Otherwise unexpected behavior may occur. So maybe it's not the functionality that bothers me, but the way it is integrated into the GUI and the workflows. Do I understand your gripe right: You use screen plane for 2d graphic elements that you use in 3d drawings but that you don't like to be drawn in the perspective view like the rest of the drawing? I would use 'annotations' on sheet layers, but maybe this is to limited or inconvenient for your purposes? So maybe screen plane is not so bad but the integration could be improved so that somebody who doesn't want to use it at all wouldn't be forced to bother with it.
  7. Hello everybody, I'd like to suggest to get rid of 'screen plane' mode. I've been using Vectorworks for 10 years now and never understood the benefit of that option. Maybe I'd change my mind if somebody could explain to me, why it's really important. Kind regards VVierA
  8. VectorMove is quite similar to the built in move+copy tool. There are some minor differences that make it more convenient for the daily work: - Shows a silhouette of the copies before you finish the command (like with the built in mirror tool - don't know why Nemetschek isn't implementing this) - Every time you call the tool it is set to 'move'. No problem with making copies accidentally. - Though it's very simple to make a copy by just pressing the alt-key while moving. - With every hit of the alt-key you can increase the number of copies, so you don't have to use a dialog box or enter a number. (with command key you can decrease the number of copies). I know - this doesn't sound groundbreaking, but I like the approach to streamline the workflows, reduce the necessity to switch between mouse and keyboard etc.
  9. Hi there, I wish, there was a way to stamp an object's database information to it. I know that some local versions like the German (called 'Multistempel' or multistamp) already have this feature, but it doesn't always work properly. So I was hoping that there will be a generic version of this tool. On top it would be nice to gain access to the internal databases also. For example: I stamp the x and y coordinates value of an rectangle right onto that rectangle with the ability to change the coordinates by clicking right into the text in the drawing and editing it. What do you think? Kind regards VvierA
  10. Hi everybody, since Vectorworks 2017 my 'Vectormove' plugin from the developer 'Vectorbits' is not running anymore. I tried to contact Manuel via mail, but he hasn't answered yet. His site vectorbits.org is down. I hope he is doing fine.Does anybody know anything? I'm very sad, because the Vectormove tool is still much more convenient and more powerful than the built in move+copy tool of Vectorworks. Kind regards VvierA
  11. Thank you. As you suggested I traverse the group and simply count the selected objects.
  12. Hi there, I have a simple script and I can not figure out, what the problem is: PROCEDURE test; VAR numsel :INTEGER; BEGIN numsel := Count((SEL=TRUE)); message (numsel); END; run(test); The script shows the number of the selected objects. The problem is: if I run this script from within the annotations of a viewport on layout layer I always get 1 - no matter how many objects are selected. If I run it while having selected objects on a construction layer or even directly on a layout layer the script message shows the exact number of selected objects. Any ideas? Thank you all kind regards VvierA
  13. Thank you very much for the hints, Hippocode. Unfortunately I couldn't solve the problem yet though. Strangely there is no problem, if I select one object. The error happens only if I select more than one. I thought that with "numsel := Count((SEL=TRUE));" I make sure, that numsel is at least 1. There is no error message if I do not select anything and call the script.
  14. I have a script that converts Polygons in a custom object named 'db Allesstempel'. The workflow is: you select one or more polygons, you call the script via menu command, and boom: the script converts the polygons to this custom path object named 'db Allesstempel'. The problem is: It worked fine for a long time but since one of the last VW Updates it does not work within annotations of viewports if I want to use it on MORE than ONE selected polygon. It stops with this error: error on line... SObjectHandle[zaehl] := objectH; ... ZAEHL - index outside array limits: Why does this happen? There is a function "H_FSActContainer", that checks what's selected. This worked fine for a long time, even within annotations. Now there seems to be a problem. Can anybody help? Kind regards VvierA -------------------------------------- PROCEDURE allesstempelkonverter; VAR objectH, newobjH :HANDLE; SObjectHandle :DYNARRAY [] OF HANDLE; numsel, zaehl :INTEGER; FUNCTION H_ActContainer: HANDLE; BEGIN BeginContext; Locus(0, 0); H_ActContainer := GetParent(LNewObj); DelObject(LNewObj); EndContext(0); END; FUNCTION H_FSActContainer: HANDLE; VAR h : HANDLE; BEGIN h := FIn3D(H_ActContainer); WHILE (h <> NIL) & (Selected(h) = FALSE) DO IF Selected(h) THEN H_FSActContainer := h ELSE h := NextObj(h); H_FSActContainer := h; END; BEGIN objectH := H_FSActContainer; numsel := Count((SEL=TRUE)); ALLOCATE SObjectHandle[1..numsel]; zaehl := 1; WHILE (objectH <> NIL) DO BEGIN SObjectHandle[zaehl] := objectH; zaehl := zaehl+1; objectH := NextSObj(objectH); END; {message (numsel,' Z√§hler ',zaehl);} {in der zweiten Schleife werden die Objekte umgewandelt} zaehl := 1; WHILE zaehl <= numsel DO BEGIN IF (GetType(SObjectHandle[zaehl]) = 3) OR {Pr√ľfung ob es ein Rectangle ist} (GetType(SObjectHandle[zaehl]) = 4) OR {Oval} (GetType(SObjectHandle[zaehl]) = 5) OR {Polygon} (GetType(SObjectHandle[zaehl]) = 6) OR {Bogen bzw. Kreis} (GetType(SObjectHandle[zaehl]) = 21) THEN BEGIN {Polyline} { SetPenFore(SObjectHandle[zaehl],45);} newobjH := CreateCustomObjectPath('db Allesstempel', SObjectHandle[zaehl], nil); END; zaehl := zaehl+1; END; END; run(allesstempelkonverter);
  15. @Hippocode The hint with exporting as a script file is really great. It didn't help me to solve my problem, but I think this method can be very helpful in lots of 'programming' situations. And of course I will consider purchasing one of your plugin bundles. They look very interesting too.
  16. @Hippocode Thanks for the helpful and interesting info. Can I ask you how to export a single linear dimension? I haven't done that yet... And another question... Is your tool 'standalone' or do I need to purchase one of your plugin sets? Thanks again, VvierA
  17. Hello, I'd like to have access to a parameter of the built in dimensioning tool: When I activate a linear dimension, object info palette shows mit the length of the dimensioning as a parameter. Is there a way to retrieve this information via Vectorscript or with a function in a spreadsheet report? Thanks for help VvierA
  18. @Miguel The symbol within my PIO has some text that is linked to a database record. I like to read out this info an write it to the PIO parameters of the parent PIO. Why would I do that? In some cases I'd like to edit the database record entries from within a worksheet list. Vectorworks changes the info in the text symbol that is linked to the database accordingly. The problem is: the correlative parameters of the PIO do not change automatically. If the PIO gets refreshed by another reason (for example resizing etc.) the database entries will be changed back to the values that are still 'stored' in the PIO parameters. Therefore I'd like to write a script to sync the database entries to the PIO parameters. Maybe I can work out how to traverse the PIO and how to identify the embedded symbol thanks to Miguel. I'm not a Pro so any additional help will be appreciated very much.
  19. Ok, thanks again. So I can cycle through the objects within the PIO. One of them will be a symbol. You surely have an idea how to identify the symbol and how to get a handle to it? I did some research in the Vectorscript reference but I am still not sure, what to use. Thank you and good evening
  20. Sorry for asking again, but I don't know really how to traverse the PIO to get a handle to the symbol within. I have an handle in an array of handles to every PIO I'd like to check for contained symbols. I thought, I could look 'inside' every PIO with.... ForEachObjectInList(actionFunc, objOptions, travOptions, list) With travOptions = 1 I should bei able to traverse inside the PIO. But what's the 'actionFunc' to get a handle to the symbol inside the PIO? And what do I use vor 'objOptions' and 'list'? Thanks for help again
  21. @Hippocode Thank you for the help. The background is: I can generate a list on a worksheet with the database info of the symbols that are embedded in the PIOs. I can edit the retrieved database info in the worksheet. If the database info was linked directly to the object, Vectorworks would rewrite the data to the object. Because the database info is linked to the embedded symbol and not to the PIO directly this does not work. Therefore I'd like to read out the edited database info and send this info to the parameters of the PIO to match both. I think I'll try this: I can get a handle to each PIO. Then I search within each PIO for the symbol with record information and get a handle to this. With this handle I read out the record entry for the symbol and patch it to the PIO parameters with the PIO's handle.
  22. Hello again, thanks for the help with the other issues. I have a 2D path PIO with an embedded symbol. Does anybody has a clue how to get a handle to a symbol that is nested inside a PIO? I'd like to make another Vectorscript to manipulate the POI objects inside the drawing. Therefore I need to get a handle to the symbols inside the POI objects. Any ideas?
  23. Sometimes you just need to talk about a problem to understand and to solve it. I used GetRField and SetRField to read record data and write it to a parameter. But now there is another problem. Please see my new topic...
  24. Simply in other words: I'm looking for a vectorscript function, that allows me to read out a record field and write it to a the parameters of a 2d Pathobject?
  25. New info: I just found that I can select ALL the objects at the same time by right clicking the row of a list (the first row, that contains the search criteria). Now I have another problem: Each of the listet items is linked to a database record. I'd like to read out the record for each item and write the record entry to the parameter of the item.


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