Jump to content

Zeibin

Member
  • Content Count

    19
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Zeibin

  • Rank
    Greenhorn

Personal Information

  • Occupation
    Student/Intern
  • Homepage
    www.zeibin.com
  • Hobbies
    Architecture!
  • Location
    Vancouver, BC
  1. Zeibin

    PIO in annotations

    What do you mean by "redraw improperly"? I've been having a problem with scale issues, but I believe part of the problem is a discrepancy between the viewport scale and the sheet layer (which is at 1:1). If your plug-in checks the layer scale to draw itself, you need to be sure to (a) check whether it's parent is a viewport (or something like this), and then (b) retrieve and use that viewport's scale. I don't know the exact functions since I haven't hit up this problem yet, but some of the functions I've seen on the VS listserv (this is not working code, just a collection of snippets): code: GetParent(h) GetType(h) iType : = GetType(GetParent(selObjHandle)); 'ForEachObjectInLayer' with 'Visible Objects only' > Anyone know a VS way to get the current sheet layer dimensions? Use GetDrawingSizeRect() with the sheet layer active. Here is a sample of code that I use, with care taken to make sure that layer scale works for all three possibilities (sheet layer, design layer and no layer [edit symbol mode]): IF NOT IsNewCustomObject(gPIOName) THEN BEGIN s2 := GetLName(ActLayer); s1 := GetLName(GetLayer(ghParm)); IF (s1 <> '') & (GetType(GetObject(s1)) = 31) THEN Layer(s1) ELSE s1 := ''; END; GetDrawingSizeRect(dx1, dy1, dx2, dy2); r1 := GetLScale(ActLayer); IF s2 <> '' THEN Layer(s2); PageWdth := Abs(dx2 - dx1) / r1 * 25.4 / gUPI; { page width in mm } PageHght := Abs(dy2 - dy1) / r1 * 25.4 / gUPI; { page height in mm }[/code] Let me know if you make some headway!
  2. Zeibin

    VW CAD management and plug-in quirks

    I want to change the plug-in name because some of my plug-in names aren't necessarily accurate. During development I called the plug-in something, but then later down the road after using it for some time, people get confused when they select what they think if a "Building Section Marker" and the OIP shows "Section Cut Tag." It's just semantics, really, but it has an effect on some people in terms of usability and keeping terminology consistent among our office staff. Same goes for parameter names. I like that I can override the parameter name with the Alternate Name, but it would be nice if I could have that change filter through into my script so that I, or whoever maintains these after I leave this firm, knows what's what and where.
  3. I am currently managing a set of about 20 plug-in objects for an office of about 20 people. I am wondering how people deal with making updates to plug-in objects/tools (like when there are bugs, etc) and distributing these things so that the current files don't break. As an example, you can't change the plug-in name and redistribute it because on the client machines, files will open and look for the original name. The plugin objects won't be editable. Same thing happens if you happen to change the name of a parameter: this is worse because all the existing parameter data gets lost. What other caveats should a VectorScript programmer watch out for? Do you release "versions" of plug-ins and manually update plug-ins? I'm in the position now where I made some updates and now all of our custom building section markers and detail tags have lost their data. And since I didn't keep a backup of the old plug-ins, I have no way of going back. Advice for the future?
  4. I am currently managing a set of about 20 plug-in objects for an office of about 20 people. I am wondering how people deal with making updates to plug-in objects/tools (like when there are bugs, etc) and distributing these things so that the current files don't break. As an example, you can't change the plug-in name and redistribute it because on the client machines, files will open and look for the original name. The plugin objects won't be editable. Same thing happens if you happen to change the name of a parameter: this is worse because all the existing parameter data gets lost. What other caveats should a VectorScript programmer watch out for? Do you release "versions" of plug-ins and manually update plug-ins? I'm in the position now where I made some updates and now all of our custom building section markers and detail tags have lost their data. And since I didn't keep a backup of the old plug-ins, I have no way of going back. Advice for the future?
  5. I would like to be able to vote on some of the wish list items here. I don't know what criteria NNA will use to decide which are good features and so on, but it might help them to see what the community thinks is collectively valuable. Also, it seems some of these things are specific to particular VW packages (Architect, Mechanical, Landmark, etc) and many of those features won't be useful for others. Further, is it acceptable to argue that a particular request isn't worth NNA's time? There are, of course, some serious problems in VW that need to be dealt with, and I think we'd all love to see the bugs and quirks get ironed out before they start adding bloatware features. Further, I just wanted to say that despite all that, I applaud NNA for even having such a list, and I appreciate that they recognize the value of providing these sorts of community tools for their users. As a part-time VectorScript programmer, I've found particular forums invaluable. So, thank you. [ 09-21-2005, 06:45 PM: Message edited by: Zeibin ]
  6. Me neither. OSX 10.4.2 and VW 11.5.1. I've made the entire VW folder (and all enclosed files and folders) Read/Write/Executable for all of the owner, group and other users. I also copied over the VW preferences to the new user (and adjusting the ownership/permissions on those too). Still won't work for other users. I would really, really appreciate it if NNA could make this work out for us. Puh-lease! Puh-lease! [ 09-20-2005, 09:10 PM: Message edited by: Zeibin ]
  7. Zeibin

    beginner's question

    I don't know of an "idiot's guide" anywhere... but this is probably a place to start: http://www.nemetschek.net/support/custom/vscript/ VectorScript is easy to pick up if you have previous programming experience, since it's based on Pascal. If not, the best way to learn is probably by reading VectorScript in other people's freely available plug-ins, using the "File>Export>Export VectorScript..." menu option to see how VW translates what's on screen into VS and back again, and reading this forum. As well, since VS functions are quite explicit in naming, the VectorScript function reference is pretty much indispensible: http://www.nemetschek.net/support/custom/vscript/functionref/VSFunctionReference.html I always have it handy when I'm programming.
  8. I don't think there's any other reason. It's simply the space tool. It's the only real difference between the file that takes forever, and other files that are fine. There are no embedded images and we don't even know what the RenderObject tool is (we don't use VW for any 3D or rendering work). What do you mean by "font reference"? The only font used in this file is Helvetica (of the Mac OS X system font variety). It's a problem with the master reference only, since other files referenced into the target file show no update delays whatsoever. By "object ID conflict" do you mean that two files referenced into a single document may be conflicting with each other? This seems unlikely to me since, as you mention, we also routinely work with comparable files and reference in multiple documents. By "check out the program code" do you mean export to VectorScript? I made a blank file and initiated the reference: ~7.5 minutes. I exported the VectorScript and had a look; nothing looks out of order, from what I can see. Here's a typical space: code: Record(LNewObj,'Space'); Field(LNewObj,'Space','Config','Name Only'); Field(LNewObj,'Space','Name','washroom'); Field(LNewObj,'Space','Number','-'); Field(LNewObj,'Space','Length','5''5.999999999999987"'); Field(LNewObj,'Space','Width','5''9.500000000000002"'); Field(LNewObj,'Space','Proposed Area','140.1'); Field(LNewObj,'Space','Area','31.8'); Field(LNewObj,'Space','Occupancy','Occupant'); Field(LNewObj,'Space','Occupancy Type','Occupancy Type'); Field(LNewObj,'Space','Align','Right'); Field(LNewObj,'Space','Text Rotation','0'); Field(LNewObj,'Space','Decimals','1'); Field(LNewObj,'Space','Underline Name','False'); Field(LNewObj,'Space','Show Number Box','False'); Field(LNewObj,'Space','Calc Dims','False'); Field(LNewObj,'Space','Show Dims','True'); Field(LNewObj,'Space','Show Proposed Area','False'); Field(LNewObj,'Space','Show Area','False'); Field(LNewObj,'Space','Show Volume','False'); Field(LNewObj,'Space','Show Occupancy','False'); Field(LNewObj,'Space','Fill Behind Text','False'); Field(LNewObj,'Space','Show Poly','False'); Field(LNewObj,'Space','Show 3D Detail','False'); Field(LNewObj,'Space','Extrusion Height','0"'); Field(LNewObj,'Space','Volume','0.0'); Field(LNewObj,'Space','Perim','22''6.69999999999999"'); Field(LNewObj,'Space','Name Text Size','8'); Field(LNewObj,'Space','Number Text Size','8'); Field(LNewObj,'Space','Dims Text Size','5'); Field(LNewObj,'Space','ControlPoint01X','-8.170712147064867"'); Field(LNewObj,'Space','ControlPoint01Y','4''6.75843585623141"'); Field(LNewObj,'Space','Matrix Order','848'); Field(LNewObj,'Space','On Schedule','False'); FillColorByClass; LSByClass; PenColorByClass; LWByClass; MarkerByClass; NameObject('400'); DSelectAll; tempHandle2 := CreateCustomObject('Space',0",0",#0.0000000000000d); ResetOrientation3D; MirrorXY3D; Rotate3D(#180.0000000000d,#-0.0000000000000d,#180.0000000000d); Move3D(1662624'10.266787853091957",17880588'4.436008572578431",0"); BeginPoly; MoveTo(0",0"); LineTo(0",5'4.936018543417931"); LineTo(-5'5.937499999999717",5'4.9360185434184"); LineTo(-5'5.937499999999717",0.000000000000054"); EndPoly; objectHandle := LNewObj; boolResult := SetCustomObjectPath(tempHandle2, LNewObj); BeginGroup; EndGroup; boolResult := SetCustomObjectProfileGroup(tempHandle2, LNewObj);[/code]
  9. We have a serious problem with updating workgroup references that have spaces (made with the space tool) in them. The project is fairly large ? approximately 80 units over 10 floors, each having a space associated with them. The file is also quite large: ~10000 objects, 9.8 MB. Each unit also has interior spaces demarked by the space tool to keep accurate labeling (i.e. Dining Room, 10'x12' and so on). This brings the total number of spaces to ~430. Spaces typically only display the room name, room number, and total area or dimensions. Spaces are used for room labeling and generating floor-space ratio (FSR) calculations. Update times for this file (with all layers referenced) are upwards of 10 minutes on VW 11.5.1 on a G5 single 1.8Ghz with 1GB RAM with Mac OS X 10.4.2. System resources used by VW during the update include ~80% CPU, 150MB physical memory and 360MB virtual memory. Even weirder, subsequent updates extend the update time. Yesterday, an update of the file took 7 minutes, deleting the single worksheet and updating again took 10 minutes. Leaving the file untouched and simply clicking update again took 16+ minutes. The longest reported update for this file is 25+ minutes. We have other files (with just a few spaces) that are comparable in size (12000-15000 objects at ~10 MB) that take about 60 seconds to update on the same machine. That's our desired benchmark. (Network effects have been eliminated during all these tests by working from the computer's local hard drive.) After deleting all spaces in the referenced file, update times drop to the expected ~60 seconds. Leaving the simple 80 spaces in the file drops update times to about 2 minutes. -- Why is it that 80 spaces cause the update time of a file with 10000 objects in it to double? Can certain options on the spaces be turned off to alleviate the long update times? Has anyone else experienced this problem, and if so, do you have suggested fix? Thank you so much for any help you might offer. David Zeibin
  10. Zeibin

    Linear PIO: rotation value

    I've been having some problems with exactly that, Alexandre. but I can't figure out when/how the PIO checks for a flip. If I flip it, and IsObjectFlipped returns TRUE, when I adjust the length with my mouse IsObjectFlipped returns to FALSE. But if I adjust the length in the OIP, it retains the TRUE value. How does this work? (The code you supplied here seems to do the same thing. Typically the line is always under the text, but if you flip it vertically (so the line's on top) the line flips back down to the bottom if you adjust the length... What I need is something that retains the line above the text after the flip and after a length adjustment.)
  11. Zeibin

    Crippling Memory Leaks

    We've been having an almsot identical problem using VW11.5 on a G5 1.8GHz with 1GB RAM. This is basically a brand new machine with a fresh system on it. It only seems to happen to one person in the office, howeve, which makes me think it's a file-specific problem. Does anyone have any stats on what effect various things in VW files has on filesize and system performance (for example, worksheets seem to slow down things quite a bit, and make updating references a giant pain; up to 5 minutes extra update time per worksheet). Also, does anyone know how many objects make a VW file "large"? 1200? 5000? 10000?
  12. Zeibin

    VW11.5 is so S-L-O-W.

    We're running VW11.5 on a G5 1.8GHz with 1GB RAM running OSX10.4.1. It's speedy fast at startup and all, but after a few hours of pumping CAD, VW slows to an almost near halt. It's essentially unusable. The rest of the computer's function seem fine though. Sometimes restarting VW fixes it, but most often it requires a full system restart, which is, of course, both time-consuming and annoying. Any thoughts? This is also independent of general "system cleanliness" as far as I can tell. We've tried a full system install from start and the problem didn't go away. Could it be something in the VW files being used? The odd thing is that it's a gradual thing, since when starting up VW at first, it's totally fine.
  13. Zeibin

    Linear PIO: rotation value

    Of course. The way I've done it involves getting that value, truncating any decimal, running the result through a case statement, and performing tasks based on the angle. ------- RotationINT := Trunc(GetSymRot(gMyObjHd)) MOD 360; {fix rotation value for case statement} CASE RotationINT OF -90..90: BEGIN {your commands here} END; 91..180, -180..-91: BEGIN {your commands here} END; END; {CASE} ---------
  14. Zeibin

    "Importing" classes

    There is a post about this already: http://techboard.nemetschek.net/ubb/ultimatebb.php?ubb=get_topic;f=12;t=001885
  15. Zeibin

    Scale-independent plug-in objects

    I think I figured something out: Point PIOs (as a tool) begin to execute immediately when you select them, whereas linear PIOs only began to execute after the user has defined the two points for the linear PIO. Does this sound right? Can anyone verify? Edit: When I make a PIO symbol of this script, it works fine now, since the user doesn't define any points and instead just drags the item out of the Resource Browser. Still, if anyone has resources on the scale-independent PIOs, I'd love to hear from you, just so I can run the appropriate error checks and such... [ 04-29-2005, 03:36 PM: Message edited by: Zeibin ]

 

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.

×