Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

5 Neutral

About LarryO

  • Rank

Personal Information

  • Location
    Victoria BC Canada

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Looks interesting Pat, and admittedly much clearer organization than mine, hehehe. You allowed the user the ability to move the washer and nut but I couldn't find if there was a limiter in there to ensure the minimum two threads above the nut. Myself I have (for now) foregone entering the whole table matching thread count to bolt diameter and simply approximate the amount that must extend above the nut. I'm about 3mm over on 1" size and almost true at 1/4" size. Some day I may become inspired and work some more on this but for now I happy that today I have filled in all the size gaps up to 1" in 1/8" increments. I wasn't aware of the full size range when I began this wedge anchor until after I had hard coded the use of the first three characters to represent the diameter. Our shop doesn't use 5/16" and the engineer's in the area use epoxied rod more often than not for 1" and over. The other aspect with imperial stuff is that many times the sizes are nominal, which is possibly the case for the lengths associated with the 1" diameter material in this product. So this is just a close visual representation of one manufacturer's product. Perhaps when I get to creating a threaded rod with nut and washer options for both ends I will include a subroutine to accurately determine the two thread offset. In light of all the hatches and snippets of code that I have borrowed from various places over the past 25 years, attached is an updated working tool, sans icon. Past icon attempts have all failed miserably. Wedgie Anchor.vso
  2. Thanks Guys, With your insight I have found the issue. Raymond, you were almost right. I'm not sure exactly how NNA does this but the first parameter chooses which list of values to display when the user activates the pull down (that part is easy) (example: regular hex nut = make visible and display the values in size_1, heavy hex nut = make visible and display the values in __size_2 and so on) but they then seem to somehow transfer that directly to the 'size' parameter. Their plugin only responds to values entered into the 'size' parameter. My bad it turns out is that I am replacing the "size" parameter with a decimal equivalent of the fractional value. ie: '0.625' instead of '5/8'. The latter seems to be what their script expects but somehow that didn't kill the script. It chimed instead and then possibly converted it to a real again internally and finished its task. The "__NNA_DO_NOT_CHANGE" I believe is NNA's way of saying to the various distributors to not localize the name into the regional language. I made a number of attempts to use those other parameters early on by hard coding in different values like '3/4' etc but their plugin script does not seem to check upon the value stored in those various parameters that hold the value lists, even after issuing a ResetObject(). It looks like I'm going to have to create a clumsy case statement to match up decimal values to fractional representation to shut the thing up. This is what makes all of this fun, isn't that right!? ūüėā PS: Then again maybe not, I already have those in the initial selection process
  3. Thanks, but no change and nothing popped up in a message window.
  4. Does anyone know why my script chimes every time it is selected from the tool sets, every instance at placement and anytime I use one of the pop-up selections? I originally wrote this for VW2013 but other than the chiming it works fine in VW2019. PROCEDURE Wedgie_Anchor; VAR Bool1:BOOLEAN; TempI1:INTEGER; LongI1,LongI2:LONGINT; BoltLength,ShaftRadius,ShaftLength,ThreadLength,rSlot,rHeight,NutThickness,WasherThickness, DocUPI,SelectPtX1,SelectPtY1,SelectPtX2,SelectPtY2,RingThickness,rETBN:REAL; Units2Mark,UnitsMark,PIO_Name:STRING; PIO_Handle,PIO_Record,PIO_ParentWall,ObjHandle,hWasher,hNut:HANDLE; ar3BoltSize:ARRAY[1..3]OF CHAR; TempArray:ARRAY[1..16]OF CHAR; TempDynArray:DYNARRAY[]OF CHAR; BEGIN {Parameter Visibility} Bool1:=GetCustomObjectInfo(PIO_Name,PIO_Handle,PIO_Record,PIO_ParentWall); IF PAnchorSize='Custom' THEN BEGIN SetParameterVisibility(PIO_Handle,'BDiameter', TRUE); SetParameterVisibility(PIO_Handle,'OALength', TRUE); END ELSE BEGIN SetParameterVisibility(PIO_Handle,'BDiameter', FALSE); SetParameterVisibility(PIO_Handle,'OALength', FALSE); END; {PushAttrs;} GetUnits(LongI1,LongI2,TempI1,DocUPI,UnitsMark,Units2Mark); ar3BoltSize:=PAnchorSize; IF ('3/8'=ar3BoltSize) | ('1/2'=ar3BoltSize) THEN WasherThickness:=1.6mm {1.6mm = 3/8" & 1/2" Narrow washer thickness} ELSE WasherThickness:=2.5mm; {2.5mm = 5/8", 3/4" & 1" Narrow washer thickness} RingThickness:=((Str2Num(ar3BoltSize)*8)-1)*0.5mm; BoltLength:=POALength; {Extra Thread Beyound Nut - rETBN} rETBN:=WasherThickness+DocUPI*Str2Num(ar3BoltSize)*1.5; {BOLT DIAMETER formula is DocUPI*Str2Num(ar3BoltSize)} ShaftRadius:=DocUPI*Str2Num(ar3BoltSize)/2; TempArray:=PAnchorSize; TempDynArray:=TempArray; Delete(TempDynArray,1,6); TempI1:=Pos('"',TempDynArray); Delete(TempDynArray,TempI1,TempI1); BoltLength:=DocUPI*(Str2Num(Copy(TempDynArray,1,TempI1))); IF PAnchorSize='Custom' THEN BEGIN rETBN:=PBDiameter*1.5; ShaftRadius:=PBDiameter/2; BoltLength:=POALength; END; {formula for expansion portion is ratio from √ė3/8" anchor which is 1" Long to √ė5/8" anchor which is 1.5" Long} ThreadLength:=BoltLength-25.4mm-2*(ShaftRadius*2-9.525mm); ShaftLength:=Boltlength-ThreadLength; Locus(0,0); {Orgin indicator} {Threaded end} OpenPoly; BeginPoly; AddPoint((-ShaftRadius+0.53mm),3.175mm); AddPoint((-ShaftRadius+0.53mm),0.0); AddPoint(-ShaftRadius,0.0); AddPoint(-ShaftRadius,-ThreadLength+3.175mm); AddPoint((-ShaftRadius+1.95385mm),(-ThreadLength)); AddPoint((ShaftRadius-1.95385mm),(-ThreadLength)); AddPoint(ShaftRadius,-ThreadLength+3.175mm); AddPoint(ShaftRadius,0.0); AddPoint((ShaftRadius-0.53mm),0.0); AddPoint((ShaftRadius-0.53mm),3.175mm); EndPoly; ObjHandle:=LNewObj; HMove(ObjHandle,0.0,ThreadLength-rETBN); {Threads} MoveTo((-ShaftRadius+0.53mm),ThreadLength-rETBN); LineTo((ShaftRadius-0.53mm),ThreadLength-rETBN); MoveTo(-ShaftRadius,3.175mm-rETBN); LineTo(ShaftRadius,3.175mm-rETBN); {The following 2 lines are drawn as hidden lines} PushAttrs;LSByClass;LWByClass;PenColorByClass;NameClass('Pen_0.13-Hidden'); MoveTo(-ShaftRadius+1.06mm,4mm-rETBN-2.58375mm); LineTo(-ShaftRadius+1.06mm,ThreadLength-rETBN); MoveTo(ShaftRadius-1.06mm,4mm-rETBN-2.58375mm); LineTo(ShaftRadius-1.06mm,ThreadLength-rETBN); PopAttrs; {Tapered end} BeginPoly; AddPoint(-ShaftRadius+3/64",3.175mm); AddPoint(-ShaftRadius+1/64",BoltLength-(ThreadLength+1mm)); AddPoint(ShaftRadius-1/64",BoltLength-(ThreadLength+1mm)); AddPoint(ShaftRadius-3/64",3.175mm); EndPoly; ObjHandle:=LNewObj; HMove(ObjHandle,0.0,ThreadLength+RingThickness-rETBN); {Begin Expansion Collar} rSlot:=((ShaftRadius*16)-1)/64; {1/2 SLOT WIDTH} rHeight:=ShaftRadius+9.525mm; {Overall height of Collar} IF ShaftRadius<=4.7625mm THEN rHeight:=rHeight-3.175mm; {Bumps on Expansion Collar} ArcByCenter(ShaftRadius-3.175mm, rHeight/2+ThreadLength+RingThickness*2+3.175mm-rETBN, 3.969mm, 323.13, 73.74); ArcByCenter(-ShaftRadius+3.175mm, rHeight/2+ThreadLength+RingThickness*2+3.175mm-rETBN, 3.969mm, 143.13, 73.74); PushAttrs;FillPat(1); ClosePoly; BeginPoly; AddPoint(-ShaftRadius,0.0); AddPoint(-ShaftRadius,rHeight); AddPoint(-rSlot,rHeight); ArcTo(-rSlot,rHeight/2,0); AddPoint(0.0,rHeight/2); ArcTo(rSlot,rHeight/2,0); AddPoint(rSlot,rHeight); Addpoint(ShaftRadius,rHeight); Addpoint(ShaftRadius,0.0); AddPoint(rSlot,0.0); ArcTo(rSlot,rSlot,0); AddPoint(0.0,rSlot); ArcTo(-rSlot,rSlot,0); AddPoint(-rSlot,0.0); EndPoly; ObjHandle:=LNewObj; HMove(ObjHandle,0.0,ThreadLength+RingThickness*2+3.175mm-rETBN); PopAttrs; {End Expansion Collar} {Draw Expansion Stop Ring} Rect(-ShaftRadius,ThreadLength+3.175mm-rETBN,ShaftRadius,ThreadLength+3.175mm-rETBN+RingThickness); {Draw Washer} PushAttrs;FillPat(1); hWasher:=CreateCustomObjectN('Plain Washer (Inch)',0.0,-WasherThickness,0.0,FALSE); SetRField(hWasher,'Plain Washer (Inch)','series','Type B - Narrow'); {SetRField(hWasher,'Plain Washer (Inch)','size',ar3BoltSize);} SetRField(hWasher,'Plain Washer (Inch)','size', Num2Str(3,2*ShaftRadius/DocUPI)); SetRField(hWasher,'Plain Washer (Inch)','view','Front'); SetRField(hWasher,'Plain Washer (Inch)','showCL','FALSE'); PopAttrs; {End Washer} {Draw Nut} PushAttrs;FillPat(1); hNut:=CreateCustomObjectN('Nut (Inch)',0.0,WasherThickness,0.0,FALSE); SetRField(hNut,'Nut (Inch)','typeIndex','Hex Nut - Heavy'); SetRField(hNut,'Nut (Inch)','size',Num2Str(3,2*ShaftRadius/DocUPI)); SetRField(hNut,'Nut (Inch)','view','Front'); SetRField(hNut,'Nut (Inch)','showCL','FALSE'); Hrotate(hNut,0.0,0.0,180d); PopAttrs; {End Nut} {PopAttrs;} END; {Larry Osolin 2013, not for resale and or redistribution without credit and written approval please.} RUN(Wedgie_Anchor);
  5. I posted an issue that I continue to have with rendering 3d objects under the Trouble Shooting section. See Why are these lines rendering? Another user added their "me too" statement to which I responded with additional information. Now suddenly that forum indicates that the issue has been answered, which it has not. Am I expected to repost whenever someone comments instead of supplying an answer in an effort to have it recognized as an outstanding issue??? Larry
  6. There are a couple of other basic functionality issues with rendering that keep me from doing more 3d work in VW. Like OpenGL not rendering section viewports with shadows and grey tones. Not being able to figure out how to define a hatch to appear where an object is in section like cutting through a steel beam results in solid black, again a section viewport.
  7. The smoothing angle should be preventing both of these lines from rendering. They represent the end of the fillet arc between the flange and web on a W shape beam. The beam has pieces cut from and added to it. If changed from dashed hidden line rendering to hidden line rendering the dashed line will be removed. So this is two different functions that are not operating as expected. Both should should be r eacting to the smoothing angle setting.
  8. This may be of some help or not. By grouping a normal viewport you can copy and paste it to another file, but knowing that some attributes will not be carried over. for instance the layers it is linked to are not carried over. The latter I believe is because the viewport does not have the functionality to create any missing layers where as missing classes and their attributes will be created simply through the act of copying the objects into the file beforehand. So that said some functionality of a viewport must be setup/entered into the file for a view port to function correctly which is why I suspect the application is set up to prevent direct copying of viewports from file to file.
  9. @Ardillas Nuh You might get a more informed response by posting your question in its own thread, but I'll give it a try. My question is can we create this parametric object in vectorworks? Yes parametric objects can be created in VWs. Windows and doors already exist as parametric tools and can be placed into walls. These are 3d objects. If you require additional functionality that is not available in the current window or door tool, you can create your own parametric tool. Whether the effort is worth the investment depends upon the frequency your office intends to utilize the custom door or window. The best and most flexible parametric objects are created using code but simple scalable symbols (blocks) are also an option. And while dimensions can be linked to objects and utilized to reshape them, the functionality is not the same as Revit where dimensions are utilized as constraints to create reusable parametric models that are commonly exported as library files. Contact your local VW sales to get a 30 day trial and explore the options.
  10. The grid spacing is easy to determine or set by double clicking the snap to grid icon. This will the bring up the smart cursor options allowing you to read the current spacing and change the grid spacing.
  11. I eventually worked out the angles. I had a transition plate for a handicap ramp to a cross sloping city sidewalk that can't be altered. It required three folds in the metal, I ended up orienting the primary surface to the xy plane and rotating it until the fold line aligned with either the x or y axis after which it is possible to quickly rotate 90 degrees along the opposite axis to view the first axis perpendicular to the screen. Then an angle measure can be taken. then move onto the next plane. Tedious process prone to error if one is not careful in rotating the fold line to align with an axis. Fortunately I only had to acquire those three angles for the manufacturing process. Thanks
  12. Set the grid spacing and turn on snap to grid?
  13. Is there a tool will tell us the angle between two 3D surfaces or work planes?
  14. Better quality printing or publish/printing direct from VW and more control of page layout. Although there have been issues with publish/printing when page sizes are different, possibly specific to particular output devices. Acrobat and web browsers frequently hide or ignore what appear to be system default printer settings and will scale originals to fit pages. The latter can be a blessing for originals that are larger than the sheet sizes available but its a nuisance when it scales down an original that matches the output paper size, especially when it fails to handle portrait to landscape differences. Unexpectedly printing in colour. Printing subsequent pages of multi-page documents based upon first page in set.
  15. A few things you may notice when migrating to VW on the Win10 from MacOS is text input functionality. 1. With caps lock on, holding shift key will drop to lower case for the western alphabet on Win10. 2. Keyboard sequences for entering certain accents, Greek and mathematical characters are now relegated to "Alt" based index calls to the active font table. 3. Win10 has not licensed complete fonts sets like the MacOS. So in Ariel font for instance you cannot call up the checkmark and others. Finding pi can be difficult etc. 4. After changing a class or entering a value into a text field via the info palette control is not transferred back to the main drawing window. This blocks the single character shortcut keys. So you will frequently find yourself having to press escape or clicking on the drawing window before you can initiate another tool or function via the keyboard. 5. Many keyboards developed for Win10 have extra keys between the control and alt keys that get in the way of one handed shortcuts. Those with smaller fingers can experience painful stretching exercises to active certain sequences. I am always hitting the contextual menu button with my left hand's thumb when trying to group or ungroup items. VW may not respond quickly enough to shut down requests from the WinOS resulting in stalled shut downs. My switch over to PC from a similar arrangement MacPro circa 2011 as yours resulted in greatly improved rendering times and screen redraws of 3d and pdf objects. No more having to go get a coffee while waiting for viewports to regenerate. I occasionally get artifacts in the printing process that are not there on screen like a diagonal line across the face of a rectangular steel tubing. We have been purchasing HP Z8 workstations with Xeon processors. This is not to say that these are better than other product configurations though. They were simply recommended by an IT consultant of business systems that we hired who installs and resells HP and Microsoft systems.


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