yoin

wim2440

hello allen, ik ben beginner in vba autocad, maar zou graag de code vba kennen hoe je een block via vba insert, en wel inclusief een vooraf ingestelde kleur.
tevens is info welkom waar ik een goed autocad vba boek kan vinden (ACAD 2007 of 2008)
bedankt alvast,
wim.


Joop

Citaat van: wim2440 op zo 03 02 2008, 17:16:29
hello allen, ik ben beginner in vba autocad, maar zou graag de code vba kennen hoe je een block via vba insert, en wel inclusief een vooraf ingestelde kleur.
tevens is info welkom waar ik een goed autocad vba boek kan vinden (ACAD 2007 of 2008)
bedankt alvast,
wim.


je kunt niet een geheel block van kleur veranderen, tenzij.......
1)>>Je hebt het block getekend op laag nul met de kleur bylayer. Als je nu de block insert op een laag met de kleur rood, wordt het block geheel rood. Je kiest dus niet een vooringestelde kleur maar voor een vooringestelde laag.
2)>>Je bent bereid om alle elementen via VBA en/of Visual Lisp van kleur te veranderen.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Reimer

Het kan ook zijn dat de inhoud van het block de eigenschap BYBLOCK heeft gekregen. Wanneer je het block zelf rood maakt wordt de inhoud van het block rood weergegeven. Wanneer je de kleur van het block BYLAYER maakt wordt alles weergegeven in de kleur van de laag waar het block op staat. Het kán dus best zijn dat Wim2440 zijn block een vaste kleur wil geven.

Reimer

wim2440

Citaat van: Reimer op ma 04 02 2008, 13:47:22
Het kan ook zijn dat de inhoud van het block de eigenschap BYBLOCK heeft gekregen. Wanneer je het block zelf rood maakt wordt de inhoud van het block rood weergegeven. Wanneer je de kleur van het block BYLAYER maakt wordt alles weergegeven in de kleur van de laag waar het block op staat. Het kán dus best zijn dat Wim2440 zijn block een vaste kleur wil geven.

Reimer

dank voor uw reactie maar was niet helemaal mij vraag; ik insert via vba een block, dat gedefinieerd is als color by block, dus geen probleem. maar tijdens of direct na inserten wil ik nu het betreffende block een kleur geven. dus graag advies hoe je in vba een block kunt inserten en tegelijk de kleur bepalen ofwel na inserten de kleur kunt bepaln van laatst geinserteerd block. alvast bedankt

bedankt heer Reimer voor uw reactie, maar ik ben er nog niet helemaal uit : mijn bedoeling is om een blok, dat color byblock is getekend, te inserten en dan van de juiste kleur te voorzien, net zoals je dat manueel zou doen, wanneer je een block insert en daarna de kleur aanpast. ik ben dus op zoek naar de vba code hoe je achtereenvolgens een blok insert en daarna dit blok een kleur geeft.
mvg
wim.

Joop

Dit doe je door de de dxf code in het block op de gewenstkleur te zetten.
(62 . 4) is cyan en (62 . 3) is green, enz, enz, ........
Allen blokken met elementen in kleur BYBLOCK hebben een dxg groep 62.
De andere opties zijn altijd een vaste of laag kleur per element.

Een kleine uitbreiding:
De elementen hebben wel de kleur BYBLOCK >> (62 . 0)
De elementen met de kleur BYLAYER hebben de dxf code (62 . 256)
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

Remo

Citaat van: wim2440 op za 23 02 2008, 16:58:34
Citaat van: Reimer op ma 04 02 2008, 13:47:22
Het kan ook zijn dat de inhoud van het block de eigenschap BYBLOCK heeft gekregen. Wanneer je het block zelf rood maakt wordt de inhoud van het block rood weergegeven. Wanneer je de kleur van het block BYLAYER maakt wordt alles weergegeven in de kleur van de laag waar het block op staat. Het kán dus best zijn dat Wim2440 zijn block een vaste kleur wil geven.

Reimer

dank voor uw reactie maar was niet helemaal mij vraag; ik insert via vba een block, dat gedefinieerd is als color by block, dus geen probleem. maar tijdens of direct na inserten wil ik nu het betreffende block een kleur geven. dus graag advies hoe je in vba een block kunt inserten en tegelijk de kleur bepalen ofwel na inserten de kleur kunt bepaln van laatst geinserteerd block. alvast bedankt

bedankt heer Reimer voor uw reactie, maar ik ben er nog niet helemaal uit : mijn bedoeling is om een blok, dat color byblock is getekend, te inserten en dan van de juiste kleur te voorzien, net zoals je dat manueel zou doen, wanneer je een block insert en daarna de kleur aanpast. ik ben dus op zoek naar de vba code hoe je achtereenvolgens een blok insert en daarna dit blok een kleur geeft.
mvg
wim.

eerst de gewenste laag current maken in vba dan het block inserten en daarna de laag weer terugzetten.....


hier de standaard code voor het activeren van lagen etc...
Kan veel korter hoor deze code...

Sub Example_ActiveLayer()
    ' This example returns the current layer
    ' and then adds a new layer.
    ' Finally, it returns the layer to the previous setting.
    Dim currLayer As AcadLayer
    Dim newLayer As AcadLayer
   
    ' Return the current layer of the active document
    Set currLayer = ThisDrawing.ActiveLayer
    MsgBox "The current layer is " & currLayer.name, vbInformation, "ActiveLayer Example"
   
    ' Create a Layer and make it the active layer
    Set newLayer = ThisDrawing.Layers.Add("TestLayer")
    ThisDrawing.ActiveLayer = newLayer
    MsgBox "The new layer is " & newLayer.name, vbInformation, "ActiveLayer Example"

    ' Reset the layer to its previous setting
    ThisDrawing.ActiveLayer = currLayer
    MsgBox "The active layer is reset to " & currLayer.name, vbInformation, "ActiveLayer Example"
End Sub


groetjes


FastFiber