Jump to content

Assembly

Member
  • Posts

    430
  • Joined

  • Last visited

Everything posted by Assembly

  1. Again Thanks to Everyone. I have written in testing procedures to report back on what is happening. It is strange. If i double click on the PIO tool I can create the object in a file, and I can edit the object. If I click inside the drawing then I get a Crash. This is the revised code. http://pastebin.com/Yf0FZGn7 This is the returned testing file. http://pastebin.com/GiFjYJS3 Orso. Thanks for the list of things to test. It seems I get locked on the first instance. Double click on Tools Palette is okay. Placement in the Drawings Crashes VW Once in drawing I can edit- the editing updates the Testoutputfile. I can Duplicate- the Duplicate updates the Testoutputfile. I can cut and paste a generated object into a new file- This updates the testoutputfile. Changing the PIO object Reset on Events makes no difference I can create by double clicking tool pallet but not on clicking in the drawing. AHHHHH HA!. If I comment out the GetView and SetView it works!. I think I found it!!!. Well at least the testing procedures have been really useful to see how the code executes. Again thanks to those who helped me out.
  2. Thanks for the help on this... Let me outline the broader picture of this. None of the PIO will be used inside walls, they are stand alone 3D objects. This is not using paraent Child PIO's. I do a lot of 3D Geometery scripting. I am working on a 3D detailing tool. There are many components to be created and moved into place. Things all have in common, is that 1) Objects are create at the origin, rotated to Correct Orientation, then moved to place. 2) All but a few 3D objects are extrudes. I don't fully understand Object Oriented Code, I do like the idea that you can pass something to an object and get a result with out needing to get down into the subcode. Considering both above, the only difference in most of my 3D objects is the profile. Thus I want code where I can pass the handle of a profile into a function to get a 3D object result. I fly solo on my code thus I am lazy on commenting. To me the structure is logical thus as Joshua pointed out my Function Names do a lot for my commenting. I really do appreciate Joshuas assistance and suggestion, however while this will make this object work it is not the solution that fits my strategy. I take on the variable comments and will work this back through the base code to separate from the Globals. I have used this code base through some pretty complex Menu tools. It is when I move the code into a PIO it locks up on the Create3Dobj(h: HANDLE; z, dZ: REAL): HANDLE Following the Debugger the code does pass through this function 5 times before it crashes. It is almost as if it is the final stage just as the screen is about to regenerate that it hangs. I will refine the code down to an easier read and debug a couple more times and provide more detail. Thanks everyone.
  3. Joshua, Thank you very much for your time to look at this... but changing the functions to procedure is not what I'm after here. I have very good reason why I have structured the code this way. The hXtrude as a function that you pass a profile to means all the code developed can be reused for any and every shape that exists. If I want to create a new Aluminium Window profile all I do is $include the long list of functions, then code up the drawing of the profile get a handle to it and I have my three d Shape. I have a parsing script that converts a list of drawn symbols into code. (BeginSym and EndSym are replaced with Function (Symname):Handle). Thus I can very quickly draw profiles, convert it into code and make a PIO. The help I want is not for the code to be rearranged. Specifically I want to know why when the same source file is $included into a menu function it execute, but $included into a PIO VW crashes.
  4. Vectorworks supports many disciplines. I, as an architect, can only speak for mine. I have no doubt that Building Information Modeling will completely change the industry. BIM is all about Information Technology, how information is classified and handled. My understanding of IFC is that it is simply how information is marked up... essentially an XML structure. The architecture of how information is handled by the BIM software will be critical. VW is capable of the Building Information Modeling. Records can be attached to objects, worksheets can return the record values. But I can't find any independent reports that demonstrate leverage of VW's BIM capacity in the same way that Revit has been used... Bubble bees can fly but might not be the best ride if you want to fly to New Zealand. I don't think VW should open up the base source code. Profit drives R&D, BIM is new ground- R&D is essential. As I see it, I may be wrong, the PIO is the code process that the generates the Information in the BIM on the Vectorworks Platform. For anyone to seriously take on BIM on the VW platform, trusting and understanding the information is critical. The last time I tried to set up worksheets to pull the information from the wall record, the few checks I did left me very wary of the results. Understanding what, where, how the Wall tool information is handled is critical. I can trust the tools I've built because I handle the information at a granular level. If I could see how other PIO's handle their information I could tap in and get at it. As for the script 'listener'. If you want to see how an object is create. Simply make it a symbol. Export the script. Search for the symbol name in the txt file and you can see the code.
  5. I am making a plumbing pipe tool that draws a pipe in 3D based on its falls. Generating the object is complete. What I want to be able to do when working with the object is nudge it up and down. I want the object to know its height relative to the layer level. I have a 3dLocus at the end point of the pipe and can pull the Z height internally. What I can't find is how to get pull in the objects Z height so I can adjust the return. What is the function like GetCustomObjectInsert(hObject,px,py,pz);
  6. yep I did have a look. This was the closest I got. Obviously a 3D path PIO creates a nurb path, but how do you implement getting a handle to it?. http://techboard.vectorworks.net/ubbthreads.php?ubb=showflat&Number=142047&Searchpage=2&Main=29092&Words=3D+path&Search=true#Post142047
  7. Can some one outline how you get points from a 3D path object?. Thanks
  8. There is a very good community that provide support through this tech board... Most questions get answered, but some times you hit a wall that needs attention form the higher level. I don't see this support as a huge resource drain on NAA. The slow migration way from PIO parameters to PIO event objects removes the Parameters from the PIO, creates new record structures. I feel like I have a pretty advanced understanding of the Worksheet retrieval, but as more data is moved into a PIO and made opaque on how it is used the more time required to test and try out record data retrieval. My posts recently are pretty resigned to the fact that I will be changing to Revit. It appears the family structure has a much stronger BIM foundation. I would love for VW to be on the same par. This sucks as I run an Apple office and we hates windowssssss.
  9. Yes I have followed the debugger extensively. This is how I know that it does execute the function above a number of times, and how I know that it is this function that kills VW after a few loops. I have pastebined the code below. I use an $include into a menu command and a point object. The menu command executes perfectly. The point object hangs up. I don't get why?. Why use hExturde.?. If you can follow the script you will see that I only need to call: hTemp:=D3_StudArray(D2_Framing(pFrameDepth,45),pWallLength,pWallHeight,600,0); I can change the D2_Framing(x,x) to any any function that draws a 2D profile and returns a handle. That could be a steel profile or a composite Timber I beam profile. Some times the profile function returns the VAR value of the spacing that then gets passed back into the D3 function. This method has allowed for very fast 3D object script development. A link to a paste bin page with code. Pastebin
  10. How does the floor tool work?. What type of tool is the floor tool?. I can create a tool that draws from a menu command but this does not creat a tool, only a bunch of extrudes. I'd like to be able to create tools from a selected shape, then double click on tool to edit shape.
  11. The more that I read about BIM the less confidence I have in VW. http://www.construction-innovation.info/index.php?id=1083 The speed of development I see in other platforms is leaving VW behind. The main reason I have not changed platform is Vectorscript. I've been writing custom objects for a number of years. It is an easy language. I employed a student, 6 weeks training and he created some very sophisticated objects. I still have a lot to learn. I have learnt the most from the people who contribute to the Vectorscript area of this forum. VS can be extremely frustrating. I've invested an huge amount of time streamlining my development process. I've created a structure for 3D modeling that is very fast in development. My test cycle used Menu commands... HOWEVER when I took the code into a PIO I now have memory issues. $#!?. was my time useless?. I doubt I will get any support from NAA to help. There are a lot of independent VS developers. NAA could leverage the work of these developers. Create and host an App Store. Reading others code is the best way to learn VS. Open up the PIO code for independent developers to look at. Then we can see how you are handeling the data we need access to for BIM.
  12. there is no problem with the function. the function is called multiple times in the script. It fails on the 4-5th execution. The script draws a stud wall. It preformed when used in a pallet. When copied into a PIO point tool the failures started. I have used this function in far more complex Menu tools. Is memory assigned differently for PIO's?. Following your suggestion I did simplify down to use htemp:=CreateDuplicateObject(h, LNewObj); { DelObject(FIn3D(GetParent(CreateDuplicateObject(h, LNewObj))));} but still failing.
  13. I keep crashing in a PIO that uses FUNCTION Create3Dobj(h: HANDLE; z, dZ: REAL): HANDLE; BEGIN IF h <> NIL THEN BEGIN BeginXtrd(z, dZ); MoveTo(0,0); LineTo(1, 1); EndXtrd; Create3Dobj:=lnewobj; DelObject(FIn3D(GetParent(CreateDuplicateObject(h, LNewObj)))); END; END; a number of times.... I have got this through on a couple runs, with a memory out of limits warning. Any thing I can do to force more memory allocation?.
  14. I used to be a VW fanboy... now I see what other packages get I think change is inevitable. If VW does not include the following in the next upgrade: 1. Use multicore 2. Self manage detail & section refs. 3. Fix the Notes database to update correctly. 4. Make the worksheet data return intuitive and consistant I think I'm gone
  15. Quick Little Script Will 1) Convert Text into a group of Polylines 2) For each poly in group 2.1 hXtrude 2.2 Rotate letters to a view angle. Part i'm stuck on: I want a boolean button to get the view and align the text extrude to the current view. I though this would be simply GetView(...). But this is not working. Sketch it out the Object needs to be rotated to be perpendicular to the 3D view angle. The math has me stuck. Anyone?.
  16. I get it now.. must be on a Sheet layer.
  17. If I try and start the SVP, then change the view to front. I get the following: 'Section could not be created. Try Drawing a different section line object. You may also try setting different section properties.'
  18. When you say 'elevation view'. do you mean put the view into 'Front View'?. When I do this and the go to use the Viewport section tool it reverts back to plan.
  19. Pat I cant get this to work?. Do I need 2010
  20. Maybe you get what you pay for. VW cost less and it has less.
  21. a link to your post please Pat
  22. Is there a way to script export of jpg files?. Ie I want to REPEAT; 1 Render 2 Export Jpg 3 Move View
  23. That requires the user to manually input a string. I want to spec the string and location in my script. Or is there a way to script the user input?.
×
×
  • Create New...