Author Topic: I beam imperial, Wf imperial  (Read 16184 times)

0 Members and 1 Guest are viewing this topic.

Bryco

  • Water Moccasin
  • Posts: 1883
I beam imperial, Wf imperial
« on: May 31, 2007, 01:13:49 AM »
The ones that come with cad in the sample tool palette Civil/structural,
are they cosher or approximations?
I'm looking for Channels as well, but cant find any decent info on them.

Josh Nieman

  • Guest
Re: I beam imperial, Wf imperial
« Reply #1 on: May 31, 2007, 08:26:49 AM »
The ones that come with cad in the sample tool palette Civil/structural,
are they cosher or approximations?
I'm looking for Channels as well, but cant find any decent info on them.

very un-kosher.  many are simply wrong in size, and plus they don't even have most of the common sizes we use!

I'd do a search on the autodesk newsgroups for this, (possibly here as well, haven't tried it here so I dont know) for a solution.  There are many out there, though not always a dynamic block.  I use a version of Al's Steel Mill for most of my stuff (non-3d) which makes all WF, M, S, C, MC, and all those cool AISC shapes, imperial and metric.  My only beef is that it's pipes doesn't list Schedule sizes, only STD, XL, XXL or whatever... we still use schedule nomenclature.

Anyways... I would strongly advise AGAINST using the supplied dynamic block because it's crap.

CADaver

  • Guest
Re: I beam imperial, Wf imperial
« Reply #2 on: May 31, 2007, 08:31:57 AM »

Bryco

  • Water Moccasin
  • Posts: 1883
Re: I beam imperial, Wf imperial
« Reply #3 on: May 31, 2007, 09:35:35 AM »
Thanks Josh,
Randy, that's an extremely handy list.
I would rather have 2d sections myself and I want to draw them from coordinates,
so this is the GO. The radii is the thing I've never worked out.
1)On a "W" would k-tf give me the actual radius?
Seems the same as k1-1/2tw
2) On the Channels-would you hazard a guess on the inside fillet size say compared to the web thickness.

 

Josh Nieman

  • Guest
Re: I beam imperial, Wf imperial
« Reply #4 on: May 31, 2007, 09:42:07 AM »
Thanks Josh,
Randy, that's an extremely handy list.
I would rather have 2d sections myself and I want to draw them from coordinates,
so this is the GO. The radii is the thing I've never worked out.
1)On a "W" would k-tf give me the actual radius?
Seems the same as k1-1/2tw
2) On the Channels-would you hazard a guess on the inside fillet size say compared to the web thickness.

 

to be quite honest, whenever I implement someone else's blocks/routine for creating the steel, I check all the numbers that are important to me against the black book (AISC steel construction manual 13th edition) and generally the fillet is just anything that fits between the flange thickness and the k value... I think k... someone stole my black book... anyways, the clear-usable-gage of the web minus the flange thickness gives you the fillet range.  Since that's going to vary a bit anyways (check out mill tolerances... there're engineers here that think those values in the table are solid and invariable, heh... apperantly they never worked any job in production or in a shop)

Anyways, what I'm getting at is this: the fillet is pretty unimportant, as far as I know... unless you have a special application.  What -is- important is workable gage, web gage and all that... the amount of web or flange that is USABLE.

Bob Garner

  • Guest
Re: I beam imperial, Wf imperial
« Reply #5 on: May 31, 2007, 10:24:00 AM »
Well said, Josh.

As the rolls that form the shapes wear, the radius etc. changes.  The only thing I can add is to remember that the slope on the inside of the flanges of channels is 1:6.

Bob

Chuck Gabriel

  • Guest
Re: I beam imperial, Wf imperial
« Reply #6 on: May 31, 2007, 10:39:01 AM »
The only thing I can add is to remember that the slope on the inside of the flanges of channels is 1:6.

Thanks for the tip.  I seem to recall having seen that somewhere before.  Where did you pick it up?

Never mind.  I found it on page 1-9 of the green book.
« Last Edit: May 31, 2007, 10:41:12 AM by Chuck Gabriel »

Bryco

  • Water Moccasin
  • Posts: 1883
Re: I beam imperial, Wf imperial
« Reply #7 on: May 31, 2007, 10:49:07 AM »
We use very little structural steel in the scenery business but we do clad around it sometimes, so sometimes the fillet is important. Thanks.

CADaver

  • Guest
Re: I beam imperial, Wf imperial
« Reply #8 on: May 31, 2007, 02:49:30 PM »
Thanks Josh,
Randy, that's an extremely handy list.
I would rather have 2d sections myself and I want to draw them from coordinates,
so this is the GO. The radii is the thing I've never worked out.
1)On a "W" would k-tf give me the actual radius?
Seems the same as k1-1/2tw
2) On the Channels-would you hazard a guess on the inside fillet size say compared to the web thickness.

