[Plugin] Hatchfaces (v1.8 beta) UPDATED 15-Dec-2012

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Sun Jul 24, 2011 8:17 am

Sergey. No need to feel bad. It's good if you report anything suspicious. :enlight:

The hatchgroup is created on Hatchlayer. The edges are created on the "active" layer.If you want ALL hatchline-geometry on "Hatchlayer". Just create one hatch(to add the hatchlayer). Delete it.
Select Hatchlayer as active layer, then ALL lines will get to that layer.

If we go back to the problem with hatchline alignment. Yesterday's update (TIG code)fixed the problem with ngons or to call it "asymmetrical" faces .

I thought about this. I think the best solution(if doable) would be to do an additional edge selection.
Where hatches get aligned to that edge. Something like if selection.contains edge, the vector will be created from that edge and override current solution. Eg if only face is selected hacthing will be done as current "on axis solution".

I do not think this problem can be solved by an automatical solution(hope I'm wrong), cause faces can be created in so many different shapes. What edge should hatching be aligned to and so on..
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby sergey2402 » Sun Jul 24, 2011 8:35 am

Angle of Hatching
0

sergey2402 
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Sun Jul 24, 2011 9:04 am

That is true Sergey!


Should be an relativley easy fix. For TIG that is :D For me, everything takes time..
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Sun Jul 24, 2011 9:14 am

Hmm. GRRRRoin :x
The problem from yesterday is worse than I thought. Linehatch direction gets switched in different axis.
That is probably what TIG was reffering to. In my over-enthusiastic mood I did not notice that.

So my only conclusion is that an selected edge MUST be included in the calculation of hatch.angle.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Sun Jul 24, 2011 10:15 am

Trying something. Comments are VERY welcomed. Have selected the face and 1 edge.

Can retrieve the edge like this.
Code: Select all
@h_edge=ss if ss.class==Sketchup::Edge


And if using the edges points to make a vector, I've tried @h_edge.line. Did not work. This does not work either.

Code: Select all
pt=@h_edge.start
p1=@h_edge.end
ve=pt.vector_to(p1)


Main goal is to make a condition: If an edge+face is selected run this code. If only face is selected run the axis code.
Of course only 1 edge can be selected.
Bad idea?
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby TIG » Sun Jul 24, 2011 11:01 am

The problem with the idea is that currently it processes all of the faces in a selection, if you have one edge selected it won't necessarily lie on the plane every face processed ?

My way uses the x-axis [usually] to determine the start vector [projected onto the face's plane] from which you angle off the hatching edges...
0
TIG
User avatar
TIG 
Global Moderator
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Sun Jul 24, 2011 12:56 pm

Ahh, you mean multiple face selection? Yes I see, that will not work of course. :?
I don't see it as a big limitation that only 1 face could be processed at each time?
Or faces on the same plane, wich is probably the most common case?




Edges get drawn a bit irregular atm.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Sun Jul 24, 2011 6:10 pm

If selecting face and edge I can only get an array, not the edge as an individual edge selection? :(
Even if doing a ==Sketchup::Edge thingy..
Must I use a selection observer for this?
Would be fun if I could even try this method out, but stuck on basic things..
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby TIG » Sun Jul 24, 2011 7:08 pm

No complications like observers needed.
To pick one face and one edge from the selection use
ss=model.selection
face=nil
edge=nil
faces=[]
edges=[]
ss.each{|e|
if e.class==Sketchup::Face
faces << e
end
if e.class==Sketchup::Edge
edges << e
end
}
face=faces[0]if faces
edge=edges[0]if edges

This takes the first face and first edge it comes across in the selection and ignores all others [if there are any].
You then need a trap if there's no face selected
if not face
UI.messagebox("Select a Face you dolt!")
return nil
end

and
if not edge
### choose 'edge' by other means or error message again
end

You now process 'face' just the once and not 'each face in faces'...
If you want to be thorough report the user has picked more than one face or edge
if faces[1]
UI.messagebox("Select ONE Face - only the 1st selected Face was processed - Twit!")
return nil
end
if edges[1]
UI.messagebox("Select either NO or ONE Edge - only the 1st selected Edge was used - Fool!")
return nil
end

etc etc...
0
TIG
User avatar
TIG 
Global Moderator
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Sun Jul 24, 2011 7:36 pm

Ahhh :o Excellent! That certainly make more sence then the shi£$y stuff I was working on.

I will try this tomorrow, avec plaisire.

Thank you TIG.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Mon Jul 25, 2011 10:16 am

I think I will alter the "Tourette Syndrome style" prompts in the inputbox you recommended.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby TIG » Mon Jul 25, 2011 10:53 am

They were intended as a 'joke' ;)
0
TIG
User avatar
TIG 
Global Moderator
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Mon Jul 25, 2011 12:54 pm

No worries! :D
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Mon Jul 25, 2011 2:01 pm

Well, it seams to be working a little better now. No promises though..

TIG's selection code works like a charm.
Just had to change pt and pt1 to pt=@edge.start.position, p1=@edge.end.position. And use ve=pt.vector_to(p1) as usual.
So now the hatching gets aligned to the selected edge..

Maybe it would be a good idea to have the plugin run as usual(axis mode) if NO edge is selected? Some if statements when edge is NOT selected or so..

That way one still would have the possibility to alter several faces should one wish so.
Anyway if no objections I might do the update on this?
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Mon Jul 25, 2011 3:42 pm

eekk, don't know what I'm talking about :knockout: It does multiple faces as long 1 edge is selected and the face is
connected to that edge.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.4)

Postby sergey2402 » Mon Jul 25, 2011 3:51 pm

Could you upload version 1.5 to test it?
0

sergey2402 
 

Re: [Plugin] Hatchfaces (v1.4)

Postby jolran » Mon Jul 25, 2011 4:22 pm

Yep. This evening.

I was planning on adding the crosshathcing as well. But it's not working yet.
Anyway I will upload ver 1.5 anyway, with or without crosshatching.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.5 beta)

