Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  VBA und AltUnits bei Bemaßungen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  VBA und AltUnits bei Bemaßungen (1051 mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 06. Sep. 2011 08:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Dim_AltUnits.dvb.txt


Dim_AltUnits_Test.dwg.txt

 
Moin zusammen!

Wir bekommen oft Zeichnungen mit Alternativeinhaiten bei den Bemaßungen.
Diese müssen wir oft auch entsprechend ergänzen, ändern und unserem Kunden zurückschicken.

Für unsere Fertigung sind diese Alternativeinheiten in den Zeichnungen weniger vorteilhaft.

Mittels VBA wollte ich mir mal "eben schnell" zwei Button hinzaubern,
um die Alternativeinheiten ein.- bzw. auszuschalten.

Dieses läuft auch soweit.
Die entsprechende Anzahl an Bemaßungen wird im Auswahlsat erfaßt, aber dann leider nur zum Teil abgeändert.
Kann mir jemand sagen, woran das liegt bzw. liegen könnte.

Code:

'------------------------------------------------------------------------
'########################################################################
'##--Die UserForm mit Inhalten füllen------------------------------------
Private Sub UserForm_Initialize()

With Me
    .Caption = "Alternativeinheit bei Bemaßungen Ein / Aus"
End With

With cmd_DimUnitsEin
    '.Picture = ImageList1.ListImages(2).Picture
    .PicturePosition = fmPicturePositionLeftBottom
    .Caption = "Ein"
End With

With cmd_DimUnitsAus
    '.Picture = ImageList1.ListImages(2).Picture
    .PicturePosition = fmPicturePositionLeftBottom
    .Caption = "Aus"
End With

End Sub
'------------------------------------------------------------------------
'########################################################################
'##--Ereignis beim Buttomclick auf ein-----------------------------------
Private Sub cmd_DimUnitsEin_Click()

'--Filterung--!!!
Dim DimObj As AcadEntity
Dim DimObj1 As AcadDimension
Dim DimType(0) As Integer
Dim DimData(0) As Variant
DimType(0) = 0: DimData(0) = "dimension"

'-------------------------------------------------------------
On Local Error Resume Next
'--Grundlagen für den Selectionsset Auswahlsatz--!!!
Dim DSet As AcadSelectionSet
Set DSet = ActiveDocument.SelectionSets.Add("Auswahl")
If Err <> 0 Then
    Set DSet = ActiveDocument.SelectionSets("Auswahl")
End If
'-----------------------------------------------------
'On Error Resume Next

    With DSet
        .Clear
        .Select acSelectionSetAll, , , DimType, DimData
    End With
   
Me.Caption = DSet.Count
   
For Each DimObj In DSet
    Set DimObj1 = DimObj
        DimObj1.AltUnits = True
        DimObj1.Update
Next DimObj

'Unload Me

End Sub

'------------------------------------------------------------------------
'########################################################################
'##--Ereignis beim Buttomclick auf aus-----------------------------------
Private Sub cmd_DimUnitsAus_Click()

'--Filterung--!!!
Dim DimObj As AcadEntity
Dim DimObj1 As AcadDimAligned
Dim DimType(0) As Integer
Dim DimData(0) As Variant
DimType(0) = 0: DimData(0) = "dimension"

'-------------------------------------------------------------
On Local Error Resume Next
'--Grundlagen für den Selectionsset Auswahlsatz--!!!
Dim DSet As AcadSelectionSet
Set DSet = ActiveDocument.SelectionSets.Add("Auswahl")
If Err <> 0 Then
    Set DSet = ActiveDocument.SelectionSets("Auswahl")
End If
'-----------------------------------------------------
'On Error Resume Next

    With DSet
        .Clear
        .Select acSelectionSetAll, , , DimType, DimData
    End With
   
Me.Caption = DSet.Count
   
For Each DimObj In DSet
    Set DimObj1 = DimObj
        DimObj1.AltUnits = False
        DimObj1.Update
Next DimObj

'Unload Me

End Sub


Für eine kurzfristige Hilfstellung wäre ich sehr dankbar.

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1357
Registriert: 24.07.2002

AutoCAD ACA 2018
Solidworks 2016 Sp5
Enterprise PDM 2016 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Samsung S24C650
Dell M4800

erstellt am: 06. Sep. 2011 09:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dirk.B 10 Unities + Antwort hilfreich

Hi Dirk,

Entferne erst einmal deine "On Local Error Resume Next" aus dem Code un schau mal, wo der dabei einen Fehler wirft.
Dann kann man weiter schauen,

Gruß, Carsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


Sehen Sie sich das Profil von Dirk.B an!   Senden Sie eine Private Message an Dirk.B  Schreiben Sie einen Gästebucheintrag für Dirk.B

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 07. Sep. 2011 06:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Moin Carsten!

Danke für den Tipp.
Der Fehler lag hier:

Code:

Private Sub cmd_DimUnitsAus_Click()

'--Filterung--!!!
Dim aDimObj As AcadEntity
'Dim aDimObj1 as AcadDimAligned /// dieses muß natürlich AcadDimension lauten!!!!
Dim aDimObj1 As AcadDimension
Dim aDimType(0) As Integer
Dim aDimData(0) As Variant
aDimType(0) = 0: aDimData(0) = "DIMENSION"


Nun läuft es prima.

Schönen Tag noch.

------------------
Gruß

Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz