Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Zeichnungsmaß Modellparameter (wieder) anfügen

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:  Zeichnungsmaß Modellparameter (wieder) anfügen (576 / mal gelesen)
EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 03. Nov. 2020 14:52    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

Hallo zusammen,

ich hab hier ein kleines Problem wo ich hoffe das mir jemand den richtigen Hinweis geben kann.

Folgendes Makro macht nichts weiteres als einen eventuell vorhandenen Zusatztext an Zeichnungsmaßen zu entfernen und wieder hinzu zu fügen.

Klappt prima!

Sprich in Klammern gesetzte Maße bekommen die Klammer entfernt, Maßen wie 10 x 123 ( = 1230) wird Präfix und Suffix zu 123 entfernt und allen hinterher wieder korrekt angefügt.


Nun zum Problem:

Ist im Präfix oder Suffix der Verweis auf einen Modellparameter hinterlegt, crasht das Makro an der Stelle wo es Prä- und Suffix wieder hinzufügen soll. Das ist schlecht.


Code:

Public Sub Call_DrwDim_Praefix_Suffix()

Dim oDrwDim As DrawingDimension

Dim sPraeFix As String, sSufFix As String

Set oDrwDim = ThisApplication.CommandManager.Pick(kDrawingDimensionFilter, "Maß wählen")

Call Cut_DrwDim_Praefix_Suffix_Text(oDrwDim, sPraeFix, sSufFix)

Stop

Debug.Print sPraeFix
Debug.Print sSufFix

Stop

Call Add_DrwDim_Praefix_Suffix_Text(oDrwDim, sPraeFix, sSufFix)

End Sub

'*****
Private Sub Cut_DrwDim_Praefix_Suffix_Text(oDrwDim As DrawingDimension, ByRef sPraeFix As String, ByRef sSufFix As String)

Dim sDimFormattedTxt As String

sDimFormattedTxt = oDrwDim.Text.FormattedText

If sDimFormattedTxt <> "<DimensionValue/>" Then
    sPraeFix = Left(sDimFormattedTxt, InStrRev(sDimFormattedTxt, "<DimensionValue/>") - 1) ' holt Präfix
    sSufFix = Right(sDimFormattedTxt, Len(sDimFormattedTxt) - InStrRev(sDimFormattedTxt, "<DimensionValue/>") + 1 - Len("<DimensionValue/>")) 'holt Suffix
End If

oDrwDim.Text.FormattedText = "<DimensionValue/>"

End Sub

'*****
Private Sub Add_DrwDim_Praefix_Suffix_Text(oDrwDim As DrawingDimension, ByRef sPraeFix As String, ByRef sSufFix As String)

Dim sDimFormattedTxt As String

sDimFormattedTxt = sPraeFix & "<DimensionValue/>" & sSufFix

Debug.Print sDimFormattedTxt

Stop

'!!! Hier crashts bei ModellParametern
oDrwDim.Text.FormattedText = sDimFormattedTxt

sPraeFix = ""
sSufFix = ""


End Sub



Dabei wird entsprechender String sauber ausgelesen und wieder gegeben
TollerParameter x Maß
<Parameter Resolved='True' ComponentIdentifier='C:\TollesTeil.ipt' Name='TollerParameter' Precision='2'>10</Parameter> x <DimensionValue/>

Vielen Dank schonmal für eure Mühen


Grüße

EIBe 3D

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 03. Nov. 2020 15:36    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

Hier scheint der Hund begraben zu liegen. Mal schauen wie ich das auseinander nehmen muss bis es läuft.

Sobalds jemand raus haben sollte, immer her da mit.

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 03. Nov. 2020 17:20    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

Leider bin ich bisher nicht weiter gekommen,

nach einigen erfolglosen manuellen Versuchen den formattedText zu beschreiben war mein bisher letzter Versuch alle xml-relevanten Sonderzeichen durch:

Code:

....
If InStr(1, sSufFix, "'") Then
    sSufFix = Replace(sSufFix, "'", "'")
End If

If InStr(1, sSufFix, "<") Then
    sSufFix = Replace(sSufFix, "<", "<")
End If

If InStr(1, sSufFix, ">") Then
    sSufFix = Replace(sSufFix, ">", ">")
End If

If InStr(1, sPraeFix, "'") Then
    sPraeFix = Replace(sPraeFix, "'", "'")
End If

If InStr(1, sPraeFix, "<") Then
    sPraeFix = Replace(sPraeFix, "<", "<")
End If

If InStr(1, sPraeFix, ">") Then
    sPraeFix = Replace(sPraeFix, ">", ">")
End If

sDimFormattedTxt = sPraeFix & "<DimensionValue/>" & sSufFix

...


zu ersetzen. Der String wird im Maß auch sauber umgewandelt angezeigt, sowie sauber vor dem Maß angezeigt.

Aber irgendwie weigert sich Inventor den Befehl auch entsprechend umzusetzen.


Grüße

EIBe 3D

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

EIBe 3D
Mitglied
Dipl. - Ing. (FH)


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

Beiträge: 267
Registriert: 24.01.2020

HP Z4 G4 Workstation
Xeon 3,6 32GB
Nvidia P2000
WIN10
SW2015 SP5.0
SW2017
*************
Inv2018 akt.SP

erstellt am: 04. Nov. 2020 09:26    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

Nach weiteren Recherchen scheint es ein Bug in Inventor zu sein.

Betroffen sind wohl Zeichnungen in denen sich eine referenzierte .iam befindet. Bei Zeichnungen mit Bezug auf .ipts soll der Fehler nicht auftreten.

Gefixt wurde dieser wohl in Inv2020


Grüße

EIBe 3D

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