Message 1 of 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hi !
i want to set value of transparency to layer.
my function is
Public Function ChangeTransOfLayer(ByVal LayerFilter As String, _ ByVal LyTransValue As Integer, _ Optional ByRef Log As String = "", Optional ByRef Execute As Boolean = True) As Boolean 'http://ma22-wiki-001/eblwiki/index.php?title=Acad_(Klasse_von_EBL.Service)#ChangeTransOfLayer AcReInit() If LayerFilter.Length = 0 Then Log += "**** Fehler - kein Layer definiert" & vbCrLf Return False End If ' Todo - wenn einmal ein Filter in der Layerliste verfügbar ist Dim Layers As List(Of String) = GetLayerList(LyFilter:=LayerFilter, IgnoreXrefLayer:=True) Try Using tr As Transaction = _Database.TransactionManager.StartTransaction() '' Open the Layer table for read Dim acLyrTbl As LayerTable acLyrTbl = tr.GetObject(_Database.LayerTableId, Autodesk.AutoCAD.DatabaseServices.OpenMode.ForRead) If Execute = False Then _Editor.WriteMessage("** Befehlssimulation **" & vbCrLf) ' Todo - wenn einmal ein Filter in der Layerliste verfügbar ist ''For Each sLayerName As String In Layers Dim sLayerName As String = LayerFilter Try If Execute = True Then If acLyrTbl.Has(sLayerName) = True Then '' Open the layer if it already exists for write Dim acLyrTblRec As LayerTableRecord = tr.GetObject(acLyrTbl(sLayerName), _ Autodesk.AutoCAD.DatabaseServices.OpenMode.ForWrite) '' Set the color of the layer acLyrTblRec.Transparency = New Autodesk.AutoCAD.Colors.Transparency(CByte(LyTransValue)) End If Else _Editor.WriteMessage("Layer " & sLayerName & " - Farbe geändert in " & LyTransValue.ToString & " ..." & vbCrLf) End If Catch ex As Exception Log += "unerwarteter Fehler in EBL.Service > Acad > ChangeTransOfLayer - Loop" & vbCrLf & _ "Color:= " & LyTransValue.ToString & vbCrLf & _ "LayerFilter:= " & LayerFilter & vbCrLf & _ "Log:= " & Log & vbCrLf & _ "Execute:= " & Execute.ToString & vbCrLf & _ ex.ToString() End Try '' Next tr.Commit() End Using Catch ex As Exception Log += "unerwarteter Fehler in EBL.Service > Acad > ChangeTransOfLayer - Loop" & vbCrLf & _ "Color:= " & LyTransValue.ToString & vbCrLf & _ "Layername:= " & LayerFilter & vbCrLf & _ "Log:= " & Log & vbCrLf & _ "Execute:= " & Execute.ToString & vbCrLf & _ ex.ToString() Return False End Try Return True End Function
when i run the function by LyTransValue=80 the transparency in layer-Manager will be 68 !!!
why?? could someone help to me?
regards Jan
Solved! Go to Solution.