Postby jolran » Mon Jul 25, 2011 5:21 pm

1.5 beta uploaded!

You might as well play with it. An Edge and a Face must be selected. The hatches will be created clockwise according to the edge. Hopefully :D

I will continue with the crosshatching...
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Sun Jul 31, 2011 10:09 am

Ok. ver 1.6 beta added.

viewtopic.php?f=323&t=38637&p=341461#p341461

Crosshatching should be working. It creates the hatches in 2 groups inside a parentgroup, should you wish crosshatching.

Had to rewrite parts into methods. TIG's been "directing" me more and finding problems than "giving" me code in this version. So I had to suffer and learn a little bit more :D Besides the script is getting longer so it takes more time to debug from his part...

That said! Beware that this script could surely be optimized, and I'll gladely take tips about how to.
I do feel it's a bit ugly script with all the methodcalling at the end.
Just remember that the temp face(face_clone) method must be separate. So it can be used if there are possibilities to
do other types of hatchpattern, and implement them on the face_clone.

Thanks to TIG, again for tutoring :thumb:
0
Last edited by jolran on Sun Jul 31, 2011 10:17 am, edited 2 times in total.
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Sun Jul 31, 2011 10:15 am

Ooops!! :shock: The "Hatchfaces" menu item in Draw menu isent finished yet. Will fix that later...
Should not affect usage with icons..
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby TIG » Sun Jul 31, 2011 11:39 am

Great it's getting there...
The dialog's values aren't getting remembered.
Make variables like angle/spacing/cross_alt into @ types so they get remembered for next time... Otherwise you need to fill in the dialog each time.
Use this too
angle2=@cross_angle
angle2=-@angle if not angle2

This way the dialogs value is then the same as last time OR -@angle
similar for spacing etc
Also the menu item can reuse the cmd0 command rather that make another!
Then it uses the same name as the Toolbar command...
0
TIG
User avatar
TIG 
Global Moderator
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Sun Jul 31, 2011 12:31 pm

Thanks for the feedback TIG!

I will try to fix those things.

You don't think there are any problems calling all those methods at the end? I mean it works, but feels strange.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby kyyu » Tue Aug 02, 2011 4:58 am

jolran, some feedback:

1) Your undo doesn't undo in a single step, most notable you leave behind an empty group & layer.
2) You have your methods inside the main method?
3) I consider this to be not a beginner's plugin, especailly if you will continue to add new features. If you are still at the block level and just moving unchanging blocks of code around, you will have lots of problems. You have to understand it from the line level and change it at will. Condense lines, delete lines and rename variables so they are consistant and have personal meaning.
4) Your indenting of the code is atrocious, unless it's my setting in notepad++?

An quick example of how I would rewrite it. I tweak everything I could, like if it was my own plugin. I went back to the old way without having to select a line and changed other stuff. Doesn't matter. The goal is to simplify and compartimentalize. Make it consistant, and easy to follow. Then its easy to modify, later. I include a screen grab. The idea is for you, to do your own version. Also, you can see the indents. The image is too tall to post, so here it is in a zip file:
hatchfaces_rewrite_png.zip
0

kyyu 
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Tue Aug 02, 2011 8:22 am

Hi Kyyu.

1) yes, thanks. I noticed that. However removing layer is not so good if doing the 2nd+ hatch?
2) ? The cmd is calling the self.hatchfaces method, not the module? Ok I will have a look.
3) So you mean I should stop developing it until I have matured?
4) insulting word, but maybe true.
Is the code example you provided tested?

Like I've said before you have to realize that this plugin is not aimed at linehatches only, and it's still beta.
Everyone knows what beta means......If the plugin is not good enough for publishing I can remove it and post when I "feel" ready? Feel's like I have broken some unwritten rule here..

