I want to create Arc cell using CreateArcElement3.
For example I want to make a circle cell using CreateArcElement3.
What about reading the help file:
Creates and returns a new circular ArcElement object (property IsCircular is True).
Syntax
Set ArcElement = object.CreateArcElement3 (Template, StartPoint, PointOnCurve, EndPoint)
The CreateArcElement3 method syntax has these parts:
Part Description object A valid object. Template An Element expression. An existing element whose settings are used to initialize the new element. If Nothing, the new element's settings are initialized from MicroStation's active settings. StartPoint A Point3d expression. The element's starting point. PointOnCurve A Point3d expression. A point on the arc. EndPoint A Point3d expression. The element's ending point.
Remarks
Important: The geometric arguments are given in the coordinate system of the currently active model. Therefore, before you call this method, you should ensure that the model to which you intend to add the element is the active model. (You can make a model active by calling the Activate method of the appropriate ModelReference object.)
Version
08.00.02
Regards
Frank
since 1985: GIS, CAD, Engineering (Civil) Senior Consultant : [Autodesk Civil 3D , Esri ArcGIS, VertiGIS: in previous days : Bentley MS V4 - V8i, GeoGraphics, Bentley Map V8i, InRoads, HHK Geograf, IBr DAVID] : Dev: [C, C++, .NET, Java, SQL, FORTRAN, UML][direct quote by: http://en.wikipedia.org/wiki/Helmut_Schmidt]: "Wer Kritik übel nimmt, hat etwas zu verbergen"Wer Grammatik- und/oder Rechtschreibfehler findet, der darf sie behalten :-)
itotakayuki: I want to create Arc cell using CreateArcElement3. For example I want to make a circle cell using CreateArcElement3.
You mention three different element types in your question. Which do you want to create?
In MicroStation, a circle is a special case of an ellipse. To create a circle, use one of the CreateEllipseElement methods.
Regards, Jon Summers LA Solutions
Mr. Jon
Thank you for your responce always.
I want to put two half circles each other like a coil symbol and make a cell.
Regards,
Takayuki Ito
itotakayuki: I want to put two half circles each other like a coil symbol and make a cell.
Mr. John.
I tried what you said, but I failed.
Below is the drawing I created. But Arc is not cell.
Best regards,
>>>>>>>>>>>>>>>>>>>> Dim linepoints(0 To 1) As Point3d Dim linepoint(0 To 1) As Point3d Dim Diam As Double Dim myline As LineElement Dim length As Double Dim I As Integer Dim Wendpoint(0 To 4) As Point3d Dim Cenpt(0 To 3) As Point3d Dim myarc(0 To 4) As ArcElement
Diam = 0.01 length = 0.04
linepoints(0).x = 0: linepoints(0).y = 0 linepoints(1).x = linepoints(0).x + length: linepoints(1).y = linepoints(0).y
Set myline = CreateLineElement1(Nothing, linepoints)
myline.Color = 3 ActiveModelReference.AddElement myline myline.Redraw
' Arc 'End point For I = 0 To 4 Wendpoint(I).x = linepoints(1).x - 0.5 * Diam Wendpoint(I).y = linepoints(1).y + 0.5 * Diam + Diam - I * Diam Wendpoint(I).Z = 0 Next
For I = 0 To 2 Cenpt(I).x = linepoints(1).x - 0.5 * Diam Cenpt(I).y = linepoints(1).y + 0.5 * Diam + Diam - I * Diam - 0.5 * Diam Cenpt(I).Z = 0
Set myarc(I) = Application.CreateArcElement1(Nothing, Wendpoint(I), Cenpt(I), Wendpoint(I + 1)) myarc(I).Color = 20
ActiveModelReference.AddElement myarc(I)
myarc(I).Redraw Next
linepoint(0).x = linepoints(1).x + 0.01732: linepoint(0).y = linepoints(0).y linepoint(1).x = linepoint(0).x + length: linepoint(1).y = linepoints(0).y
Set myline = CreateLineElement1(Nothing, linepoint)
For I = 0 To 2 Wendpoint(I).x = linepoint(0).x Wendpoint(I).y = linepoint(0).y + Diam - I * Diam Wendpoint(I).Z = 0 Next
'Adjust center point for draw For I = 0 To 1 Cenpt(I).x = linepoint(0).x - 0.5 * Diam Cenpt(I).y = linepoint(0).y + 0.5 * Diam - I * Diam Cenpt(I).Z = 0
Set myarc(I) = Application.CreateArcElement3(Nothing, Wendpoint(I), Cenpt(I), Wendpoint(I + 1)) myarc(I).Color = 20
End Sub
Takayuki: length = 0.04 linepoints(0).x = 0: linepoints(0).y = 0 linepoints(1).x = linepoints(0).x + length: linepoints(1).y = linepoints(0).y
length = 0.04 linepoints(0).x = 0: linepoints(0).y = 0 linepoints(1).x = linepoints(0).x + length: linepoints(1).y = linepoints(0).y
The VBA API provides methods to manipulate geometry. Point3d, for example, lets you perform vector arithmetic on points. Matrix3d is responsible for rotation.
Using the API is more concise and expresses more clearly your intent:
linepoints(0) = Point3dZero linepoints(1) = Point3dAdd (linepoints(0), Point3dFromXY (0.04, 0)) ... For i = 0 To 4 Wendpoint(i) = Point3dAdd (linepoints(1), Point3dFromXY (- 0.5 * Diam, 0.5 * Diam + Diam - i * Diam) Next
Takayuki: I tried what you said, but I failed. Below is the drawing I created. But Arc is not cell.
I tried what you said, but I failed. Below is the drawing I created. But Arc is not cell.
You are correct: an ArcElement is not a CellElement. In your code you create several ArcElements, but nowhere in your code do you create a CellElement.
I think that I already suggested that you create an array of elements that are the components of your cell, then create the CellElement from your array using CreateCellElement1.