Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Maßeinheiten umstellen für Punkte in Makro

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:  Maßeinheiten umstellen für Punkte in Makro (1627 mal gelesen)
winter7288
Mitglied
Konstrukteur


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

Beiträge: 40
Registriert: 03.07.2008

erstellt am: 11. Dez. 2012 11:14    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!

Ich habe hier ein Makro, daß automatisch von einem Programm zur Laufradberechnung ausgeworfen wird. Danach wird ein Flächenmodell erstellt. Das Programm gibt die Koordinaten in mm aus, dummerweise rechnet Inventor intern aber in cm.

Das ganze sieht so aus:

Code:
[...]
Private Sub Hub()
  Dim oPlSketch As PlanarSketch
  Set oPlSketch = oPartCompDef.Sketches.Add(oWorkPl)
  Dim Hub_Spline_FitPoint As ObjectCollection
  Set Hub_Spline_FitPoint = ThisApplication.TransientObjects.CreateObjectCollection
  Dim Hub_Spline_Point(0 To 79) As Point2D
  Set Hub_Spline_Point(0) = oTrans.CreatePoint2D(10.000000,0.000000)
  Set Hub_Spline_Point(1) = oTrans.CreatePoint2D(10.720179,2.353143)
  Set Hub_Spline_Point(2) = oTrans.CreatePoint2D(11.444827,4.704911)
  Set Hub_Spline_Point(3) = oTrans.CreatePoint2D(12.177537,7.054179)
  Set Hub_Spline_Point(4) = oTrans.CreatePoint2D(12.923662,9.399218)
  Set Hub_Spline_Point(5) = oTrans.CreatePoint2D(13.689911,11.737754)
[...]

Da es hier um mehrere hundert Koordinaten geht, kann ich auch nicht alle Punkte händisch um den Faktor 10 ändern. Kann ich Inventor nicht beibringen, daß er hier in mm rechnet?

Ich habe zwar etwas zu "UnitsofMeasure" gefunden, aber leider noch nichts, was funktioniert.

Ich habe es bereits mit

Code:
Set oUOM = oApplication.ActiveDocument.UnitsOfMeasure
oUOM.LengthUnits = kMillimeterLengthUnits
oUOM.LengthDisplayPrecision = 6

probiert, das führt aber bisher nicht zum Erfolg. Oder muß ich das irgendwo an anderer Stelle angeben?

Es ist so, daß die Punkte alle in Subroutinen definiert werden, die dann in "Main()" aufgerufen werden. Dort habe ich auch den o.g. Code angegeben.

Schonmal vielen Dank im voraus. 

------------------
Gruß aus dem Westerwald,
Manfred

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

winter7288
Mitglied
Konstrukteur


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

Beiträge: 40
Registriert: 03.07.2008

HP Z420 Workstation
Intel Xeon E5-1620 @3,6GHz; 32GB RAM
NVIDIA Quadro K4000; 3GB
3Dconnexion SpaceExplorer
MS Windows 7 Professional SP1 (x64)
Autodesk Product Design Suite 2014 SP2 Update 7 (x64)

erstellt am: 11. Dez. 2012 13: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 nochmaligem Durchforsten der API Reference habe ich zumindest schonmal herausgefunden, daß Inventor immer in den "database units" rechnet, ich diese Einheiten aber nicht ändern kann. 
Zitat:
The important thing to remember is that within the VBA function, you should always work in the world of Autodesk Inventor's database units: centimeters and radians.

Heißt das jetzt für mich, daß ich 1090 3D- und 160 2D-Koordinaten alle von Hand im Makro ändern muß? 

------------------
Gruß aus dem Westerwald,
Manfred

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 11. Dez. 2012 13: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 Nur für winter7288 10 Unities + Antwort hilfreich

Hallo,

du könntest mal das probieren:

Code:

  Dim i As Integer
  For i = 0 To 79
    If (Not Hub_Spline_Point(i) Is Nothing) Then
        Hub_Spline_Point(i).x = Hub_Spline_Point(i).x * 10
        Hub_Spline_Point(i).y = Hub_Spline_Point(i).y * 10
    End If
  Next

Richtig wäre aber das "Programm zur Laufradberechnung" anzupassen.

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools
FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor

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

winter7288
Mitglied
Konstrukteur


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

Beiträge: 40
Registriert: 03.07.2008

erstellt am: 11. Dez. 2012 14:11    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

Danke! Das musste ich zwar jetzt einige Male einfügen mit den entsprechenden Variablen, aber besser alle Koordinaten zu ändern.

Leider kann ich an dem Programm, das die Daten ausgibt (CFTurbo), nichts ändern. Wie kommt man aber auch darauf, in Zentimetern zu rechnen?

------------------
Gruß aus dem Westerwald,
Manfred

[Diese Nachricht wurde von winter7288 am 11. Dez. 2012 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 11. Dez. 2012 18:27    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 winter7288 10 Unities + Antwort hilfreich

Hi

Vermutlich kommt man darauf in cm zu rechnen, wenn man die mittlere Einheit zwischen Kilometer und Nanometer sucht und irgendwas das in etwa in der Größenordnung eines Inches liegt. Oder es lag daran, das ein Entwickler seinen Aluhut nicht trug, als protuberanzbedingt die Omega-3-Strahlung zunahm. 

Es ist gut das sich die Einheit nicht umstellen läßt, denn sonst wäre bei jeder Berechnung (so wie auch bei dir) Rätselraten angesagt was denn als Ergebnis herauskommt.

------------------
MfG
Ralf

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 11. Dez. 2012 18:53    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 winter7288 10 Unities + Antwort hilfreich

Hahaha...

Aber mal im Ernst. Im Angesicht der Tatsachen, dass es sich hierbei um Autodesk handelt, können wir vom Glück reden, dass uns kein Fuß getroffen hat 

BTW. Herzlichen Glückwunsch zum 1000 Beitrag Ralf! Du leistest hier hervorragende Arbeit, und hast dir schon längst den Mod-Status verdient – gerne auch in .NET Foren 

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools
FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 11. Dez. 2012 23:01    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 winter7288 10 Unities + Antwort hilfreich

Hi

Danke 

Ich hatte mir doch fest vorgenommen zum Jubiläum mal einen wohl überlegten und seriösen Beitrag zu verfassen. Und dann das. 

------------------
MfG
Ralf

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

AlbertR
Administrator
(Betriebs)Wirt


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

Beiträge: 1180
Registriert: 02.03.2000

"Wer will, dass ihm andere sagen, was sie wissen, der muss ihnen sagen, was er selbst weiß. Das beste Mittel, Informationen zu erhalten, ist, Informationen zu geben."
Nicoló Machiavelli (1469-1527)<P>IMAC / OSX ohne CAD

erstellt am: 12. Dez. 2012 21:49    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 winter7288 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von daywa1k3r:

BTW. Herzlichen Glückwunsch zum 1000 Beitrag Ralf! Du leistest hier hervorragende Arbeit, und hast dir schon längst den Mod-Status verdient – gerne auch in .NET Foren  

Hi Ralf,

herzlich Willkommen in der Mod.-Runde!

------------------
Gruss Albert

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