| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY GeForce RTX® 4090, RTX® 4080 16GB, und RTX® 4080 12GB; PNY stellt die neue Generation der NVIDIA GeForce RTX 40 GPUs vor |
Autor
|
Thema: Äußere Kontur eines Profils automatisch ausgeben in IDW (2612 / mal gelesen)
|
Bienenkopf Mitglied Maschinenbau Ingenieur
Beiträge: 210 Registriert: 04.11.2005 Inventor Professional 2022
|
erstellt am: 16. Okt. 2018 09:28 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, lange ist es her, dass ich mich in diesem Forum aktiv getummelt habe Passiver Leser bin ich aber trotzdem häufig um mir mal schnell eine Lösung für ein Problem zu beschaffen In diesem Fall bin ich aber leider nicht auf eine passende Antwort gestoßen, vllt. habe ich auch falsche gesucht?! Problem/Frage: Wir haben bei uns häufig Zeichnungen (IDWs) von Alu-Profilen in der lediglich der Querschnitt dargestellt wird. Da die Profile häufig beschichtet werden ist auf der Zeichnung die Angabe der äußeren Kontur sehr interessant um Kosten der Beschichtung zu kalkulieren. In der IPT gibt es die Funktion "Kontur messen", welche den gewünschten Wert ausgibt. Lässt sich dieser Wert auch irgendwie automatisch in der IDW darstellen? PS: Die Profile werden auch in der IPT immer in der selben Lage im Koordinatensystem und auch nur mit einer Skizze modelliert - falls man hier die Info rausziehen kann/muss?!
------------------ MfG Pablo lesen gefährdet die Dummheit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leo Laimer Moderator CAD-Dienstleister
Beiträge: 26104 Registriert: 24.11.2002 IV bis 2019
|
erstellt am: 16. Okt. 2018 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Hallo, Man kann in der Zeichnung z.B. innerhalb eines freien Textes die physikalische Modell-Eigenschaft "Bereich" anziehen. Das ist die gesamte Oberfläche des Modells. Kommt auf die Beschichtungs-Art an ob das nun exakt passt für Deine Zwecke, z.B. für Tauchlackieren würde es stimmen, für elektrostatisch Pulverbeschichten nicht ganz. ------------------ mfg - Leo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bienenkopf Mitglied Maschinenbau Ingenieur
Beiträge: 210 Registriert: 04.11.2005 Inventor Professional 2022
|
erstellt am: 16. Okt. 2018 10:00 <-- editieren / zitieren --> Unities abgeben:
Hi Leo, die Funktion, die du genannt hast kenne ich auch. Die Einschränkung die du genannt hast auch Genau darum geht es leider. Wie gesagt brauche ich nur die äußere Kontur des Querschnittes, da wie du vermutet hast eine elektristatische Pulverbeschichtung vorgenommen wird. Zudem soll auch nicht die Oberfläche sondern nur die Querschnittskonturlänge angegeben werden. Um ebenen je nach Länge des Profils schnell die Kosten aufschlüsseln zu können. ------------------ MfG Pablo lesen gefährdet die Dummheit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
himmelblau Mitglied
Beiträge: 532 Registriert: 11.11.2004
|
erstellt am: 16. Okt. 2018 10:11 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Kannst nen abgeleiteten körper nehmen und da alle hohlräume löschen, dann is area/profillänge die konturlänge, geht per illogic. Oder du bemaßt die kontur in der skizze mit getriebenen bemaßungen und addierst die in einem benutzerparameter. Weiß nur nich ob inv 2011 schon bogenlängen bemaßen konnte, sonst musste mit winkel, radius und pi rechenen. Ellipsen und splines kommen hoffentlich nich vor. ------------------ himmelblau Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leo Laimer Moderator CAD-Dienstleister
Beiträge: 26104 Registriert: 24.11.2002 IV bis 2019
|
erstellt am: 16. Okt. 2018 10:32 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Zitat: Original erstellt von Bienenkopf: Hi Leo,die Funktion, die du genannt hast kenne ich auch. Die Einschränkung die du genannt hast auch Genau darum geht es leider. Wie gesagt brauche ich nur die äußere Kontur des Querschnittes, da wie du vermutet hast eine elektristatische Pulverbeschichtung vorgenommen wird. Zudem soll auch nicht die Oberfläche sondern nur die Querschnittskonturlänge angegeben werden. Um ebenen je nach Länge des Profils schnell die Kosten aufschlüsseln zu können.
Hatten wir hier und mit Autodesk schon reichlich diskutiert, es ist leider nicht so trivial wie Du aufs Erste glaubst. Elektrostatik wirkt ein bisserl in Nischen und Hohlräume hinein, und wie soll das CAD-Programm das ohne die Technologie wirklich zu kennen berücksichtigen? Wenn es Dir um immer wiederkehrende Profile geht kannst Du vielleicht je ein Template erstellen wo ein Benutzerdefiniertes iProp den Profil-Umfang beschreibt und den mit der individuellen Profillänge multiplizieren.
------------------ mfg - Leo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
Beiträge: 13310 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 16. Okt. 2018 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Moin! Eine Lösung in der idw wüsste ich nicht, und automatisch schon gar nicht. Nur selber machen im ipt. Das Messen-Tool gibt auch die Konturlänge einer Fläche aus, und zwar immer nur die äußere. Zumindest ist es in IV 2017 und 2018 so. Du hast tatsächlich immer noch 2011? ------------------ Roland www.Das-Entwicklungsbuero.de It's not the hammer - it's the way you hit! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AnMay Mitglied Konstrukteur MB
Beiträge: 632 Registriert: 16.02.2008 Inventor 2019 Inventor 2023
|
erstellt am: 16. Okt. 2018 14:27 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
|
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 702 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 16. Okt. 2018 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
es wäre auch eine Lösung mit einem Makro denkbar: - in der IDW, Makro starten (Button) - Auswahl einer Kante durch den Benutzer "im Makro": ausgehend von der Kante wird die zugehörige Modell-Fläche ermittelt (i.d.R. sollten das zwei Flächen sein - umschalten durch Tastendruck); davon wird der "OuterLoop" (das ist die Sammlung aller Kanten, die die Fläche begrenzen; es gibt auch einen InnerLoop falls die Fläche ein Loch hat - hier nicht wichtig) genommen und davon die Länge bestimmt, das sollte ziemlich genau dem "Kontur messen" entsprechen; dieser Messwert landet z.B. in die Zwischenablage - der Benutzer erstellt einen Notiztext (oder was auch immer) und fügt dort den Inhalt der Zwischenablage ein (einen Notiztext per Makro zu erzeugen, habe ich nocht nicht gemacht; stelle ich mir problematisch vor; deshalb die Krücke mit der Zwischenablage) Das Ergebnis wäre ein dummer Text, der nach einer Modelländerung falsch sein könnte... Hier liegt vmtl. der große Vorteil der iLogic-Lösung im vorigen Beitrag. Falls an dieser Lösung trotzdem Interesse besteht, könnte ich das zusammenbasteln und hier posten. ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fischkopp Mitglied
Beiträge: 375 Registriert: 23.02.2004 Der vernünftige Mensch paßt sich der Welt an; der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen.<P>Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab. (George Bernard Shaw)
|
erstellt am: 16. Okt. 2018 19:47 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
|
Bienenkopf Mitglied Maschinenbau Ingenieur
Beiträge: 210 Registriert: 04.11.2005 Inventor Professional 2022
|
erstellt am: 17. Okt. 2018 08:25 <-- editieren / zitieren --> Unities abgeben:
Hallo ihr Lieben, erst einmal vielen Dank für eure Hilfestellungen. @Leo Das CAD Programm soll nicht berücksichtigen wo das Pulver hinwandern könnte, es geht nur um die äußere Kontur, dar das der Wert für die Kostenermittlung ist. Den Wert manuel als iProp zu schreiben kam mir auch in den Sinn - ist aber eben nicht automatisch und ich habe bedenken, dass es einmal gemacht und dann bei Änderungen vergessen wird @Roland Habe in einer neuen Firma angefangen und hier wird noch INV11 genutzt. Ich finde die einschränkung in vielen Bereichen auch "schwierig" ^^ Hatte vorher auch mit 2018 gearbeitet. Das Messentool kenn ich bereits wie eingangs erklärt. @AnMay Die Regel klingt sehr interessant. Wie ich aber dem Wert auf dem Bild entnehmen kann, wird die Summer der Außen- UND Innenkontur ausgegeben. Wäre es nur die Außenkontur, wäre das genaus das, was ich suche! @Krabby Ein interessanter Ansatz. Ich finde ich die Möglichkeit die Außenkontur in der IDW statt der IPT zu messen schon sehr ansprechend. Ich habe versucht mir das selber hinzubasteln, bin aber gescheitert. Wenn du mir das aushelfen könntest wäre das wirklich super. @Fischkopp Wie bei @Leo Falls sonst noch einer eine Idee hat immer her damit. Vielen Dank noch mal für eure Mühe - Es Regnet Unities ------------------ MfG Pablo lesen gefährdet die Dummheit
[Diese Nachricht wurde von Bienenkopf am 17. Okt. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leo Laimer Moderator CAD-Dienstleister
Beiträge: 26104 Registriert: 24.11.2002 IV bis 2019
|
erstellt am: 17. Okt. 2018 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Zitat: Original erstellt von Bienenkopf: ... @Leo Das CAD Programm soll nicht berücksichtigen wo das Pulver hinwandern könnte, es geht nur um die äußere Kontur, dar das der Wert für die Kostenermittlung ist. Den Wert manuel als iProp zu schreiben kam mir auch in den Sinn - ist aber eben nicht automatisch und ich habe bedenken, dass es einmal gemacht und dann bei Änderungen vergessen wird ...
Umgekehrt kann eine Automatik ebenso Probleme machen, so wie z.B. der automatische Eintrag des Modell-Gewichts in der Zeichnung. Wenn man IV das Aktualisieren der Masseeigenschaften automatisch beim Speichern erledigen lässt, dauert der Speichervorgang unverhältnismäßig lange. Macht man es manuell kann man auch mal drauf vergessen - und dann steht im Fall der Automatik nichts drin, und das ist mindestens genauso schlimm als ein manueller Eintrag der vielleicht nur geringfügig falsch ist. Um wie viele verschiedene Profile/Querschnitte geht es denn? ------------------ mfg - Leo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nightsta1k3r Ehrenmitglied V.I.P. h.c. plaudern
Beiträge: 11223 Registriert: 25.02.2004 Hier könnte ihre Werbung stehen!
|
erstellt am: 17. Okt. 2018 08:55 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Zitat: Original erstellt von Bienenkopf: Habe in einer neuen Firma angefangen und hier wird noch INV11 genutzt.
Du meinst IV 2011, IV11 gabs auch und ist noch mal 4 Jahre älter. ------------------
------------------ Der Clown ist die wichtigste Mahlzeit am Tag. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 702 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 17. Okt. 2018 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
hier die angekündigte Makro-Idee ist recht gebastelt, nicht groß getestet... das basiert im Grunde auf diesem Beitrag: https://ww3.cad.de/foren/ubb/Forum258/HTML/001618.shtml#000005 Bei dem Themen Class und Events weiß ich nicht so recht, was ich da eigentlich mache. Nunja, bei mir läuft es durch und scheint das zu machen, was es soll. Ob das auch mit IV2011 so klappt, wirst Du rausfinden müssen. Code für Class-Modul "clsModellAusIDW_Measure"
Code: ' verwendet in Sub "IDW_Kontur_messen" ' ' Option Explicit Private WithEvents eI As Inventor.InteractionEvents Private WithEvents eS As Inventor.SelectEvents Private AuswahlAktiv As Boolean Private occ As Inventor.ComponentOccurrence Private m_ModelGeom As Object 'hinzu KraBBy Private oFace As Face 'hinzu KraBBy
Private Sub eS_OnPreSelect(ByRef PreSelectEntity As Object, _ ByRef DoHighlight As Boolean, _ ByRef MorePreSelectEntities As Inventor.ObjectCollection, _ ByVal SelectionDevice As Inventor.SelectionDeviceEnum, _ ByVal ModelPosition As Inventor.Point, _ ByVal ViewPosition As Inventor.Point2d, _ ByVal View As Inventor.View) DoHighlight = False Set MorePreSelectEntities = ThisApplication.TransientObjects.CreateObjectCollection '' Referenz zur Kante. Dim zKante As Inventor.DrawingCurve Set zKante = PreSelectEntity.Parent '' auf zugehörige Modellkante bzw. Modelfläche zugreifen. Dim mGeom As Object ' As Inventor.EdgeProxy ODER Inventor.FaceProxy Set mGeom = zKante.ModelGeometry '' trotz des kDrawingCurveSegmentFilter - Filters können auch Linien von Skizzen '' (die Ansichtbezogen erstellt wurden wie z.B.: Schnittverlauf) '' selektiert werden, deswegen folgende If-Then-Else-Bediengung. If mGeom.Type = Inventor.ObjectTypeEnum.kFaceProxyObject _ Or mGeom.Type = Inventor.ObjectTypeEnum.kEdgeProxyObject Then '' Bezug auf referenziertes Modell festlegen. 'Set occ = mGeom.ContainingOccurrence 'hier noch Quatsch! es gibt keine Occurence bei Einzelteil (ipt)! ElseIf mGeom.Type = Inventor.ObjectTypeEnum.kFaceObject Then Set oFace = mGeom ElseIf mGeom.Type = Inventor.ObjectTypeEnum.kEdgeObject Then If ShiftPressed Then Set oFace = mGeom.Faces(2) Else Set oFace = mGeom.Faces(1) 'Shift-Taste unterscheidet! Else: Exit Sub End If 'Var auf ModulEbene 'hinzu KraBBy Set m_ModelGeom = mGeom '' Referenz zur Ansicht. Dim aktAnsicht As Inventor.DrawingView Set aktAnsicht = zKante.Parent '' Alle Modellkanten abrufen. Dim zKantEnum As Inventor.DrawingCurvesEnumerator Set zKantEnum = aktAnsicht.DrawingCurves(oFace) 'war (occ), jetzt (oFace) '' Alle Modellkanten "PreSelectieren" bzw. hervorheben. Dim Kante As Inventor.DrawingCurve For Each Kante In zKantEnum Call MorePreSelectEntities.Add(Kante.Segments(1)) Next DoHighlight = True End Sub 'Public Function SucheTeil() As ComponentOccurrence 'entfernt, siehe Quelle Private Sub Class_Initialize() AuswahlAktiv = True End Sub Private Sub Class_Terminate() '' Aufräumen eI.Stop Set eS = Nothing Set eI = Nothing End Sub Private Sub ToolTipAnzeigen() ThisApplication.GeneralOptions.ShowCommandPromptTooltips = True eI.StatusBarText = "Kante/Fläche wählen." End Sub Private Sub eS_OnSelect(ByVal JustSelectedEntities As ObjectsEnumerator, _ ByVal SelectionDevice As SelectionDeviceEnum, _ ByVal ModelPosition As Point, _ ByVal ViewPosition As Point2d, _ ByVal View As View) '' Schleife beenden. AuswahlAktiv = False End Sub Public Function SucheModelFlaeche() As Face 'Kopie von SucheTeil() '' neues InteractionEvents-Object erzeugen. Set eI = ThisApplication.CommandManager.CreateInteractionEvents '' Interaction aktivieren. eI.InteractionDisabled = False 'eI.SelectionActive = True '' Referenz zum SelectEvent. Set eS = eI.SelectEvents '' Filter setzen eS.AddSelectionFilter (Inventor.SelectionFilterEnum.kDrawingCurveSegmentFilter) ToolTipAnzeigen '' InteractionEvents starten. eI.start '' Schleife erzeugen: bis Auswahlvorgang beendet ist. Do While AuswahlAktiv ThisApplication.UserInterfaceManager.DoEvents Loop '' Fläche zurückgeben. If eS.SelectedEntities.Count > 0 Then Set SucheModelFlaeche = oFace Else: Set SucheModelFlaeche = Nothing End If End Function
der eigentliche Aufruf (Sub IDW_Kontur_messen) und zugehörige Hilfsfunktionen
Code: Option ExplicitDeclare PtrSafe Function GetKeyState Lib "user32" (ByVal vKey As Integer) As Integer 'vmtl. muss bei der älteren IV-Version das PtrSafe weg Function ShiftPressed() As Boolean 'Returns True if shift key is pressed ShiftPressed = GetKeyState(vbKeyShift) < 0 ' 16 = vbKeyShift End Function Sub IDW_Kontur_messen() ' ' 'Fläche auswählen, siehe auch Class Module Dim ModellAusIDW As New clsModellAusIDW_Measure Dim oFl As Face Set oFl = ModellAusIDW.SucheModelFlaeche 'Außenkontur der Fläche erhalten Dim oEdgeLoop As EdgeLoop For Each oEdgeLoop In oFl.EdgeLoops If oEdgeLoop.IsOuterEdgeLoop Then Exit For Next 'EdgeLoop 'oEdgeLoop ist jetzt der "OuterLoop" ' gibt es Fälle, mit mehreren "outerLoops"? 'MeasureTools Dim oMeas As MeasureTools Set oMeas = ThisApplication.MeasureTools Dim sL As Single sL = oMeas.GetLoopLength(oEdgeLoop) 'gemessene Länge der Kontur (in IV-Einheiten: cm) sL = Round(sL * 10, 1) 'Zahl in mm umrechnen und runden 'Schlussmeldung MsgBox sL, , "Umfang in mm" 'Ergebnis in die Zwischenablage Call copy2clipboard("Umfang: " & CStr(sL) & " mm") End Sub Function copy2clipboard(ByVal txt As String) As Boolean 'kopiert txt in die Zwischenablage von Windows 'benötigt die Reference "Microsoft Forms 2.0 Object Library"! On Error Resume Next Dim MyData As DataObject Set MyData = New DataObject MyData.SetText txt MyData.PutInClipboard If Err.Number = 0 Then copy2clipboard = True Else copy2clipboard = False End If End Function
------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Xantes Ehrenmitglied
Beiträge: 1695 Registriert: 22.07.2001 Intel(R) Xeon(R) CPU E5-1620v2 @3.70GHz 32GB HS Windows 10 Professional Quadro K2000D mit zwei Monitoren (2x27") 2x SSD SATA III 512 GB Premium<P>Inventor 2021
|
erstellt am: 17. Okt. 2018 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Dafür gibt es eine ganz simple Methode. Die Fläche wird einmal für jedes Profil pro Längeneinheit ermittelt, als benutzerspezifische Eigenschaft abgespeichert und bei Änderung der Länge passt sich die Fläche automatisch an, wenn man die Formel dafür eingegeben hat. Ich kann mir nicht vorstellen, dass ihr tausend Profilarten habt. Gruß, Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Daniel-san Mitglied TZ
Beiträge: 17 Registriert: 23.06.2011 Inventor 2018 VAULT Pro 2018 Xeon E31230 @3,2GHz NvidiaQuadro K2200 32GB Ram Win7 64bit
|
erstellt am: 18. Okt. 2018 07:33 <-- editieren / zitieren --> Unities abgeben: Nur für Bienenkopf
Guten Morgen, meiner Ansicht nach ist das wirklich leicht mittels Benutzerdefiniertem Parameter zu lösen. Jedem Linienzug in der Skizze des Profilquerschnittes ist ja durch die Bemaßung ein Parameter zugeordnet. Diese Parameter werden innerhalb des Benutzerdefinierten Parameters addiert und auf der Zeichnung als Text ausgegeben. Funktioniert 1A - bei uns auf Arbeit machen wir das seit langem erfolgreich so mit Dichtschnüren, die verschiedenste Formen/ Geometrie der Dichtnuten und Längen haben.
------------------ CAD is OK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bienenkopf Mitglied Maschinenbau Ingenieur
Beiträge: 210 Registriert: 04.11.2005 Inventor Professional 2022
|
erstellt am: 18. Okt. 2018 09:51 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe jetzt eine funktionierende Regel Danke Krabby für eine Code, den habe ich als Basis genommen und etwas abgewandelt. In der IDW wähle jetzt die Regel aus, klicke auf die Querschnittskontur und die Länge der ÄUßEREN Kontur wird in den Schriftkopf eingetragen bzw. überschrieben. Genauso hab ich mir das vorgestellt @Xantes Es ging mir nicht um die Fläche sondern um die Konturlänge (auch wenn man das damit genauso rechnen kann und nein tausend haben wir nicht, aber weit ü100. Das manuelle Eintragen wollte ich außerdem umgehen um bei Änderungen fehler zu vermeiden. @Daniel Da erhaltet ihr aber die GESAMTE Konturlänge und nicht nur die äußere oder? Für alle die es ggf. auch mal brauchen hier mein erweiteter Code. Der Code für Class-Modul ist gleich geblieben (siehe Post von KraBBy) Code:
Sub IDW_Kontur_messen() ' ' 'Fläche auswählen, siehe auch Class Module Dim ModellAusIDW As New clsModellAusIDW_Measure Dim oFl As Face Set oFl = ModellAusIDW.SucheModelFlaeche 'Außenkontur der Fläche erhalten Dim oEdgeLoop As EdgeLoop For Each oEdgeLoop In oFl.EdgeLoops If oEdgeLoop.IsOuterEdgeLoop Then Exit For Next 'EdgeLoop 'oEdgeLoop ist jetzt der "OuterLoop" ' gibt es Fälle, mit mehreren "outerLoops"? 'MeasureTools Dim oMeas As MeasureTools Set oMeas = ThisApplication.MeasureTools Dim sL As String sL = oMeas.GetLoopLength(oEdgeLoop) 'gemessene Länge der Kontur (in IV-Einheiten: cm) sL = Round(sL * 10, 1) 'Zahl in mm umrechnen und runden 'Schlussmeldung MsgBox sL, , "Umfang in mm" ' Get the active document. Dim Doc As Document Set Doc = ThisApplication.ActiveDocument ' Update or create the custom iProperty. Call UpdateCustomiProperty(Doc, "Umfang", sL)
End Sub Public Sub UpdateCustomiProperty(ByRef Doc As Document, _ ByRef PropertyName As String, _ ByRef PropertyValue As String) ' Get the custom property set. Dim customPropSet As PropertySet Set customPropSet = Doc.PropertySets.Item( _ "Inventor User Defined Properties") ' Get the existing property, if it exists. Dim prop As Property On Error Resume Next Set prop = customPropSet.Item(PropertyName) ' Check to see if the above call failed. If it failed ' then the property doesn't exist. If Err.Number <> 0 Then ' Failed to get the existing property so create a new one. Set prop = customPropSet.Add(PropertyValue, PropertyName) Else ' Change the value of the existing property. prop.Value = PropertyValue End If End Sub
------------------ MfG Pablo lesen gefährdet die Dummheit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bienenkopf Mitglied Maschinenbau Ingenieur
Beiträge: 210 Registriert: 04.11.2005 Inventor Professional 2022
|
erstellt am: 18. Okt. 2018 10:27 <-- editieren / zitieren --> Unities abgeben:
Jetzt habe ich doch eine kleine Einschränkung festgestellt. Die Außenkontur wird nur ermittelt, wenn auch eine Innenkontur vorhanden ist Andernfalls kann ich nicht die gesamt Kontur anklicken (dafür muss ich mit der Maus über eine Innenkontur fahren) sondern nur eine Linie (s.Bild) Das führt natürlich zu einem falschen Ergebnis. Leider weiß ich nicht wo da der Fehler liegt Jemand eine Idee?
EDIT: Hat sich erledigt. Muss im Class-Modul Teile angepasst werden. Da stehts ja "per Shift Taste...". Naja wer lesen kann usw... ^^ Hab es jetzt so abgeändert, dass keine Shift Taste mehr gedrückt werden muss, da sie Profile ehe immer mit dem Querschnitt in der Frontansicht liegen. VIELEN DANK EUCH ALLEN und besonders dir KraBBy! ------------------ MfG Pablo lesen gefährdet die Dummheit [Diese Nachricht wurde von Bienenkopf am 18. Okt. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |