Difference between revisions of "Cells"

From Microstation VBA Wiki
Jump to: navigation, search
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Placing a cells is similar to placing [[lines] in that both are elements. First you store the cell into a variable then you put that variable into the drawing.
+
Placing a cells is similar to placing [[lines]] in that both are elements. First you store the cell into a variable then you put that variable into the drawing.
  
 
<PRE>
 
<PRE>
Line 5: Line 5:
 
</PRE>
 
</PRE>
  
It makes sense that you would need a point defined just like when your draw a line. But you also have to have a special kind of point called a scaling point and because you can bring a cell in at an angle, you also need a rotation matrix. If you want to keep it simple and bring the cell in at a scale of one with no rotation you can set up a point variable and a matrix and then set them to some standard values like this:
+
It makes sense that you would need a point defined just like when your draw a line. But you also have to have a special kind of point called a scaling point and because you can bring a cell in at an angle, you also need a [[Rotation Matrix]]. If you want to keep it simple and bring the cell in at a scale of one with no rotation you can set up a point variable and a matrix and then set them to some standard values like this:
  
 
<PRE>
 
<PRE>
Line 22: Line 22:
 
</PRE>
 
</PRE>
  
<PRE>
+
To rotate the cell when it is placed, use a [[Rotation Matrix]]
oMatrix = Matrix3dFromAxisAndRotationAngle(2, Radians(180))
 
</PRE>
 

Latest revision as of 14:03, 5 August 2010

Placing a cells is similar to placing lines in that both are elements. First you store the cell into a variable then you put that variable into the drawing.

Dim oCell as CellElement

It makes sense that you would need a point defined just like when your draw a line. But you also have to have a special kind of point called a scaling point and because you can bring a cell in at an angle, you also need a Rotation Matrix. If you want to keep it simple and bring the cell in at a scale of one with no rotation you can set up a point variable and a matrix and then set them to some standard values like this:

Dim ptScale As Point3d
Dim oMatrix As Matrix3d

ptScale = ActiveSettings.Scale
oMatrix = Matrix3dIdentity

Now you are ready to place a cell. Assuming the correct cell library is attached (should probably check first), you should be able to store a cell (in this example a cell named "AR34") in the oCell cell element you dimensioned earlier, and then add it to the drawing:

Set oCell = CreateCellElement2("AR34", ptStart, ptScale, False, oMatrix)
ActiveModelReference.AddElement oCell

To rotate the cell when it is placed, use a Rotation Matrix