Instructor content
-
@thomthom said:
Has no one ever made a tool with an Instructor?
I have never tried it, but had some ideas I wanted to use the instructor because it's "snappy" and has the small toolwindow caption bar.
So it's either webdialog or native Win32 dialog (I'm leaning toward the latter... if Google is not going to bring the Mac Ruby up to date.. then screw it.. sorry Apple lovers.)
-
@dan rathbun said:
So it's either webdialog or native Win32 dialog (I'm leaning toward the latter... if Google is not going to bring the Mac Ruby up to date.. then screw it.. sorry Apple lovers.)
What does the rube core got to do with the webdialog?
I had been thinking of adding an Instructor for a couple of tools - but it'd not been high on the list. I was about to add it to Vertex Tools - but due to the way I made the sub-tool system I could not. (should be way to force refresh the instructor window with other content.)
@dan rathbun said:
I have never tried it, but had some ideas I wanted to use the instructor because it's "snappy" and has the small toolwindow caption bar.
How would you use it? You can't use it to communicate back to Ruby...
I've been playing with the idea of using Win32API to change the window style of the webdialogs. But I'm not sure if I can manage it without getting a flicker of the original window frame first...
-
I have already written an 'Instructor' set of index.html/css/gif files etc for my new FreeRotate4.1 [not yet released] BUT it simply doesn't work... no matter what I do
At the moment it only works if you open the ../FreeRotate/index.html file in your web-browser...
The Instructor never recognizes the tool as being active/current...
I was thinking that perhaps you need to add a global_variable - setting it in the activate() and resume() methods, e.g.
$instructorContentDirectory = self.getInstructorContentDirectory()
BUT what that global_variable might be is a mystery...
I there a way to puts a list of global_variables ?
If you start FreeRotate whilst in Line tool the Instructor sticks on Line, then if you Orbit it changes to Orbit, until you exit and pick another tool ???
I've tried tool_id/pop/push et al with no positive results.
It is as if my tool isn't registering as the active/current tool at all... -
Anyone contacted Google yet?
-
Not me...
TT - it's your turn... -
I think they still have a backlog on all my issues - but I can nag them about this one as well.
-
seems like the response is relative to the help directory on pc
writing the following brings up the eraser tool
def getInstructorContentDirectory return "\\21019\\" end
so looks like relative paths it is
-
hmmmm the following works well on pc too
def getInstructorContentDirectory return "../../../../Tools/etc/instructor/" end
-
Woohoo! That totally does it. that works in 7.1 also, I did not test anything earlier than that. Here is my code that uses it and points to a directory inside the plugins folder:
` class Clf_instructor
def getInstructorContentDirectory
return "..\..\..\..\Plugins\doc\"
end
endSketchup.active_model.select_tool Clf_instructor.new`
(that is just a snippet I was running from the webconsole, not actually part of a full file).
Thanks for coming back and posting that,
Chris
-
The instructor works???
Nice find! -
This'll be useful for Bezier Surface.
-
Another example of how the API docs (and a poorly written example,) have thrown us all off course for months!
-
@dan rathbun said:
Another example of how the API docs (and a poorly written example,) have thrown us all off course for months!
It does smell like a bug though. It doesn't sound right that they intended people to add custom Instructor content to the SU Instructor content folder.
-
@thomthom said:
@dan rathbun said:
Another example of how the API docs (and a poorly written example,) have thrown us all off course for months!
It does smell like a bug though. It doesn't sound right that they intended people to add custom Instructor content to the SU Instructor content folder.
Its unusual that they document absolute paths but only go with relative paths, not that relative paths are bad by any means.
-
@bentleykfrog said:
@thomthom said:
@dan rathbun said:
Another example of how the API docs (and a poorly written example,) have thrown us all off course for months!
It does smell like a bug though. It doesn't sound right that they intended people to add custom Instructor content to the SU Instructor content folder.
Its unusual that they document absolute paths but only go with relative paths, not that relative paths are bad by any means.
It's awkward though. I run my plugins I develop from custom locations because I use Mercurial for revision control. So providing a path to a custom location from the hard coded instructor folder isn't ideal. (does it even work across drive letters?)
And because some OSX users put their plugins in the user folder instead of the default, one can never rely to plugins to be at a fixed relative path. -
Does anyone know how to find out how many slashes and dots are needed at certain end user comp ("..\..\..\..\"). I mean if someone has installed sketchup in a custom subdirectory it is necessary to add/remove one of "..\" I guess.
-
I have use this successfully to get my FreeRotate Instructor to work
<span class="syntaxdefault">def getInstructorContentDirectory</span><span class="syntaxkeyword">()<br /> </span><span class="syntaxdefault">path</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">expand_path</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">),</span><span class="syntaxstring">"FreeRotate"</span><span class="syntaxkeyword">)).</span><span class="syntaxdefault">split</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'/'</span><span class="syntaxkeyword">)<br /> </span><span class="syntaxdefault">0.upto</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">path</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">length</span><span class="syntaxkeyword">-</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">){|</span><span class="syntaxdefault">i</span><span class="syntaxkeyword">| </span><span class="syntaxdefault">path</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">i</span><span class="syntaxkeyword">]=</span><span class="syntaxstring">'..' </span><span class="syntaxkeyword">}<br /> if [</span><span class="syntaxdefault">PLATFORM</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">grep</span><span class="syntaxkeyword">(/</span><span class="syntaxdefault">mswin</span><span class="syntaxkeyword">/)==[</span><span class="syntaxdefault">PLATFORM</span><span class="syntaxkeyword">] </span><span class="syntaxcomment">### PC<br /> </span><span class="syntaxkeyword">return </span><span class="syntaxdefault">path</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'/'</span><span class="syntaxkeyword">)+</span><span class="syntaxstring">'/'<br /> </span><span class="syntaxkeyword">else<br /> return </span><span class="syntaxstring">'/'</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">path</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'/'</span><span class="syntaxkeyword">)+</span><span class="syntaxstring">'/'<br /> </span><span class="syntaxdefault">end</span><span class="syntaxcomment">#if<br /></span><span class="syntaxdefault">end</span>
It should work cross platform?
-
My method 2 posts before this uses the absolute path of the calling script to construct a relative path to the important folders ?
How do we allow for MAC users with their plugins 'in the wrong place' OR even my uni students who have to install their PC 3rd party scripts in their persona H:/Sketchup_Plugins/ folder, with a script added by their IT guys in the main Plugins to add that path to their $LOAD_PATH array... Would these still work with my idea ?? -
Can we get the path of the resource folder?
If so, then we could add ../ back references until we're back at the root, then apply the absolute path.
Though, how does one deal with different drive letters under Windows? -
Advertisement