Robot Arm
Quote from protoborg on October 3, 2014, 12:57 pmI am making a robot arm. It looks something like this:
9616903-industrial-robotic-arm-isolated-on-white-background.jpgI have all the parts parented correctly and it does move correctly in one direction. What I need it to do is move in the other direction and also for the claw (the fingers) to open and close properly. If you need the .vmf, I will send it to you. Please can anyone help me with this? I plan to release this thing as an instance when I have it working correctly.
I am making a robot arm. It looks something like this:
I have all the parts parented correctly and it does move correctly in one direction. What I need it to do is move in the other direction and also for the claw (the fingers) to open and close properly. If you need the .vmf, I will send it to you. Please can anyone help me with this? I plan to release this thing as an instance when I have it working correctly.
Quote from opticalprocessor on October 4, 2014, 8:21 amHmm.
Really, instead of using brushes, use a model instead.
It'll be alot easier for mappers to implement than a brush / instance.
tl;dr, use propper.
Hmm.
Really, instead of using brushes, use a model instead.
It'll be alot easier for mappers to implement than a brush / instance.
tl;dr, use propper.
please
Quote from protoborg on October 4, 2014, 10:59 amHow exactly would a model be easier for mappers? The segments of the arm have to move in a hierarchy. I don't think that is possible with a propper model. if you can show me how to get the blasted thing to move correctly in propper, I will gladly make a model out of this thing.
Note: I am going to try making the various rotating parts out of func_rotating instead of func_door_rotating. Hopefully that will allow me to get full 180 degree movement.
How exactly would a model be easier for mappers? The segments of the arm have to move in a hierarchy. I don't think that is possible with a propper model. if you can show me how to get the blasted thing to move correctly in propper, I will gladly make a model out of this thing.
Note: I am going to try making the various rotating parts out of func_rotating instead of func_door_rotating. Hopefully that will allow me to get full 180 degree movement.
Quote from opticalprocessor on October 5, 2014, 5:57 amWait, you were using func_door_rotating?
Wait, you were using func_door_rotating?
please
Quote from TeamSpen210 on October 5, 2014, 6:11 amYou do want to use func_movelinear & possibly momentary_rot_button (with flags set to disable the "button" bit). These have SetPosition inputs, letting you make them rotate/extend half/quarter/double / whatever you want basically with inputs. (Valve fortunately forgot to restrict the value to between 0-1 dispite what the FGD says, so you can enter negative SerPosition values or ones greater than 1).
Something I've liked doing for movelinears is instead of setting the "movement distance" to the maximum amount it can move, set it to something smaller like 32 units. Then SetPosition becomes "move the object in increments of 32 units", instead of the other way around. You can even set the movement distance to 1, making the SetPosition parameter become the the target distance it will move to. If you do this the OnFullyOpen/OnFullyClosed/OnReachedPosition outputs won't be triggered correctly/ at all, so be careful of that.
You do want to use func_movelinear & possibly momentary_rot_button (with flags set to disable the "button" bit). These have SetPosition inputs, letting you make them rotate/extend half/quarter/double / whatever you want basically with inputs. (Valve fortunately forgot to restrict the value to between 0-1 dispite what the FGD says, so you can enter negative SerPosition values or ones greater than 1).
Something I've liked doing for movelinears is instead of setting the "movement distance" to the maximum amount it can move, set it to something smaller like 32 units. Then SetPosition becomes "move the object in increments of 32 units", instead of the other way around. You can even set the movement distance to 1, making the SetPosition parameter become the the target distance it will move to. If you do this the OnFullyOpen/OnFullyClosed/OnReachedPosition outputs won't be triggered correctly/ at all, so be careful of that.
[spoiler]- BEE2 Addons | (BEE2)
- Hammer Addons
Maps:
- Crushed Gel
- Gel is Not Always Helpful[/spoiler]
Quote from protoborg on October 5, 2014, 9:14 amopticalprocessor wrote:Wait, you were using func_door_rotating?Yes I was ("was" being the key word).
TeamSpen210 wrote:You do want to use func_movelinear & possibly momentary_rot_button (with flags set to disable the "button" bit). These have SetPosition inputs, letting you make them rotate/extend half/quarter/double/whatever you want basically with inputs. (Valve fortunately forgot to restrict the value to between 0-1 dispite what the FGD says, so you can enter negative SetPosition values or ones greater than 1).Nothing on this behemoth moves in a linear fashion. The only parts that actually do any moving are the joints and they rotate. The other parts are parented to the joints. Also, the parts that move can't be momentary_rot_buttons because this sucker is going to be well out of reach of the player. I found that by makign the time that the input last short enough and the speed at which the func_rotate moves short enough I can actually control how far the part of the arm moves. It is not exactly elegant, but it works. Now my challenge is getting the claw to not close on itself.
TeamSpen210 wrote:Something I've liked doing for movelinears is instead of setting the "movement distance" to the maximum amount it can move, set it to something smaller like 32 units. Then SetPosition becomes "move the object in increments of 32 units", instead of the other way around. You can even set the movement distance to 1, making the SetPosition parameter become the the target distance it will move to. If you do this the OnFullyOpen/OnFullyClosed/OnReachedPosition outputs won't be triggered correctly/ at all, so be careful of that.I might use movelinear for the base of the thing so that it will be able to move around on the surface it is mounted to. On the other hand trackTrain entities are pretty good for things like that.
Yes I was ("was" being the key word).
Nothing on this behemoth moves in a linear fashion. The only parts that actually do any moving are the joints and they rotate. The other parts are parented to the joints. Also, the parts that move can't be momentary_rot_buttons because this sucker is going to be well out of reach of the player. I found that by makign the time that the input last short enough and the speed at which the func_rotate moves short enough I can actually control how far the part of the arm moves. It is not exactly elegant, but it works. Now my challenge is getting the claw to not close on itself.
I might use movelinear for the base of the thing so that it will be able to move around on the surface it is mounted to. On the other hand trackTrain entities are pretty good for things like that.
Quote from CamBen on October 5, 2014, 1:46 pmPersonally the way I would do it is with a group of func_tanks. They allow for pretty easy aiming and rotating in pretty much any direction.
Personally the way I would do it is with a group of func_tanks. They allow for pretty easy aiming and rotating in pretty much any direction.
Aperture Science: We do our science asbestos we can!
Quote from TeamSpen210 on October 5, 2014, 4:59 pmI meant to use the momentary_rot_button as the movement entity. Change the flags so players can't Use it to make it move, then send SetPosition inputs like on movelinears. It doesn't matter that it's a button, you can ignore that feature.
I meant to use the momentary_rot_button as the movement entity. Change the flags so players can't Use it to make it move, then send SetPosition inputs like on movelinears. It doesn't matter that it's a button, you can ignore that feature.
[spoiler]- BEE2 Addons | (BEE2)
- Hammer Addons
Maps:
- Crushed Gel
- Gel is Not Always Helpful[/spoiler]
Quote from protoborg on October 6, 2014, 10:50 amTeamSpen210 wrote:I meant to use the momentary_rot_button as the movement entity. Change the flags so players can't Use it to make it move, then send SetPosition inputs like on movelinears. It doesn't matter that it's a button, you can ignore that feature.Actually, SetPosition does not work the way you think it does. It ONLY rotates to a particular position. It cannot be rotated again without another specific position, which requires that you have a second button. What this means is that the "button" will only rotate once with any particular button. This makes it more than useless for a robot arm, at least the kind of robot arm I am designing.
Actually, SetPosition does not work the way you think it does. It ONLY rotates to a particular position. It cannot be rotated again without another specific position, which requires that you have a second button. What this means is that the "button" will only rotate once with any particular button. This makes it more than useless for a robot arm, at least the kind of robot arm I am designing.
Quote from TeamSpen210 on October 6, 2014, 3:33 pmUse a math_counter then, which would let you add/subtract numbers to send as SetPosition inputs. Add an OutValue output that triggers the SetPosition input, without any parameter. Then have two buttons, with Add or Subtract inputs with the amount as a parameter (you can use decimals).
Use a math_counter then, which would let you add/subtract numbers to send as SetPosition inputs. Add an OutValue output that triggers the SetPosition input, without any parameter. Then have two buttons, with Add or Subtract inputs with the amount as a parameter (you can use decimals).
[spoiler]- BEE2 Addons | (BEE2)
- Hammer Addons
Maps:
- Crushed Gel
- Gel is Not Always Helpful[/spoiler]