Right Click->Hide
-
Any existing code i can look to learn from, i have basic programming knowledge but I'm not familiar with the Ruby syntax.
-
There is an example code snippet that comes with SU. But it's not very good - the code is confusing.
I'd look at some other plugins with tools.I do imagine I saw another thread not too long ago in the same topic - don't have the link at hand. Will see if I can dig it up.
-
I read the tutorials on code.google.com, but it doesn't help a lot.
I tried to look at the linetool.rb and I just got confused... -
@kolem said:
I tried to look at the linetool.rb and I just got confused...
Yea - that's the one I talked about. Not very good.
-
Maybe Jim's construction line tool is of help: http://sketchuptips.blogspot.com/2008/02/plugin-construction-line-tool.html
Have a look.As for SketchUp plguin writing in general:
You will find many useful links in this thread: http://forums.sketchucation.com/viewtopic.php?f=180&t=10142
It's worth noting that all plugins share the same environment, so it's important to learn how namespaces (modules and classes) works in Ruby - and use them. Otherwise you might end up with conflicts with other plugins.
And a big no-no is overriding basic Ruby and SketchUp methods. Then you will most likely break other people's scripts. -
Try this... take the 'linetool.rb' code and copy it - make a new tool class named 'HiddenLineTool' say...
and used that wherever 'LineTool' used to appear in the text, and also make a new def linetool >> defhiddenlinetooletc...
Find the line of code that creates the geometry - it readsview.model.entities.add_line(p1,p2)
and adjust it so it readsmyline=view.model.entities.add_line(p1,p2)
and insert a new line of code immediately beneath that that readsmyline.hidden=true
Now when you draw the line it'll automatically become a 'hidden' line - I suggest that you have 'Hidden Geometry' switched 'on' whilst using this tool, otherwise you could get very confused...Note also that you could make another version of it [GuideLineTool ?] to draw a guide-line (cline) by changing that one line to
view.model.entities.add_cline(p1,p2)instead -
ill try that, another issue is that i have a problem editing the code in the notepad, i get all the code in one long row, any suggestions?
-
@kolem said:
ill try that, another issue is that i have a problem editing the code in the notepad, i get all the code in one long row, any suggestions?
Get a better editor than Notepad. Get one that provides syntax highlighting - makes reading the code much easier.
I use Notepad++ http://notepad-plus-plus.org/ - free app with a support for a wide range of languages. -
thanks a lot!
well, I started off by looking at the code and I'm starting to get an idea of how things work.
i edited the linetool file and changed the class to 'hiddenlinetool', etc...
and added the line TIG wrote, however, I get an error:class/module name must be CONSTANT
with a referring to this line:
class hiddenlinetool
ideas?
-
Yes - constants in Ruby must start with capital letters.
-
The class would be
HiddenLineTool
but the shortcut defhiddenlinetool... -
Ok, seems like it is going to work, now, how do i execute the tool?
window>preferences? -
To test type
hiddenlinetoolinto the Ruby Console.
Later on when it's debugged to make a 'Plugins' Menu item use this code at the end - outside of the class etcif not file_loaded?(File.basename(__FILE__)) ### make command cmd=UI;;Command.new("Draw Hidden Line"){hiddenlinetool} cmd.status_bar_text="Draws a line and immediately hides it..." ### menu UI.menu("Plugins").add_item(cmd) file_loaded(File.basename(__FILE__)) end#ifTo put the tool into the 'Draw' menu instead, you just change 'Plugins' to 'Draw'.....
-
never mind i got it working, thanks for the help
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better π
Register LoginAdvertisement