Is het mogelijk om de layerstructuur op een propere manier te exporteren naar excel? Ik heb het geprobeerd met de layerstate en die te exporteren, maar daar is ongelooflijk veel opkuiswerk aan.
Het is uiteindelijk de bedoeling om in excle een lijst te krijgen van de layers met hun kleuren en linetype
Ja dat is mogelijk in VBA door een instantie van excel te openen
(getobject/createobject)
door het layers opject te lopen (for I = 1 to Layers.count)
een variable aan Layer(I) toe te kennen (Set Lay = Layers(I))
en dan de gewesnste gegevens van die layer in de de gewenste cellen van een worksheet te plaatsen.
Seccus
hmmm, kan je iets duidelijker zijn? Ik heb namelijk nog nooit in VBA gewerkt en heb daar bijgevolg geen kaas van gegeten. :lol:
Daar was ik al bang voor.... en ik heb niet zo'n behoefte om jouw probleem voor je op te lossen.
misschien dat iemand anders bereid is de code voor je te schrijven maar ik huldig het standpunt helpen is gratis en voor iemand doen is betaald.
Misschien kan je, je eens in VBA verdiepen. ook al lukt dit project (niet meteen) dan kan je er altijd nog wat aan hebben.
Ook ik wil graag helpen,
ik heb er eentje die de layers naar een HTML schrijft...
mss kan je deze voorlopig gebruiken...
download hier Layerlist.vlx (http://users.telenet.be/olivier.hautekeete/Lisproutines/Layerlist.VLX)
starten van het commando doe je met 'DUMPLAYERS'
Knap gemaakt WebRacer :!:
:ole: :ole:
bedankt, het is inderdaad een prachtig hulpmiddel 8)
Tja, heb toch maar even onbetaald gewerkt........ (ach nieuwe functie voor mijn verzameling)
is dit wat?
Sub extractLayerToExcel()
Dim layer As AcadLayer
Dim X As Excel.Application
Dim Rekenblad As Workbook
Dim TabBlad As worksheet
cnt = 0
On Error Resume Next 'hier maak je natuurlijk een nette errorhandler voor :-)
Set X = GetObject(, "Excel.Application")
If err Then
err.Clear
Set X = CreateObject("Excel.Application")
End If
X.Visible = True
Set Rekenblad = X.Workbooks.add '("c:\test.xls") 'parameter voor als je een bestaande excelfile wil openen
X.ScreenUpdating = True
Set TabBlad = Rekenblad.Worksheets.item(1)
For Each layer In ThisDrawing.Layers
TabBlad.Cells(cnt, 1) = layer.Name
TabBlad.Cells(cnt, 2) = layer.Linetype
TabBlad.Cells(cnt, 3) = layer.color
cnt = cnt + 1
Next layer
End Sub
foutafhandeling en de excel file mooi opleuken doe je zelf maar :-)
Bedankt voor jouw reply Remo,
maar helaas ken ik zelfs de basis van VB niet. Ik kan er dus zelf niets mee aanvangen. :(
Even heel kort door de bocht......
open AutoCAD druk op alt F11
dubbelklik op op ThisDrawing en kopieer de vorige post (van sub tot end sub) daarin
klik dan op tools references en voeg daar microsoft excel 9 object library toe..
en klik op run (afspeel knopje)
zou moeten werken......
p.s. dit werkt dan alleen in deze tekening, wil je meer weten over VBA en autoCAD, koop een boek......
werkt prachtig, bedankt :D
misschien is dit niet de juiste plaats, maar welk boek raad je aan om VBA te beginnen? Of staat er genoeg in de boeken van R. Boeklagen?
Zeker als je net begint staan in de boeken van Ronald genoeg leuke zaken om mee te stoeien, ook is het internet een grote database met code snippers. (beetje creatief googlen met vba AutoCAD etc) ook de help file in vba zelf heeft goede mogelijkheden en voorbeeldjes....
je zult even moeten wachten voor andere boeken en isbn nummers aangezien die in mijn andere huisje liggen.....
p.s. misschien cursus vba voor AutoCAD volgen bij Ronald Boeklagen, daar heb ik ook mijn eerste schreden op het vba pad gezet tijdens de opleiding tot AutoCAD system manager.