Hello I ask questions in regards to the push/pull perform by group.
I used to be learning the API by referring to the API created by the person ‘dezmo’, however one thing is just not going my manner.
def pushpull_faces_in_selected_groups
prompts = ['Push/Pull Distance']
defaults = [0.to_l]
outcomes = UI.inputbox prompts, defaults, 'Distance to Push/Pull'
distance = outcomes[0]
mannequin = Sketchup.active_model
targets = mannequin.choice.grep(Sketchup::Group)
targets.every
goal.make_unique
tents = goal.entities
faces = tents.grep(Sketchup::Face)
faces.everye
finish
pushpull_faces_in_selected_groups
Within the case of the API referred to above, push/pull proceeds within the path, however the chosen face is reversed to substantiate {that a} group is created.
Within the instrument presently beneath growth (three.js), it’s labeled in accordance with path, so the traditional worth of the corresponding face can be necessary, so the face shouldn’t be reversed.
Second, the present top worth (akin to distance) is given a -value (as a result of the traditional worth of the default face is -Zaxis)
I ask if there’s any method to go up solely with Zaxis.
I all the time really feel grateful for fixing the issue with pleasant explanations from customers.
I might admire any assist once more.
earlier than pushpull verify face.regular
in case it’s destructive change de distance worth
Be aware that with the discharge of 2021.1, faces are actually created on the XY “floor” airplane with “butter-side” up.
So, though you’re nonetheless on v2015, your extension might want to have in mind these newer variations habits.
norm_vec = face.regular
if norm_vec.parrallel?(Z_AXIS)
face.reverse! until norm_vec.samedirection?(Z_AXIS)
finish
REF:
I’m making an attempt, nevertheless it doesn’t work out in addition to the recommendation. thanks for the recommendation
Thanks for serving to me once more however I didn’t perceive the best way to apply
I boldly utilized it to the extension, however the error happens
‘Error: #<NoMethodError: undefined technique `regular’ for #Array:0x0000021ccff5c858>’
Ought to I defin ‘regular’ upfront?
It is best to apply regular to a face. You’re making use of to an array
1 Like
@evercloud36 I agree. In your code snippet, the face would be the iterative reference e
inside this block …
faces.every e
Simply to make clear:
I didn’t created Utility Programming Interface. I created a “fast & soiled” code snippet (technique) utilizing the SketchUp Ruby API.
I’m simply questioning what the ‘remodel instrument’ is and the way you’re going to make use of it in your code?