The latest AISC manual comes with a CD that contains an excel file of all structural shapes that includes all the dimensions necessary to draw them.  It is an excellent place to start if you wish to build a function (lisp/vba/c#/whatever) for bulding steel shapes.

When building 3D models of structural steel we square off the inside corner, the fillet does little for us except slow us down and make the structure elevations plot funny.

Bob Garner

  • Guest
Re: I beam imperial, Wf imperial
« Reply #9 on: May 31, 2007, 05:49:29 PM »
And, well said Cadaver.

The shapes database is available for free download at the AISC website.  It's called Shapes Database v13.0, in .xls or .html format and you can find it in the free pubs/free e-mail section. 

Bob

Strucmad

  • Guest
Re: I beam imperial, Wf imperial
« Reply #10 on: May 31, 2007, 07:42:42 PM »
Chuck,
I've always used this routine http://www.draftsperson.net/index.php?title=Wisey%27s_Steel_Shapes_LISP_program , found it accurate, only 2d but, might help.

Paul.

TimSpangler

  • Water Moccasin
  • Posts: 2010
  • CAD Naked!!
Re: I beam imperial, Wf imperial
« Reply #11 on: June 01, 2007, 07:28:50 AM »
We use a free lisp called DDShapes  It seems to work fine.  It is a freeware but the lisp leads a little to be desired.  The original didn't localize any variables.  With a little house cleaning I seems to have gotten it to work well.  Just google it.  I'll ask the poweres that be here at work and if they don't have a problem I'll post my version and save you the work.

Just let me know.
ACA 2015 - Windows 7 Pro
All Comments and Content by TimSpangler, Copyright 2016

Chuck Gabriel

  • Guest
Re: I beam imperial, Wf imperial
« Reply #12 on: June 01, 2007, 07:54:08 AM »
Chuck,
I've always used this routine http://www.draftsperson.net/index.php?title=Wisey%27s_Steel_Shapes_LISP_program , found it accurate, only 2d but, might help.

Paul.

Thanks for that.  I have something for 2D, but I have a pet project, for doing steel in 3D, that I've let fall by the wayside.  I've never been able to figure out how some of the logic in the algorithms I've seen for drawing channels was derived, and knowing the bit about the 2:12 slope is one piece of the puzzle.

Bryco

  • Water Moccasin
  • Posts: 1883
Re: I beam imperial, Wf imperial
« Reply #13 on: June 01, 2007, 08:46:41 AM »
Ps_port that little prog looks nice.
I may end up doing some of this myself anyway as getting the list was the hard part.
In a channel I've presumed the average thickness is a point half way down the flange -the web thickness.
 

Chuck Gabriel

  • Guest
Re: I beam imperial, Wf imperial
« Reply #14 on: June 01, 2007, 09:04:39 AM »
I don't believe the 2:12 rule necessarily applies to MC shapes (only S and C shapes).  The green book says something to the effect that individual mills should be consulted for the dimensions (and inside flange slopes) of M and MC shapes.

I have an old Bethlehem Steel book, and it doesn't make any mention of the slope.  It is probably fine to assume 2:12 for general drafting purposes, but you might want something more precise for fabrication detailing.

Krushert

  • Seagull
  • Posts: 13679
  • FREE BEER Tomorrow!!
Re: I beam imperial, Wf imperial
« Reply #15 on: June 01, 2007, 09:07:11 AM »
It's a little old but the data below is still good:

http://www.theswamp.org/screens/index.php?dir=cadaver/&file=Pipe%20Steel%20Book.xls

Randy,
Excelllent spreadsheet.

A couple of questions.
Did you create it or your company?
If not is this used as a part of your Standards?

Last and most important?
How do you maintain the data or keep it current?

This is my concern with lisp routines (or whatever) that supplies the information thru a data base.
I my first main lisp that tore apart and revamp was for steel shapes.  I tore the data base right out it becuase I found it to incorrect or out of date.  I fed the data from the asci manual to the lisp everytime a I wanted a shape.  Slower but accurate. 

Now since we are using a ADT vertical that has the detail component manager, I use the shaped that come with that.  it is base on ACSI manual and it gets updated every version.  2d though not 3D
I + XI = X is true ...  ... if you change your perspective.

I no longer CAD or Model, I just hang out here picking up the empties beer cans

Chuck Gabriel

  • Guest
Re: I beam imperial, Wf imperial
« Reply #16 on: June 01, 2007, 09:40:41 AM »
And, well said Cadaver.

The shapes database is available for free download at the AISC website.  It's called Shapes Database v13.0, in .xls or .html format and you can find it in the free pubs/free e-mail section. 

Bob

http://www.aisc.org/Content/NavigationMenu/ePubs/ePubs_Home/ePubs_Home.htm

Seems to be only available to members. :-(

CADaver

  • Guest
Re: I beam imperial, Wf imperial
« Reply #17 on: June 01, 2007, 03:34:26 PM »
It's a little old but the data below is still good:

http://www.theswamp.org/screens/index.php?dir=cadaver/&file=Pipe%20Steel%20Book.xls

Randy,
Excelllent spreadsheet.

A couple of questions.
Did you create it or your company?
Goes back many years.  I started it back in the mid-eighties in Lotus123 at one company.  Took it with me to another company in the late eighties.  There several folks expanded it over a couple of years and translated it to QuatroPro, then to Excel.  Took it with me I left there in the early ninties and kept it updated on my own.  A couple of years ago I got the updated (and expanded yet again) version from company number two above that you see here. I haven't updated it since.

If not is this used as a part of your Standards?
Most of the data contained in that Excel file I have in an Oracle database and access that data with other tools


Last and most important?
How do you maintain the data or keep it current?
I have a team of design administrators that ensure all data is up to date.  As codes, data, specifications, parameters, and/or policies change we the responsible individusal will make the appropriate changes to the database, then submit the changes to me for review.  I will verify the changes and make sure the end users get a review prior to implementation.


This is my concern with lisp routines (or whatever) that supplies the information thru a data base.
I my first main lisp that tore apart and revamp was for steel shapes.  I tore the data base right out it becuase I found it to incorrect or out of date.  I fed the data from the asci manual to the lisp everytime a I wanted a shape.  Slower but accurate. 

Now since we are using a ADT vertical that has the detail component manager, I use the shaped that come with that.  it is base on ACSI manual and it gets updated every version.  2d though not 3D

Our functions do not contain the data but rather call it from the database as needed.  That way we simply need to change the database to get the application updated.

Krushert

  • Seagull
  • Posts: 13679
  • FREE BEER Tomorrow!!
Re: I beam imperial, Wf imperial
« Reply #18 on: June 01, 2007, 03:42:44 PM »
It's a little old but the data below is still good:

http://www.theswamp.org/screens/index.php?dir=cadaver/&file=Pipe%20Steel%20Book.xls

Randy,
Excelllent spreadsheet.

A couple of questions.
Did you create it or your company?
Goes back many years.  I started it back in the mid-eighties in Lotus123 at one company.  Took it with me to another company in the late eighties.  There several folks expanded it over a couple of years and translated it to QuatroPro, then to Excel.  Took it with me I left there in the early ninties and kept it updated on my own.  A couple of years ago I got the updated (and expanded yet again) version from company number two above that you see here. I haven't updated it since.

If not is this used as a part of your Standards?
Most of the data contained in that Excel file I have in an Oracle database and access that data with other tools


Last and most important?
How do you maintain the data or keep it current?
I have a team of design administrators that ensure all data is up to date.  As codes, data, specifications, parameters, and/or policies change we the responsible individusal will make the appropriate changes to the database, then submit the changes to me for review.  I will verify the changes and make sure the end users get a review prior to implementation.


This is my concern with lisp routines (or whatever) that supplies the information thru a data base.
I my first main lisp that tore apart and revamp was for steel shapes.  I tore the data base right out it becuase I found it to incorrect or out of date.  I fed the data from the asci manual to the lisp everytime a I wanted a shape.  Slower but accurate. 

Now since we are using a ADT vertical that has the detail component manager, I use the shaped that come with that.  it is base on ACSI manual and it gets updated every version.  2d though not 3D

Our functions do not contain the data but rather call it from the database as needed.  That way we simply need to change the database to get the application updated.

Cool  8-)
I + XI = X is true ...  ... if you change your perspective.

I no longer CAD or Model, I just hang out here picking up the empties beer cans

CADaver

  • Guest
Re: I beam imperial, Wf imperial
« Reply #19 on: June 01, 2007, 03:46:02 PM »

Josh Nieman

  • Guest
Re: I beam imperial, Wf imperial
« Reply #20 on: June 01, 2007, 04:32:10 PM »
Cool  8-)
thanks, we think so too.

I'm with KrusherT, as well... very cool, very powerful, and impressive.  Makes me wish we had the constant-work required to hire some IT-savvy guy full time to do some database work like that.

Bryco

  • Water Moccasin
  • Posts: 1883
Re: I beam imperial, Wf imperial
« Reply #21 on: June 03, 2007, 11:39:21 AM »
The drawing here is hopefully an explanation of how to draw objects from a data list.
While drawing a rectangle is not difficult, fillets are a little baffling at first.
I have only included the math rather than making it language specific, but the program suggested by ps_port gives examples of how to use  numbers in a lisp program.
And in vba I make a call like
Sub C15x50()
    Channels "C15x50", 15, 11 / 16, 3.75, 5 / 8, 1.4375
End Sub
with the numbers  coming directly from the file Randy kindly provided

MickD

  • King Gator
  • Posts: 3636
  • (x-in)->[process]->(y-out) ... simples!
Re: I beam imperial, Wf imperial
« Reply #22 on: June 03, 2007, 06:32:56 PM »

While drawing a rectangle is not difficult, fillets are a little baffling at first.

...

Bryco, have a look through here, this was some section stuff I was working on some time ago, there's routined there to draw channel (parallel flanged) and ub (I sections) that may help. For fillets I just set the bulge for the polyline as required.