IF implementing other MODULES, with ex patterns of insulation etc AS modules the code structure can of course not remain like this. And you have provided intersection not inside a method, wich can be troublesome if I will have to reuse it for the other modules. Orders matters no?

I'm experimenting right now with possibilities for other patterns. I see no reson to rewrite the whole code structure until I know where this plugin's heading. Might fix TIG's bugspots and your group and layer undo issues.

I appreciate you effort and will take your advice into consideration.

edited: Hmm no, intersection is inside a method. OK thats better. Difficult to see without having the code in Notepad.
But I still need intersection independent of the linehatching.
Also. Remember, each group.entities sent to hatching will need a face for intersection! So in order to keep intersection apart from hatchingmethod there is a need for a face_clone method.
However I do like the way you call the methods. That I will work on.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby kyyu » Tue Aug 02, 2011 10:20 am

Hi jolran,

3) So you mean I should stop developing it until I have matured?


Everyone knows what beta means......If the plugin is not good enough for publishing I can remove it and post when I "feel" ready? Feel's like I have broken some unwritten rule here..


No, I am not telling you to stop developing. And no I don't want you to remove it.
You should not take offense, as I am just trying to give you the best advice I can. I debated if I should say anything at all. So don't take it the wrong way and be discouraged.

You are right. I don't know what you are going. Anyways, I hope you see something in my example that helps you.

Is the code example you provided tested?

Yes, it works 100%.

-Kwok
0

kyyu 
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Tue Aug 02, 2011 10:58 am

Ok, ok. No worries... English is not my native language so I might have missunderstood some things.
And I'm a little tempera(mental) :D

So you mean I should stop developing it until I have matured?



Total missunderstanding, sorry.

I debated if I should say anything at all


I do apreciate you advice though!! Really. Don't hold back!
I might have to argument against some of the advice, if there are things behind the scenes that you are not aware about that could change the scenario. That doesent mean your outcome is not apreciated. I WILL use your codeexample further on.

All the best.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Thu Aug 04, 2011 7:01 pm

A little report...

Been fooling around a little with DCs. It's all new to me. Took a while to get the attributes from Dc to work in ruby, as well...

On the picture "insulation-pattern". Insulation "triangles" are sizable in width and height. Get funny unit conversions though when trying to match facesize or other similar tasks. (I work in cm) Either DC's are buggy or the way I construct the DC is wrong. I guess the later theory.
In this example no transformation or rotation is involved, neither intersection. Only alignment to the edge on X-axis. And alignment WOULD be quite a task to fix. Unless one can snap to face? (could not get that to work) Each DC gets added in the components sampler when running the script. I guess there is a way to delete the instance, and question is if the DC would get added if one would do an intersection and delete the dc before the operation is done?

So using DC's for this purpose is not as straight forward as I thought. I might explore the possibilities of making patterns
through code instead. Not sure yet. Could fastly become quite complex code with arcs and stuff...
At least rotation would be easier if drawing on the created face-clone.
Will take a peak and then maybe come back and do the bugfixes TIG spotted, and Kyyu's recommendations. Indenting maybe ;) :D
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Fri Aug 05, 2011 7:25 am

Hm. Not much response. Maybe there is not much demand for other types of hatchpatterns other than lines? :?


Anyway got another thingy to test. Sort of a stamp tool (if it doesent already exist)
You manually place and edit the 2d component. Select face and component, click an icon and the grouping and intersection is made. With alternatives for keeping materials, and deleting faces etc..

Could actually be a good workflow like that, cause if using DC one could see the patterns update with each change that
is made. And then run the intersection-grouping when it looks good.
This way the user could use his own library of patterns, on top of those that will get provided...

Just an idea......
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby baz » Fri Aug 05, 2011 8:14 am

I unfortunately don't have anything to contribute to your efforts with this great addition to the SU toolkit, but I am lurking on this thread carefully. Like many others, (probly lurking too), I would love to remove other cads from my workflow and do everything in SU. Hatchfaces will be a huge help in achieving this.
Go Joel!
Baz
0
I am both an early bird and a night owl, I am some form of permanently energized dragon.
User avatar
baz 
 

Re: [Plugin] Hatchfaces (v1.6 beta)

Postby jolran » Fri Aug 05, 2011 12:39 pm

That's all I needed to know. That there are lurkers out there :enlight:
It's no fun to put effort into something that people find quite useless.
Although this has been a team effort so far (with a lot of TIG).

I would love to remove other cads from my workflow and do everything in SU


That's the direction! Question is, what is needed to do that..

Thank's for posting.
0
User avatar
jolran 
PluginStore Author
PluginStore Author
 

SketchUcation One-Liner Adverts

by Ad Machine » 5 minutes ago



Ad Machine 
Robot
 

PreviousNext


 

Return to Plugins

Who is online

Users browsing this forum: AmazingAloo, delysa, verasak2520gmailcom and 14 guests

Visit our sponsors: