Hallo,
vermutlich habe ich irgendwo einen Denkfehler.
Ich möchte verschiedene Layergruppen in einer Datenbank anlegen und von dort wieder abrufen. Der Punkt an dem meine Probleme anfangen ist folgender: Wenn ich die Daten aus der Datenbank auslese um die Layer anzulegen kommt die Strichstärke als String von der Datenbank z.B. "acLnWt050" Autocad benötigt bei der Zuordnung aber einen Wert vom Type ACAD_LWeight als Ergebnis bekomme ich folglich einen Typenkonflikt
Und hier ein Codeschnipsel hoffentlich zur Veranschaulichung:
With DB_Layer_Var 'DB_Layer_Var ist mein Recordset aus der DB
For i = 0 To 2
.FindFirst "ID=" & Layer_Var_ID(i) 'Datensatzsuche - Layer_Var_ID enthält versch. Indexnummern zum anspringen der richtigen Datensätze für Strichstärke, Linientype...
Do Until .NoMatch = True
Layer_Var(i) = .Fields(1)
.FindNext "ID=" & Layer_Var_ID(i)
Loop
Next
Set layerObj = ThisDrawing.Layers.Add(Layer_Name)
With layerObj
.color = Layer_Farbe
.Description = Layer_Beschreibung
.Linetype = Layer_Var(1)
.Lineweight = Layer_Var(0) 'Layer_Var(0) wird in der ersten Schleife mit dem String aus der DB gefüllt (z.B. "acLnWt050"), hier bräuchte ich aber einen anderen Type
End With
End With
Ich könnte mir vorstellen dass das irgendwie über eine Funktion laufen könnte z.B.
Function Str_To_ACLnWtX(LinienStaerke As String) As ACAD_LWEIGHT
For each LDicken in ThisDrawing.***
if LDicken.Name=LinienStaerke then
Str_To_ACLnWtX=LDicken.Value
exit functin
end if
next
end function
mit dem Aufruf:
.Lineweight = Str_To_ACLnWtX Layer_Var(0)
Gibts da sowas in der Art?
Ich hoffe das warhalbwegs verständlich?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP