Could you update moi.idl?
 1-20  21-26

Next
 From:  Dave Morrill (DMORRILL)
2715.1 
Michael,

I noticed on the wiki Scripting page that the moi.idl file it references hasn't been updated since 10/22/2007. Would it be possible for you to update it with a more recent version of moi.idl? I've observed that the current version of MoI has quite a few methods and properties on various objects that are not described in the old version of the file. It would be a big help to me. Thanks...

Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2715.2 In reply to 2715.1 
Hi Dave, I've attached the current v2 moi.idl file here.

Also, it's possible to grab out the moi.idl that is embedded in any particular MoI release by using the OleView utility program which you can get from here. Then in OleView you go to File / View Typelib, and pick the moi_lib.dll file.

- Michael

EDIT: updated moi.idl file 5/20/2010 with the final v2 version.

EDIT: for the v3 moi.idl file see here: http://moi3d.com/forum/index.php?webtag=MOI&msg=7262.2 and the current one should be linked to from the wiki here: http://moi3d.com/wiki/scripting

EDITED: 17 Feb 2015 by MICHAEL GIBSON

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.3 In reply to 2715.2 
Michael,

Thank you very much, both for the new file and the tip on how to keep it up to date myself. I know you don't have cycles to spare for writing scripting documentation, but I'm assuming you don't mind if other people take a crack at it, do you?

Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2715.4 In reply to 2715.3 
Hi Dave,

> but I'm assuming you don't mind if other
> people take a crack at it, do you?

I certainly would not mind, I would appreciate it!

I would be able to add some tips/suggestions/corrections/etc to something like that.

There is that mostly empty scripting page on the wiki, that may be a good place to fill in anything that you want. Or if you want to put it somewhere else then there could be a link to it from that scripting wiki page.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.5 In reply to 2715.4 
> I certainly would not mind, I would appreciate it!

> I would be able to add some tips/suggestions/corrections/etc to something like that.

Great! I've already made a pretty good start (I think) in creating a nicely cross-linked web page (automatically generated by a script, so it should be easy to maintain) that shows all of the Javascript accessible MoI classes/methods/properties/enums.

Since the page uses lots of custom CSS and Javascript, it probably won't work within the MoI wiki framework. Right now I'm running it locally on my machine, but I'll copy it to my web site in the next couple of days and post the link so you and the rest of the community can take a look and give me some feedback.

I'm still working through the data and control flow MoI uses to implement the UI and command system, but I think I've been making good progress there too. I've got some ideas on how to automatically extract some useful information there as well, which I need to further explore. Overall, it looks like the MoI infrastructure is just as cool as the app itself, and certainly seems to allow for lots of user customization and extension.

Depending upon how things go, I'll probably have a few big picture questions, and lots of detail oriented questions, for you at some point. But as of now I'm pretty sure I can make a first cut at producing a usable set of "Scripting MoI" documentation without having to ask you any more questions. Simply a matter of proper "time management" on my part (I keep getting sidetracked using MoI to model stuff, it's just so much fun :-) ...

Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2715.6 In reply to 2715.5 
Hi Dave,

> Depending upon how things go, I'll probably have a
> few big picture questions, and lots of detail oriented
> questions, for you at some point.

Yes, please feel free to ask questions like this!

Since you're familiar with HTML/CSS/Javascript already you'll probably feel pretty at home with tinkering around with MoI's UI in general.

The main thing that can be a problem is that I'm also making changes to things in new releases to support new features, etc... So if you customize it extensively you'll need to merge your customizations into my changes for each new release.

I do have some ideas on modularizing things to a somewhat greater extent, like for example if a side pane palette (like Draw curve / Draw solid) was more encapsulated into its own file rather than all baked into SidePane.htm, then that would make it easier to have less merging needed in SidePane.htm . But it's hard to get the time to work on this currently with a lot of more "regular end user" features in the pipe.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.7 In reply to 2715.6 
> The main thing that can be a problem is that I'm also making changes to things in new releases to support new features, etc... So if you customize it extensively you'll need to merge your customizations into my changes for each new release.

I understand. Shouldn't be a problem short term, since I'll mostly just be trying things out to see how they work and fit together. I'll probably have a "sandbox" version for tinkering separate from my "production" version I use for modeling. Given you're warning though, I'll try to think of ways to mitigate this problem going forward.

> I do have some ideas on modularizing things to a somewhat greater extent, like for example if a side pane palette (like Draw curve / Draw solid) was more encapsulated into its own file rather than all baked into SidePane.htm, then that would make it easier to have less merging needed in SidePane.htm . But it's hard to get the time to work on this currently with a lot of more "regular end user" features in the pipe.

Seems like you're pretty close already in general, just that one file is what makes things somewhat fragile at the moment. Once I get into it more, I might be able to make some suggestions...

Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.8 In reply to 2715.2 
Michael,

I haven't had much luck with your suggestion of using OleView to get moi.idl updates directly from the code. I downloaded the package that you linked to in your response, but it pops up an error saying that it could not find IVIEWERS.DLL. Googling the error reveals that this is a known problem, tough luck, no known solution. Further googling reveals that there is an OleView MFC sample program included with VS 2008. I downloaded and built it, but no joy with this version of the code either, although I get a different (but related) error message when I try to view the type lib for moi_lib.dll.

Any suggestions?

BTW, although I haven't worked on it for a couple of months, the docs are about 70% done and I decided that although I probably won't have time to get it to 100%, what I have finished is actually pretty useful and could probably be released in its current state. Before doing that, I thought I would try to update the doc with the new interfaces I suspect you added in the August 8 beta update, since even if I don't comment the API, the raw API will still show up in the document without comments...

- Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BurrMan
2715.9 In reply to 2715.8 
Hi Dave,
This works for me. If you install the Microsoft platform SDK and install it, the oleview is there and it views the moi_lib.dll
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.10 In reply to 2715.9 
BurrMan,

Maybe I'm cursed. I already had the platform SDK installed, so I hunted around in there and found oleview.exe, and ran it. Similar result. The program runs, but complains that:

DllRegisterServer in IVIEWERS.DLL failed.

OLEViewer will operate correctly without this DLL, however you will not be able to use the interface viewers.

Thanks for the suggestion though. Maybe you wouldn't mind extracting the moi.idl and attaching it to a forum append? I've just finished getting the Javascript doc for the Jun-23 beta ready to go, but I'd like to update it to the Aug-08 beta level before releasing it. Thanks...

- Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2715.11 In reply to 2715.8 
Hi Dave, no problem the one for the Aug-8-2009 beta is attached here.

- Michael

EDIT: removed attachment from here, moi.idl has a download link on the scripting page here: http://moi3d.com/wiki/Scripting

EDITED: 20 May 2010 by MICHAEL GIBSON

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2715.12 In reply to 2715.10 
Hi Dave, also if you want to get oleview working, possibly this download will do the trick:

http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=5233b70d-d9b2-4cb5-aeb6-45664be858b6&displaylang=en

That seems to have an installer so it should have the dependent DLLs included in there I would think.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.13 In reply to 2715.12 
Michael,

Thanks for the moi.idl file!

I just found out what the problem was with oleview.exe...duh! Under Vista/Windows 7 you need to run it as administrator (otherwise the RegisterDllServer call fails). I love cryptic error messages! I was getting the same errors on my laptop running Windows 7 RTM,so I began fiddling with it again, and running as administrator did the trick...

- Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.14 In reply to 2715.12 
Michael,

This is the result of my automated analysis of the changes from the Jun_23 beta to the Aug_08 beta:

Deleted method: GeomObject.getHighAccuracyBoundingBox

Added method: BoundingBox.clear
Added method: GeometryDatabase.selectLastCreated
Added method: PointPicker.orientedptframe
Added method: Settings.objExportWriteMaterialAssignments
Added method: Settings.meshExportCombineSameNamedObjects
Added method: Settings.editIniFile
Added method: Settings.getIniPath
Added method: UI.alert
Added method: VectorMath.createBoundingBox
Added method: View.specularBrightness
Added method: View.customFillLightLevel
Added method: View.edgeFixedColor
Added method: View.lightingStyle
Added method: View.surfaceFixedColor
Added method: View.metallicLighting
Added method: View.edgeColorMode
Added method: View.customKeyLightLevel
Added method: View.fixedLightPositions
Added method: View.specularFocusSize
Added method: View.specularHighlights
Added method: View.surfaceColorMode

Since this is my first "delta" build, just as a sanity check, does this look about right to you?

- Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2715.15 In reply to 2715.14 
Hi Dave, yup that seems to be right to me.

The deleted method (GeomObject.getHighAccuracyBoundingBox) was one that was not working correctly and was crashing, so I figured that nothing could have been using it.

I switched its functionality to be included with the regular getBoundingBox() method, there is now a new optional parameter that can be passed in to get the high accuracy bounding box.

The regular bounding box method uses the display mesh to get the bounding box. The "high accuracy" one uses numeric methods that analyzes the NURBS shapes directly which is slower but also more accurate.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Anis
2715.16 In reply to 2715.15 
Sorry Guys,

BTW, whats the goal of this discussion ?
In another word, Whats Dave try to achieve ?

Thanks :)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BurrMan
2715.17 In reply to 2715.16 
Dave is creating documentation of MoI's Scripting interface.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BurrMan
2715.18 In reply to 2715.17 
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Anis
2715.19 In reply to 2715.18 
Hi Burr,

Then what is the benefit for end user ?
Sorry scripting is not my world.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Dave Morrill (DMORRILL)
2715.20 In reply to 2715.15 
Michael,

OK, great! Thanks for the explanation about the deleted method. Seeing something disappear from the API this morning is what triggered me to add the extra logic to the script to detect the specific API changes.

I'll add the information about the difference between the low/high precision flavors of bounding box to the doc as well...

- Dave Morrill
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  21-26