I understand that mirroring in object mode through ctrl+m only modifies object’s scale on a given axis, but is there a way to get it to manipulate geometry (or rotation, since that’s what i did on the second image) aswell?
He is referring to a standard CAD mirror operation, with two clicks for defining the mirror line. It is possible in 2D space or ortho view in 3D space. Usually there is a third click for delete confirmation of the source object.
Yes, the mirror operation would be a standard part of a full featured CAD setup, as i already mentioned here. It was planned for future versions of NP station, but that could be a long wait…
For the operation to be successful as per your second image, the script would probably have to manipulate object’s world matrix, i think it is possible.
what you’re doing there is in edit mode with the help of a modifier, while i have my needs to do this in object mode with mesh data-linked objects (so that when you edit the original object, the linked mirror object changes too)
The mirror modifier in the screenshot was added in object mode.
The mirror modifier already does this. As long as the added mirror modifier isn’t applied / finalized, the duplicate object will receive any changes made to the original. If the original object is scaled down 50 percent, the duplicate will be scaled down 50 percent.
the geometry added by this modifier stays in that object. Say i want to mirror 50 objects without destructing their modifiers (i mean you can’t join these 50 objects into 1 object and add a mirror modifier to them). Or, for example, i want to mirror an array of duplifaces with curve modifier on them and so on. It isn’t convenient that way when you can simply ALT+D the objects you need and ctrl+m them (i wish it would work the way mirror modifier works, but it only changes the scale on XYZ object’s coordinates and not the geometry)
Yeah, that’s another way of putting it. I don’t know what else to add to elaborate other than in my workflow it is handy to have all those separate objects (snapping gemstones onto a surface, as another example. You don’t have local coordinate system for each body in edit mode)
Hmm… thinking this over I’m not sure how practical an example workflow like that would be for our hypothetical mirror add-on. To maintain the existing modifiers and have the mesh data of the duplicates and originals stay linked, the mirror operation would have to add 50 separate modifiers, one for each of the 50 objects’ modifier stacks. That could cause performance and stability issues depending on how complex the mesh data was. I’m not sure how undo/redo operations would work in this case either: would adding a modifier to each of those objects be considered 1 operation or 50 separate operations? If it was the latter your undo history would be trashed.
There might be a cleaner way of doing this, but I can’t think of one at the moment.
Instance mirroring could work, but I’m not familiar with how Blender handles instancing under the hood. My guess is Blender is just adding a second “position” (world matrix) to an object and using that to draw the object’s geometry at two different places. If that’s the case it should be possible to change the rotation.
To clarify, this would be 2 points to create a mirror line, with an option to create a 3rd point if you’re working in perspective mode (or if you need to fine tune the mirror plane’s rotation angle)? If so, I think I might already have code that can do this (the line \ rotation plane making part) in one of the tools I’ve been experimenting with.
Loosely related, but when I was looking at np_point_distance.py and saw it was creating two separate “start” and “end” objects in NP020PDRunTranslate, but I couldn’t figure out why. What was your reasoning for creating two objects instead of having one object for snapping that you place and grab over and over until you have all the points you need?
No github page, although creating one could be useful. Most, if not all, updates are already posted in this thread, but if you’re interested in seeing exactly what code was changed in the last update you can check the NP Station status page in Blender dev’s “User Contrib” section.
By the way, if you have time, I have some minor code changes for NP Station I would like your input on before committing. No new features, but the changes should make the code a little easier follow and may also improve stability and performance by a tiny amount. I can link the changes here if you want or send you an email / PM, whichever you prefer.