FastFiber

Send to back

Gestart door TeQnologie, vr 16 07 2004, 10:38:09

Vorige topic - Volgende topic

TeQnologie

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..

Joop

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
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

TeQnologie

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.

Anonymous

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

TeQnologie

Thnx zal er eens naar kjiken, maar ik snap hem nog niet helemaal..

Anonymous

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

FastFiber