It's in c# and the c/z purlin shapes need the points adjusted to suit (I didn't get 'round to implementing them :roll: ).

hope it's of some use.
Code: [Select]

using System;
using System.Windows;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;

namespace DCS_3D
{
/// <summary>
/// Summary description for DCS_Section.
/// </summary>
public class DCS_Section
{
public DCS_Section()
{
//
// TODO: Add constructor logic here
//
}
private double _width = 100.0;
private double _height = 100.0;
private double _sectionArea = 0.0;
private string _sectionName = "";
private string _sectionType = "";
//private BulgeVertexCollection _bvc;


/// <summary>
/// Overall width of object when aligned with world coordinate system x axis in section
/// </summary>
public double Width
{
get
{
return _width;
}
}

/// <summary>
/// Overall height of object in world coordinate system (y axis) of section in plan
/// </summary>
public double Height
{
get
{
return _height;
}
}

/// <summary>
/// Cross sectional area of section
/// </summary>
public double SectionArea
{
get
{
return _sectionArea;
}
}

public Polyline CreatePoly(DataRow dr, string sectionName, string sectionType)
{
Polyline poly = null;
_sectionName = sectionName;
_sectionType = sectionType;

try
{
switch(sectionType)
{
case "FMS":
poly = Draw_Flat(dr);
break;
case "UB":
poly = Draw_UB(dr);
break;
case "UC":
goto case "UB";
case "WB":
goto case "UB";
case "WC":
goto case "UB";
case "PFC":
poly = Draw_PFC(dr);
break;
case "SHS":
poly = Draw_SHS(dr);
break;
case "RHS":
goto case "SHS";
case "EA":
poly = Draw_Angle(dr);
break;
case "UA":
goto case "EA";
case "SMS":
goto case "FMS";
case "Z":
poly = Draw_Z(dr);
break;
case "C":
poly = Draw_C(dr);
break;
default:
MessageBox.Show("Error creating Section Polyline!","Section Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
break;
}
}

catch
{
MessageBox.Show("Failed to read data!","Database Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
return poly = null;
}
return poly;
}

private Polyline Draw_Z(DataRow dr)
{
Polyline poly = new Polyline();
_width = Convert.ToDouble(dr["width"]);
_height = Convert.ToDouble(dr["height"]);
double web = Convert.ToDouble(dr["thickness"]);

BulgeVertexCollection bvc = new BulgeVertexCollection();
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//1
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//2
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//3
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//4
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//5
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//6
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//7
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//8
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//9
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//10
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//11
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//12
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//13
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//14
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//15
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//16
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//17
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//18
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//19
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//20

for(int i = 0;i < bvc.Count;i++)
{
poly.AddVertexAt(i,bvc[i].Vertex,bvc[i].Bulge,0.0,0.0);
}
poly.Closed = true;
return poly;
}

private Polyline Draw_C(DataRow dr)
{
Polyline poly = new Polyline();
_width = Convert.ToDouble(dr["width"]);
_height = Convert.ToDouble(dr["height"]);
double web = Convert.ToDouble(dr["thickness"]);

BulgeVertexCollection bvc = new BulgeVertexCollection();
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//1
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//2
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//3
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//4
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//5
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//6
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//7
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//8
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//9
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//10
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//11
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//12
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//13
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//14
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//15
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//16
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//17
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//18
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//19
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//20

for(int i = 0;i < bvc.Count;i++)
{
poly.AddVertexAt(i,bvc[i].Vertex,bvc[i].Bulge,0.0,0.0);
}
poly.Closed = true;
return poly;
}

private Polyline Draw_UB(DataRow dr)
{
double bulge = 0.414213562375;
Polyline poly = new Polyline();
_width = Convert.ToDouble(dr["width"]);
_height = Convert.ToDouble(dr["height"]);
double flange = Convert.ToDouble(dr["flange"]);
double web = Convert.ToDouble(dr["web"]);
double radius = Convert.ToDouble(dr["radius"]);

BulgeVertexCollection bvc = new BulgeVertexCollection();
bvc.Add(new BulgeVertex(new Point2d(-(_width*0.5),0.0),0.0));//1
bvc.Add(new BulgeVertex(new Point2d(_width*0.5,0.0),0.0));//2
bvc.Add(new BulgeVertex(new Point2d(_width*0.5,-flange),0.0));//3
bvc.Add(new BulgeVertex(new Point2d((web*0.5 + radius),-flange),bulge));//4
bvc.Add(new BulgeVertex(new Point2d(web*0.5,-(flange + radius)),0.0));//5
bvc.Add(new BulgeVertex(new Point2d(web*0.5,-(_height - (flange + radius))),bulge));//6
bvc.Add(new BulgeVertex(new Point2d(web*0.5 + radius,-(_height - flange)),0.0));//7
bvc.Add(new BulgeVertex(new Point2d(_width*0.5,-(_height - flange)),0.0));//8
bvc.Add(new BulgeVertex(new Point2d(_width*0.5,-_height),0.0));//9
bvc.Add(new BulgeVertex(new Point2d(-(_width*0.5),-_height),0.0));//10
bvc.Add(new BulgeVertex(new Point2d(-(_width*0.5),-(_height - flange)),0.0));//11
bvc.Add(new BulgeVertex(new Point2d(-(web*0.5 + radius),-(_height - flange)),bulge));//12
bvc.Add(new BulgeVertex(new Point2d(-(web*0.5),-(_height - (flange + radius))),0.0));//13
bvc.Add(new BulgeVertex(new Point2d(-(web*0.5),-(flange + radius)),bulge));//14
bvc.Add(new BulgeVertex(new Point2d(-(web*0.5 + radius),-flange),0.0));//15
bvc.Add(new BulgeVertex(new Point2d(-(_width*0.5),-flange),0.0));//16

for(int i = 0;i < bvc.Count;i++)
{
poly.AddVertexAt(i,bvc[i].Vertex,bvc[i].Bulge,0.0,0.0);
}
poly.Closed = true;
return poly;
}

private Polyline Draw_Flat (DataRow dr)
{
Polyline poly = new Polyline();
_width = Convert.ToDouble(dr["width"]);
_height = Convert.ToDouble(dr["height"]);
BulgeVertexCollection bvc = new BulgeVertexCollection();
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));
bvc.Add(new BulgeVertex(new Point2d(_width,0.0),0.0));
bvc.Add(new BulgeVertex(new Point2d(_width,-_height),0.0));
bvc.Add(new BulgeVertex(new Point2d(0.0,-_height),0.0));

for(int i = 0;i < bvc.Count;i++)
{
poly.AddVertexAt(i,bvc[i].Vertex,bvc[i].Bulge,0.0,0.0);
}
poly.Closed = true;
return poly;
}

private Polyline Draw_PFC(DataRow dr)
{
double bulge = 0.414213562375;
Polyline poly = new Polyline();
_width = Convert.ToDouble(dr["width"]);
_height = Convert.ToDouble(dr["height"]);
double flange = Convert.ToDouble(dr["flange"]);
double web = Convert.ToDouble(dr["web"]);
double rad = Convert.ToDouble(dr["radius"]);
BulgeVertexCollection bvc = new BulgeVertexCollection();
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//1
bvc.Add(new BulgeVertex(new Point2d(0.0,-_height),0.0));//2
bvc.Add(new BulgeVertex(new Point2d(-_width,-_height),0.0));//3
bvc.Add(new BulgeVertex(new Point2d(-_width,-(_height - flange)),0.0));//4
bvc.Add(new BulgeVertex(new Point2d(-(web + rad),-(_height - flange)),bulge));//5
bvc.Add(new BulgeVertex(new Point2d(-web,-(_height - (rad + flange))),0.0));//6
bvc.Add(new BulgeVertex(new Point2d(-web,-(flange + rad)),bulge));//7
bvc.Add(new BulgeVertex(new Point2d(-(web + rad),-flange),0.0));//8
bvc.Add(new BulgeVertex(new Point2d(-_width,-flange),0.0));//9
bvc.Add(new BulgeVertex(new Point2d(-_width,0.0),0.0));//10
for(int i = 0;i < bvc.Count;i++)
{
poly.AddVertexAt(i,bvc[i].Vertex,bvc[i].Bulge,0.0,0.0);
}
poly.Closed = true;
return poly;
}

private Polyline Draw_SHS(DataRow dr)
{
Polyline poly = new Polyline();
_width = Convert.ToDouble(dr["width"]);
_height = Convert.ToDouble(dr["height"]);
BulgeVertexCollection bvc = new BulgeVertexCollection();
bvc.Add(new BulgeVertex(new Point2d(-(_width*0.5),0.0),0.0));
bvc.Add(new BulgeVertex(new Point2d(_width*0.5,0.0),0.0));
bvc.Add(new BulgeVertex(new Point2d(_width*0.5,-_height),0.0));
bvc.Add(new BulgeVertex(new Point2d(-(_width*0.5),-_height),0.0));

for(int i = 0;i < bvc.Count;i++)
{
poly.AddVertexAt(i,bvc[i].Vertex,bvc[i].Bulge,0.0,0.0);
}
poly.Closed = true;
return poly;
}

private Polyline Draw_Angle(DataRow dr)
{
double bulge = 0.414213562375;
Polyline poly = new Polyline();
_width = Convert.ToDouble(dr["width"]);
_height = Convert.ToDouble(dr["height"]);
double web = Convert.ToDouble(dr["flange"]);
double rw = Convert.ToDouble(dr["radiusw"]);
double rt = Convert.ToDouble(dr["radiust"]);

BulgeVertexCollection bvc = new BulgeVertexCollection();
bvc.Add(new BulgeVertex(new Point2d(0.0,0.0),0.0));//1
bvc.Add(new BulgeVertex(new Point2d(0.0,-_height),0.0));//2
bvc.Add(new BulgeVertex(new Point2d(-(web - rt),-_height),-bulge));//3
bvc.Add(new BulgeVertex(new Point2d(-web,-(_height - rt)),0.0));//4
bvc.Add(new BulgeVertex(new Point2d(-web,-(web + rw)),bulge));//5
bvc.Add(new BulgeVertex(new Point2d(-(web + rw),-web),0.0));//6
bvc.Add(new BulgeVertex(new Point2d(-(_width - rt),-web),-bulge));//7
bvc.Add(new BulgeVertex(new Point2d(-_width,-(web - rt)),0.0));//8
bvc.Add(new BulgeVertex(new Point2d(-(_width),0.0),0.0));//9

for(int i = 0;i < bvc.Count;i++)
{
poly.AddVertexAt(i,bvc[i].Vertex,bvc[i].Bulge,0.0,0.0);
}
poly.Closed = true;
return poly;
}

public string SectonName
{
get
{
return _sectionName;
}
}

public string SectionType
{
get
{
return _sectionType;
}
}
}
}

« Last Edit: June 03, 2007, 06:34:58 PM by MickD »
"Programming is really just the mundane aspect of expressing a solution to a problem."
- John Carmack

"Short cuts make long delays,' argued Pippin.
- J.R.R. Tolkien

Bryco

  • Water Moccasin
  • Posts: 1883
Re: I beam imperial, Wf imperial
« Reply #23 on: June 03, 2007, 10:52:25 PM »
Actually Mick I wasn't asking a question, but trying to share how to do it. I was thinking it may be a waste of time as I was doing it, but  would have liked to have read something on these lines when I was first messing with code. I will check the c# out though cheers.

MickD

  • King Gator
  • Posts: 3636
  • (x-in)->[process]->(y-out) ... simples!
Re: I beam imperial, Wf imperial
« Reply #24 on: June 03, 2007, 11:13:46 PM »
No prob's, thought it might be useful given the topic, it still needs a bit of work but it may save someone some typing at least ;)
"Programming is really just the mundane aspect of expressing a solution to a problem."
- John Carmack

"Short cuts make long delays,' argued Pippin.
- J.R.R. Tolkien