Ik vroeg me af of er ook een optie om een bepaalde layer of hatch altijd op send to back te zetten.
Nu doe ik als ik ga plotten quick selecteren. hatch etc. en dan send to back. maar vroeg me af of dit dus ook standaard ingesteld kan worden. Want soms vergeet ik dat weleens te doen wanneer ik ff snel iets moet plotten en dan moet ik het daarna nogmaals doen..
Misc. met een script of zo..
Alsvast bedankt..
De gemakkelijkste methode is een macro cq AutoLisp routine onder een knop van je werkbalk te plaatsen inclusief het plotcommando.
Gebruik dit als standard plot commando. Bovendien geeft dit je een zeer grote flexibiliteit in pre-plot configuratie.
Succes,
Joop
ja ok maar dan weet ik nog steeds niet hoe het moet. Ik wil gewoon dat een bepaalde layer zich altijd op de achtergrond bevindt.
Of wat jij zegt met een knop maakt me niet uit als ik het dan 1 keer indruk dan die altijd op achtergrond blijft.
hoi teqnologie,
hieronder een stukje vba, waarmee je dat dus wel kan doen.
uitleg erbij :
draworder kon ik niet vinden in het vba gedeelte.
je kan wel vanuit vba direct naar de commandline opdrachten geven.
welke opdracht hoor erbij send to back : DRAWORDER.
dus als je de opdracht draworder geeft dan kan je dus aangeven wat je naar achter wilt hebben.
nu wil jij altijd van een bepaalde layer iets naar achter plaatsen.
als je de draworder opdracht geeft vanuit vba, kan je hierna geen selectie set doorgeven. (wat wel jammer is.)
oplossing hiervoor.
zet alles van een zelfde layer in een GROUP via vba.
geef autocad het commando draworder.
geef na draworder het commando GROUP, hiermee kan een groep selecteren , en geef de naam op van de group die net met vba gemaakt is.
geef na het opgeven van deze group de opdracht BACK, en alles word naar achter geplaatst.
laat vba na deze opdracht de group weer verwijderen en meteen hierachter de opdracht PLOT geven.
ik hoop dat je er iets aan hebt.
ik vond het wel een leuke uitdaging om dit werkend te krijgen. :roll:
groetjes skylar
p.s. de selectie van welke layer kan je op de volgende manier doen
wijzig de volgende regel
LayerNaam = "LAYER1"
type de laagnaam die je wilt hebben tussen de quote's in plaats van LAYER1 (wel allemaal hoofdletters gebruiken.)
nogmaals groetjes skylar
Public Sub SEND_TO_BACK()
Dim I As Integer
Dim telitems As Integer
telitems = 0
ReDim ssobjs(0 To telitems) As AcadEntity
Dim LayerNaam As String
LayerNaam = "LAYER1"
'ZOEK ALLE OBJECTEN VAN EEN BEPAALDE LAYER
For I = 0 To ThisDrawing.ModelSpace.Count - 1
If VBA.UCase(ThisDrawing.ModelSpace.Item(I).Layer) = LayerNaam Then
ReDim Preserve ssobjs(0 To telitems) As AcadEntity
Set ssobjs(telitems) = ThisDrawing.ModelSpace.Item(I)
telitems = telitems + 1
End If
Next I
Set testgroup = ThisDrawing.Groups.Add("BACKLAYER")
testgroup.AppendItems ssobjs
ThisDrawing.SendCommand ("draworder ")
ThisDrawing.SendCommand ("g" & vbCr)
ThisDrawing.SendCommand ("BACKLAYER" & vbCr & vbCr)
ThisDrawing.SendCommand ("back" & vbCr)
ThisDrawing.Groups("BACKLAYER").Delete
ThisDrawing.SendCommand ("PLOT" & vbCr)
End Sub
Thnx zal er eens naar kjiken, maar ik snap hem nog niet helemaal..
hoi hoi
ik heb het op het werk ook geinstalleerd,
werkt bijna altijd als een tierelier :)
het is in ieder geval een begin.
maar wat begrijp je niet helemaal.
als je iets specifieker bent kan ik je wel verder helpen.
groetjes skylar