Beyond Inventor Wizard... The Community!

Autodesk Inventor en AutoCAD Forum

Deze macro laat toe om in een drawing,

alle tekst van bematingen in het midden te plaatsen:

 

Suggesties zijn altijd welkom. Beide icoontjes large & small zijn in bijlage toegevoegd.

Heb je er zelf mooie, wie weet kunnen we deze dan via IW verdelen.

(Zie technical paper icoontjes toevoegen aan inventor)

 

Edit: keuzemogelijkheid om enkel de selectie ofwel alles aan te passen.

Edit: Undo functie die de laatste bewerking ongedaan maakt.

Public Sub CenterDimText()

'Indien er een fout optreed
'On Error GoTo errorhandler


'Referentie naar het actieve drawingdocument
Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument

' Referentie naar de actieve sheet
Dim oSheet As Sheet
Set oSheet = oDoc.ActiveSheet

'Referentie naar een 2d-tekening bemating
Dim oDrawingDim As DrawingDimension

Dim oTxnMgr As TransactionManager
Set oTxnMgr = ThisApplication.TransactionManager
Dim oTxn As Transaction
Set oTxn = oTxnMgr.StartTransaction(oDoc, "Center Drawing Dimensions")

Dim SelectSet As Boolean
If MsgBox("Wenst u enkel de selectie aan te passen?", vbYesNo + vbQuestion) = vbYes Then
SelectSet = True
Else
SelectSet = False
End If
If SelectSet = True Then
GoTo 2
End If

'loopen door alle bematingen in de actieve sheet
For Each oDrawingDim In oSheet.DrawingDimensions

'filteren op type lineair of hoek
If TypeOf oDrawingDim Is LinearGeneralDimension Or TypeOf oDrawingDim Is AngularGeneralDimension Then

'functie om tekst in het midden te plaatsen
Call oDrawingDim.CenterText

End If
'volgende bemating
Next
oTxn.End
Exit Sub

2:

Dim oDrawingDimSelectset() As DrawingDimension
Dim a, b As Integer

Dim i As Long
For i = 1 To oDoc.SelectSet.Count
If Not oDoc.SelectSet.Item(i) Is Nothing Then
If TypeOf oDoc.SelectSet.Item(i) Is DrawingDimension Then
a = a + 1
ReDim Preserve oDrawingDimSelectset(0 To a)
Set oDrawingDimSelectset(a) = oDoc.SelectSet.Item(i)
End If
End If
Next

For b = 1 To a
Call oDrawingDimSelectset(b).CenterText
Next

Exit Sub
oTxn.End
Exit Sub

'Foutenafhandeling
errorhandler:
'Geen drawing open
If Err.Number = 13 Then MsgBox "Er is geen IDW open"

'Geen document open
If Err.Number = 91 Then MsgBox "Er is geen document open"

End Sub

Aantal maal bekeken: 681

Hierop reageren

Berichten in deze discussie

Dit werkt zonder problemen.

Echter krijg je dan soms rare resultaten:

 

Volgens mij zou deze macro veel handiger zijn als men eerst een selectie van bematingen kan maken en dan de macro runnen. Op die manier worden dan enkel die maten gecentreerd?

Indien ze dan toch allemaal moeten is het kwestie van even een filter te activeren en alle bemating te selecteren binnen een rechthoek en de macro runnen...

 

just my 2 cents!

mss een klein form'pje aan linken ofzo. Of toch eerst een melding met ja of nee vraag om alles te centreren wanneer er geen selectieset is?

lijkt me vrij gevaarlijk als je iets vergeten te selecteren bent en dan ineens alles centreert. De undo-knop gaat wss niet eens ver genoeg om alles te herstellen.

een must!!!! :D

goe bezig mannen,

doorgaan zou ik zeggen.

Jammer dat het weer zo druk is op het werk dat ik minder tijd heb voor inventor!

 

grtj

Ludwig

 

Hoi Frederic, hebt u hiervan al een werkende marco? Ik ben er naar op zoek, maar kom er nog geen tegen die met selectie mogelijkheid werkt.

Code is aangepast

Hoi Fréderic, wat een service! Helemaal top!

Een oude discussie waar ik even een toevoeging op heb gevonden.

Het voorbeeld wat hier werd gegeven had inderdaad het probleem dat wanneer de tekst te groot is om tussen de maatlijnen te plaatsen deze toch gecentreerd werd. Hiervoor heb ik de volgende iLogic-code geschreven die als extra kijkt hoe groot de tekst is en hoeveel ruimte er tussen de maatlijnen is. Wanneer de tekst nu niet tussen de maatlijnen past dan wordt deze nu gewoon genegeerd. (Zie bijlage voor de code)

Mochten jullie opmerkingen hebben op deze iLogic code dan hoor ik dat graag.

Rob.

Bijlagen:

RSS

Interessante links

Word Fan!

Inventor Wizard Cartoons

Video's

  • Video's toevoegen
  • Alles weergeven

© 2020   Gemaakt door Stefaan Boel.   Verzorgd door

Banners  |  Een probleem rapporteren?  |  Algemene voorwaarden