Difference between revisions of "Lines"
Line 2: | Line 2: | ||
<PRE> | <PRE> | ||
− | Dim | + | Dim oLine As Element |
</PRE> | </PRE> | ||
Then you use a very long command to make a line (see below for more info): | Then you use a very long command to make a line (see below for more info): | ||
+ | |||
+ | <PRE> | ||
+ | Set oLine = CreateLineElement2(Nothing, ptStart, ptEnd) | ||
+ | </PRE> | ||
Then you write the line to the DGN file: | Then you write the line to the DGN file: | ||
+ | |||
+ | <PRE> | ||
+ | ActiveModelReference.AddElement MyLine | ||
+ | </PRE> | ||
But to create the line you need a start and end point. So you have to set up variables that can hold those points. A point consists of three pieces of data for the X, Y, and Z coordinates. So once the point is set up, you have to store X and Y values in there and set Z to 0 (I'm always doing 2D, but it seems to work better with 3D points): | But to create the line you need a start and end point. So you have to set up variables that can hold those points. A point consists of three pieces of data for the X, Y, and Z coordinates. So once the point is set up, you have to store X and Y values in there and set Z to 0 (I'm always doing 2D, but it seems to work better with 3D points): | ||
Line 24: | Line 32: | ||
==Line Characteristics== | ==Line Characteristics== | ||
− | Some settings are pretty easy, able to be set by changing | + | Some settings are pretty easy, able to be set by changing values of properties in ActiveSettings (color numbers are part of Microstation; 0 is white; 1 is blue; 3 is red). When you create a line, all of the ActiveSettings will be used, so to get what you want (instead of whatever the current ActiveSetting is) you need to set all of characteristics you want: |
+ | |||
+ | <PRE> | ||
+ | ActiveSettings.Color = 0 | ||
+ | ActiveSettings.LineWeight = 3 | ||
+ | </PRE> | ||
+ | |||
+ | But since there are an infinite number of levels and they are named, you can't change levels quite that easily. First you have to set up a Level variable, then you can assign a level to it by looking for the name of the level (by default, levels are named "Level 1," "Level 2," etc.) | ||
+ | |||
+ | <PRE> | ||
+ | Dim oLevel as Level | ||
+ | Set oLevel = ActiveDesignFile.Levels.Find("Level 2") | ||
+ | Set ActiveSettings.Level = oLevel | ||
+ | </PRE> |
Revision as of 07:59, 5 August 2010
You can't just draw a line. Instead you have to create a line in memory and then write it to the DGN file. So in a subroutine, first you set up a variable that will hold an element.
Dim oLine As Element
Then you use a very long command to make a line (see below for more info):
Set oLine = CreateLineElement2(Nothing, ptStart, ptEnd)
Then you write the line to the DGN file:
ActiveModelReference.AddElement MyLine
But to create the line you need a start and end point. So you have to set up variables that can hold those points. A point consists of three pieces of data for the X, Y, and Z coordinates. So once the point is set up, you have to store X and Y values in there and set Z to 0 (I'm always doing 2D, but it seems to work better with 3D points):
Dim ptStart, ptEnd as point3d ptStart.X = 10 ptStart.Y = 10 ptStart.Z = 0 ptEnd.X = 10 ptEnd.Y = 20 ptEnd.Z = 0
Line Characteristics
Some settings are pretty easy, able to be set by changing values of properties in ActiveSettings (color numbers are part of Microstation; 0 is white; 1 is blue; 3 is red). When you create a line, all of the ActiveSettings will be used, so to get what you want (instead of whatever the current ActiveSetting is) you need to set all of characteristics you want:
ActiveSettings.Color = 0 ActiveSettings.LineWeight = 3
But since there are an infinite number of levels and they are named, you can't change levels quite that easily. First you have to set up a Level variable, then you can assign a level to it by looking for the name of the level (by default, levels are named "Level 1," "Level 2," etc.)
Dim oLevel as Level Set oLevel = ActiveDesignFile.Levels.Find("Level 2") Set ActiveSettings.Level = oLevel