hallo zusammen,
ich stehe etwas auf dem schlauch und würde mich über eure hilfe freuen.
mit dem vba-code unten lasse ich eine klothoide als polylinie zeichne.
dazu noch zwei linie am anfang und am ende sowie text.
zum schluss würde ich gerne all diese elemente um einen bestimmten winkel,
den ich schon ermittelt habe, drehen. wie bekomme ich diese verschiedenen
elemente nun in eine auswahl? den begriff "selectionset" habe ich schon mal
gehört, kann damit aber leider nicht richtig arbeiten - bin halt anfänger...
freue mich über jede hilfe
gruß jörg
' *********** Fall 3 ******************
' ******** von rechts unten **********
' ******** nach links oben *********
' *************************************
If fall = 4 Then
GoTo 1004
Else
GoTo 3000
End If
1004:
'Senkrechte1
startPoint(0) = x1: startPoint(1) = y1
endPoint(0) = x1: endPoint(1) = y1 - 10
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
For i = 1 To 1001
If i = 1 Then
LL(i) = L1
GoTo 4000:
End If
If i = 1001 Then
LL(i) = L2
'MsgBox ("FERTIG !")
GoTo 4000:
End If
LL(i) = L1 + (i - 1) * diff
4000:
ff(i) = LL(i) / A
xx(i) = A * (ff(i) - (ff(i) ^ 5) / 40 + (ff(i) ^ 9) / 3456 - _
(ff(i) ^ 13) / 599040 + (ff(i) ^ 17) / 175472640)
xx(i) = xx(i) * (-1)
yy(i) = A * ((ff(i) ^ 3) / 6 - (ff(i) ^ 7) / 336 + _
(ff(i) ^ 11) / 42240 + (ff(i) ^ 17) / 9676800)
yy(i) = yy(i) * (-1)
points(k) = x1 + xx(i): points(k + 1) = y1 + yy(i): points(k + 2) = 0
If i = 1001 Then
xs = points(k)
ys = points(k + 1)
End If
k = k + 3
Next i
Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points)
point1(0) = xx(1): point1(1) = 25 + yy(1): point1(2) = 0
point2(0) = xx(1000): point2(1) = yy(1000) - 25: point2(2) = 0
basePoint(0) = x1: basePoint(1) = y1: basePoint(2) = 0
rotationAngle = winkel1
plineObj.Rotate basePoint, rotationAngle
Pi = 3.141592654
tau = 200 / Pi * L2 / (2 * R2)
xdreh = R2 * Cos(tau * Pi / 200)
ydreh = R2 * Sin(tau * Pi / 200)
startPoint(0) = xs: startPoint(1) = ys: startPoint(2) = 0#
endPoint(0) = xs - R2 * Cos(tau * Pi / 200): _
endPoint(1) = ys - R2 * Sin(tau * Pi / 200): endPoint(2) = 0#
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
lineObj.color = 1
basePoint(0) = xs: basePoint(1) = ys: basePoint(2) = 0
rotationAngle = 2 * 0.7853981
lineObj.Rotate basePoint, rotationAngle
textString = "A=" & A
insertionPoint(0) = x1 + xx(500) - 1: insertionPoint(1) = y1 + yy(500) - 10
height = 2
Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)
textString = "R1=" & TextBox2
insertionPoint(0) = x1 + xx(1) + 1: insertionPoint(1) = y1 + yy(1) - 2.5
height = 1
Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)
textString = "R2=" & TextBox3
insertionPoint(0) = x1 + xx(1000) - 5: insertionPoint(1) = y1 + yy(1000) + 2.5
height = 1
Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, height)
GoTo 3000:
'***************************************
'***************************************
------------------
AutoCAD 2004 DEU
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP