FreeTrack Forum
FreeTrack Forum > FreeTrack : English Forum > General Discussion > Writing interface for programs like Solidworks
cadcoke4 | #1 14/08/2008 - 00h25 |
Class : Apprenti Off line |
I work with a 3D design program called SolidWorks. I would like to see if I can get it to work with one of the head tracking systems. The Wii Remote version, like Johnny Lee does is a nice possibility, because it offloads the video processing to the Wii remote itself.
Note that in this case, I am really talking about viewpoint tracking for the purpose of doing a VR type rendering, not as a substitute for a joystick. That is, I want to see the object on my screen as though it were there in 3D. A stereoscopic display may be part of this as well, since they have become more affordable. Many of the Samsung projection TV's are capable of working with LCD shutter glasses (they sell a separate kit for this). But, as Johnny Lee's demonstration shows, even without stereo vision, head tracking is a powerful tool for 3D viewing. My problem is that I don't know where to start. If I run FreeTrack, and also run SoldWorks, how do I get them to talk with each other? I imagine there may be a new program needed, which will interface the two. Can (or should) I do this in Visual Basic, using the VBA abilities in SolidWorks? Joe Dunfee |
cadcoke4 | #2 14/08/2008 - 23h15 |
Class : Apprenti Off line |
I just started trying it out with SolidWorks by setting it into mouse mode and with a single red led in 2D tracking mode. Then, I hold the mouse button down as though I wanted to rotate the view. As my LED moves around, the object rotates... actually it rotates wildly.
But, I will start to work on the 3D LED version, so I can get true viewpoint tracking, and then tackle attempting to interface it with SolidWorks. I don't think the mouse emulation mode is going to be useful. If anyone has insight about how SW may interface with other head tracking software, that may be useful information. It would make life very easy if it happened to be compatible with some other profile that the TreeTrack software already knows about! Joe Dunfee |
cadcoke4 | #3 15/08/2008 - 14h18 |
Class : Apprenti Off line |
I am currently stuck about how to get FreeTrack and SolidWorks to communicate. I see that FreeTrack will support several outputs,
● Freetrack native (Trackir compatible). ● Mouse emulation ● Joystick emulation ● Keyboard emulation ● FSX ● FS2002/2004 But, I am at a loss about how to link to any of these methods using VBA (well, excluding mouse emulation - I don't think that is viable). None of these emulations appear in the SolidWorks help files. Any ideas? I have no clue where to start. Joe Dunfee |
cadcoke4 | #4 22/08/2008 - 18h58 |
Class : Apprenti Off line |
Well, since no one has replied, I am taking this as a "No, there is no way to link to FreeTrack with another program".
So, I am giving up on this unless I hear otherwise. I am now going to pursue the Wii remote approach. Joe Dunfee |
babasior | #5 23/08/2008 - 19h41 |
Off line Www |
Next freetrack release will be more usefull for developpers ... Try to contact freetrack developpers by PM or MP ... !
Babasior.
FreeTrack Online / www.Free-Track.net |
cadcoke4 | #6 25/08/2008 - 00h15 |
Class : Apprenti Off line |
I've inquired via. the web form, and haven't heard back from anyone. But, for free software, I am not surprised. I imagine the inquiries could get overwhelming.
Meanwhile, I have purchased a Wii Remote, and have at least the demo working. I am just starting to learn about it. The benefit in this case, is that I get raw data regarding the dot positions over Bluetooth without invoking any other program. But, regardless of the type of head tracker I use, I will need to learn about VR related head positioning, and controlling this in SolidWorks. Joe Dunfee |
the_target | #7 27/08/2008 - 13h05 |
Off line |
check http://forum.free-track.net/index.php?showtopic=1068
For Solidworks did you check http://www.solidworks.com/pages/services/APIDownloads.html?pid=121 and SolidWorks 2006 API Online Help ? To drive the POV, look at ModelView Object and methods RotateAboutAxis, TranslateBy, ZoomByFactor Driving Solidworks from an external app should be a piece of quake: http://www.artoflog.com/cao/solidworks-delphi/delphi-solidworks.htm
Edited by the_target on 27/08/2008 at 13h29.
|
cadcoke4 | #8 27/08/2008 - 13h41 |
Class : Apprenti Off line |
Thank you for the links. I am already quite active on the official SolidWorks forums, and have posted about FreeTrack on the API forum there, without any response. It appears that I am on a new frontier, so am on my on to a large extent.
I will note that some of your links were for Solidworks 2006 related API, and that the programming changed from the .com to the .net interface starting in version 2007. I have a general question to help guide me as I educate myself in the knowledge I need to obtain to do this project; While I know I can use the .net interface of SolidWorks to control the viewpoint, I am wondering if I should somehow bypass Solidworks, and drive the display. I am aware that some games and programs will work with the stereo output abilities of the Nvidia video cards without the game being aware of this feature. In other words, the Nvidia driver is the program that creates and controls the stereo image. I imagine that SolidWorks sends some basic information to the video card driver, listing all the surfaces, and the viewpoint. Then allows the video driver to take over from there. At this point, it may be that I should tell the video driver the viewpoint that I want, overriding what SolidWorks is telling it. I am also speculating that the windows OS sits between SolidWorks and the video driver using an interface called Direct X. Perhaps it is a link to Direct X that is needed for FreeTrack? Can anyone confirm my suspicions? Joe Dunfee |
the_target | #9 27/08/2008 - 14h14 |
Off line |
This is doable. You can intercept call to DirectX by making a proxy for DDRAW.DLL for instance, so POV information can be tweaked externally. But you will have to manage a huge number of function calls and this will probably have an impact on the fps. For a game this may be prohibitive.
Relying on the NVidia driver and using proprietary function may be another solution (I have no idea) but this would exclude all ATI users. In both case, this will represent a lot of work compared to the usage of an exposed function. |
cadcoke4 | #10 27/08/2008 - 17h30 |
Class : Apprenti Off line |
By "exposed function", I am assuming you are referring to the .net interface with SolidWorks. Right?
If so, then I think I had better go the .net approach. I've never swam in the deep part of the DirectX or Nvidia Driver pool, and don't want to drown! Joe Dunfee |
the_target | #11 27/08/2008 - 20h16 |
Off line |
Yes (or COM) |
the_target | #12 23/10/2008 - 14h21 |
Off line |
@cadcoke4
any progress report ? |
cadcoke4 | #13 23/10/2008 - 18h27 |
Class : Apprenti Off line |
I know what the API calls in SolidWorks are to control all aspects of the viewports. However, I don't know of any way to get information out of FreeTrack. I think there is a way (from prior posts) but, perhaps they haven't caught up with the documentation yet.
I am considering one other option. You see, I don't actually need 6 degrees of freedom because the monitor doesn't move. I just need to know the distance and angle from the center of the monitor to the viewer. If I limit myself to a desktop situation, the viewer is mostly at the same distance all the time. So, with that fixed in space (manually entered by the user), now I only need the angles. The Wiiremote will already provide the raster coordinates of the IR points in regards to its view. I already have a driver which will open this information to me as a .net interface. So, perhaps I don't need to use Freetrack. Joe Dunfee |
benmeijer | #14 23/10/2008 - 23h19 |
Class : Habitué Off line |
|
cadcoke4 | #15 24/10/2008 - 13h54 |
Class : Apprenti Off line |
I just visited the glovepie web site, but the directions page doesn't load. The downloaded .zip files won't extract either on my Windows XP machine. I see that this program seems to act as a middleman between an input device (originally a glove) and a game or other program.
I am not clear, however if it is able to do the kind of VR head tracking I want to do. It seems like I need SolidWorks to accept one of the existing devices, or I am regulated to keyboard input. I need to emphasize that I am not talking about the type of head tracking done for some games, where a slight turn of the head to one side will cause the view to pan around a large amount. Rather, I am talking about the "Johnny Lee" type of VR. Joe Dunfee |
FreeTrack Forum > FreeTrack : English Forum > General Discussion > Writing interface for programs like Solidworks
> Stats
1 user(s) connected during the last 10 minutes (0 member(s) and 1 guest(s)).
Powered by Connectix Boards 0.8.4 © 2005-2024 (8 queries, 0.022 sec)