Guys,
I'm using KS3.1, and started with KS1. I work with products. Many of us do who use your software. Our products are pretty much always in the same units of scale.
We have a team of designers here, and have shared some shaders for common materials we all use. The fact that every model comes in at a different scale means that the textures always need some adjustment to look "right" in whatever random scale KS3.1 is using.
This is even more of a problem when I want to assemble multiple bip's together or merge together components from different models, i.e., model lineup renderings.
These real world products all start out in a common scale with common units of measure, then live in a common scale, so why does this have to be so painful for us in the KS world? This needs to be a priority. I'm guessing everyone who uses KS for work has a problem with this.
The lighting is much better with 3/3.1 vs. 2, and it can be a joy to use sometimes, but it can also be very painful.
Fix please!
Thanks
Everyone knows how I feel about this.
+1 x10 x10 x10 x10.......
To make this less painful you basically need to start your projects with a baseline model.
I suggest making a cube in your modeling software that is sized somewhere around the average dimensions of your products. If you make mice and keyboards, for example, make a cube that is bigger than a mouse and smaller than a keyboard.
Import this cube into the default empty scene and save out a bip.
When you want to start a project with a real product, open KeyShot, then open that cube bip that you created.
Now, import the new model and in the import settings menu:
Disable "add to scene" (this clears out the cube)
Enable "From previous import" under "Coordinates" (this makes sure the new model uses the same scale values as the cube)
Jeff... I've been doing that for quite some time but still I bump into this issue when removing parts to update them with new ones .. and as soon as the file is "infected", there's no way back.
This is also the case if you want to dress up your scene by importing parts from the sketchup library or such ... they are often off scale and mess up things if you want to import another self-made part or item later on. Even if you import those sketchup parts in a separate bip and resize them there, then import the bip ... I've tried about everything ..
Jeff,
Less painfull is behavior that we're already used to, and that is dealing with real world units. Even if we take your suggestion and have a generic cube, the transform dialog numbers are still meaningless as there is no relation between those numbers and the real world. Look at any cad software out there and one of the most basic document properties is choosing what units you wish to work in. KeyShot is actually NOT making an easier and more intuitive piece of software by ignoring this basic parameter of 3D tools.
This is something we definitely want to address. We did implement a method that would basically import the model in the original coordinates, but we found it too hard to use. One issue with this approach is that the data can end up anywhere, and it can be hard to find the model. Another issue is that some CAD systems use miliimeters while others use meters or inches, and several formats do not have any scale information at all. I hope we can develop an easy to use and robust approach for KeyShot 3.2 or 4.x
Currently, you can see the scale factor that is applied to the data in the transform information in the scene tree. You can reset the scale to 1 to get the model back to its original size. You can also adjust the translation and rotation to 0
to get the model back to its original position.
-- Henrik
Quote from: JeffM on March 14, 2012, 04:13:27 PM
To make this less painful you basically need to start your projects with a baseline model.
I suggest making a cube in your modeling software that is sized somewhere around the average dimensions of your products. If you make mice and keyboards, for example, make a cube that is bigger than a mouse and smaller than a keyboard.
Import this cube into the default empty scene and save out a bip.
When you want to start a project with a real product, open KeyShot, then open that cube bip that you created.
Now, import the new model and in the import settings menu:
Disable "add to scene" (this clears out the cube)
Enable "From previous import" under "Coordinates" (this makes sure the new model uses the same scale values as the cube)
This sounds like a bit of a bodge to me.
My problems arise when I 'import' a scene into an existing scene, i.e. merging two engineering assemblies together.
Even though the two separate assemblies often contain the same identical parts (perhaps rearranged differently) they can come in at wildly different scales!
Meanwhile the 'scene' tab shows both assemblies at Scale =1
I'd love a fix for this.
verry interessant topic!
Many thanks.
Antoine
Quote from: KeyShot on March 15, 2012, 01:05:44 AM
Currently, you can see the scale factor that is applied to the data in the transform information in the scene tree. You can reset the scale to 1 to get the model back to its original size. You can also adjust the translation and rotation to 0
to get the model back to its original position.
-- Henrik
Henrik, the suggestion to set the scale back to 1 on imported parts is meaningless if we don't know what units were used to import the object in the first place!.
It also doesn't work; after scaling things to 1.00 and then importing other things and scale them to 1.00 they come in the same for awhile, but then things get screwy because that number change to 1.00 does not get remembered. Even though the objects don't change size, the scale number in the dialog reverts back to what the model was originally imported to. Changing that number to 1.00 again blows the model up to burst the environment bubble again; leaving the other models that were blown up to 1.00 tiny in comparison and now understandable relations are lost again.
There is a bigger issue than just trying to get things scaled relative to each other; it's remembering what's already happened. The whole transform system is broken.
When I import a model for the first time it seems rather arbitrary the scale number that gets assigned. For objects that are the size of pencil sharpeners they come in at small scales; like .044; while larger objects are coming in at scales like .014. What scale does a car come in? Sounds like things should scale exactly the opposite: All imports come in at scale = 1.00 while Keyshot scales the environment to fit. And make those numbers in the transform, environment, and camera tabs mean something useful. It would be nice to know if I'm moving my object by 1mm or not. Heck, I don't care if it's mm, centimeters or meters, so long as I know what units those transform numbers mean.
Also don't understand why it's so hard to figure out what units something is in. CAD programs have this figured out and sounds like it should be bundled into whatever importer gets used for a vendors file type. SW and Pro-E will tell in the file headers what units are being used. What programs these days don't use specific units?
+100
Thanks for the feedback. It seems like two issues need to be addressed. First, it sounds like there is a bug in the existing model transform tool (it should remember the scale). We will investigate this. Secondly, we will revisit the concept of importing models in their original scale and position. To test this later concept. I have attached an empty bip file (keep_size.bip). If you open this file before you import your geometry and check 'Coordinates' -> 'From Previous Import' then the geometry will be imported with the scale untouched. Furthermore, if you uncheck 'Center' and 'Snap to ground' then it will be in the original location as well. You can also check 'Y' as the up vector and it will keep the original orientation as well. Let us know if this is useful?
Thanks,
Henrik
Henrik, the bip won't open: "keep_size.bip is broken and contains invalid data."
Oops. You are right. I just uploaded a new file. Btw. the next release of KeyShot (coming in the next couple of days) will be able to read the other file I posted.
File opens; model does not import to scale = 1.00. Scale is 0.016 for a model of a first gen iPad.
What kind of dataformat did you import?
SolidWorks.
You are right. I found the issue. KeyShot 3.1 ignores the previous transform if the scene is empty. I have created a new file keep_size2.bip with a hidden box. It will maintain the scale from SolidWorks. Please note that the library we use to import SolidWorks files scales everything to millimeters, so your model will likely come in huge. You can solve this by scaling it down by 0.001 to get it into meters.
Hendrik,
That works after a fashion, but Keyshot will not allow an input of .001 for scale; the lowest it will go is .01.
Are you saying that KeyShot's units are meters? For a future fix, shouldn't that be an easy conversion when dealing with SW files to convert on import? Because your temporary file fix right now is actually not to scale if it's interpreting mm into meters. All values should then be multiplied by .001 on import to get the correct scale, which should then should be displayed as scale = 1.00
You can manually enter the small scale value. I just tried this, and on the models I tested 0.1 seemed like the right scale value. In terms of implementing this then the library we use to read SolidWorks file only recently gave us the ability to read the scale. Not all formats have a scale (for example obj), but I do think we can implement a solution where you can decide (as an expert) that your space is in meters, inches etc. and KeyShot will keep everything at the right scale for you.
I could not enter the small scale value. When trying to type in 0.001 it defaults to 0.010. What does happen is after saving the file and looking at the scale of the models, they are back to 1.00. I rescaled them to .1 (getting to .001 of the original) and then save again. On reopening they are now at scale = 1.00 again, as after the original import. The problem then is that (assuming you are using meters as the default units in KeyShot) you only have the ability to move models via the transform dialogs by tens of mm.
Don't understand about reading in the SW data and not being aware of scale. You've already said that they are in mm. Doesn't that mean something for importing data? How does an .obj file not have scale info? How does the file then know the relationship between vertices of the mesh? There are numbers in there and they must be consistent; they can't be arbitrary. This vertice is so many units xyz from this vertice. If you know the source of the units (SW mm, Alias, meters....) then you know the scale of the mesh and can interpret accordingly.
Perhaps, you can contact support, and we can get a discussion going on how we can get a good workflow that will work with your models. I do believe we can and should address this issue in 3.2
@m2tts - please send my an example and explain exactly what is not working. This will be the easiest way for us to determine a solution.
Scale does work. Even when you import different tip files. When you import them, make sure "from previous" is checked. However, we found one issue that comes back to what m2tts has mentioned: if you enter 0.001 as a scale value, it jumps to 0.01. That needs to be fixed.
Also, we are looking at remembering the transforms at the subassembly level. You can replace entire subassemblies today. But you need to move each part into place individually. And that is indeed painful.
I'm wondering what is the expected behaviour when combing BIP files and STP files?
For instance, here's a simple model of a valve which I did in Alibre.
First I exported the model as a BIP file
Second i exported the model as a STP file.
I then went to Keyshot ans 'opened' the BIP file. I then 'imported' the STP file into the current scene with coordinates from previous import..
This is the result. The highlighted part is what I see in the BIP file and the huge thing above it is what I get when I import the STP file. It's exactly the same valve - why are they not the same size?
Both show scale=1 in the project tab. Translation for the BIP shows as X=0/Y=0/Z=0 and for the STP X=0/Y=10.54/Z=-2.43
Alibre pre-scales the valve geometry before exporting it as a bip, so the geometry is not the same size as the step geometry when it is imported into KeyShot. If you always export models as bip then they will import with consistent scales.
This is something I have struggled with for multiple reasons. The real importance is to allow for highly improved work flow between ANY import and subsequent imports/updates. There is seldom a time where I have not went back and made additions, changes to my CAD setup and ended up re-doing most of my Keyshot work.
Thanks
We are making this a priority. To make sure we understand the issue you are facing can you describe a typical workflow scenario that causes problems? Remember that the scale for any imported model is visible in the scene tree and if that scale is set to the same value for multiple objects (even from different imports) then they will be at the same scale.
Quote from: KeyShot on March 16, 2012, 05:49:48 AM
Remember that the scale for any imported model is visible in the scene tree and if that scale is set to the same value for multiple objects (even from different imports) then they will be at the same scale.
Well the first thing that needs fixing is the issue of remembering transforms and scale. Right now it doesn't matter what you change the scale of an import to: it will read as the first value it was given automatically by KeyShot after you've saved the bib and reopened the file. Thus you have no way of scaling new imports to the same value you scaled the previous one.
I am not sure I understand. It certainly remembers scale. One issue that we will address immediately is the issue you pointed out: when the original scale is 0.001, your new import comes in at a different scale, and you try to match the scale, you can enter 0.001 but it will snap to 0.01. The temporary fix for it it to go to the original import and adjust the scale to 0.01. Now both imports will match.
We are fixing this as we speak. As a next step we will look into remembering the transforms on the assembly level. Right now, all assembly transforms are propagated down to the part level. So in order to replace an assembly in a scene right now you would need to move all parts within the assembly individually, which is not fun.
Again, any examples will help just to make sure that we don't miss the mark here ....
Thanks,
Thomas
Ok, I've now tried twice to post an example of Keyshot not remembering scale transforms, but the forum is not taking the post. the file is 30,000kb; under the 50,000kb limit. How do I get this bip to you?
keyshot.wetransfer.com is the vest way to do it. Send to thomas@luxion.com.
I just posted an update to the SolidWorks plugin in the plugin section:
http://keyshot.com/forum/index.php/topic,3547.0.html
If you export the model from inside Solidworks into KeyShot first, you will no longer have a scale issue when you import a second object into the scene. Make sure to keep "From Previous" checked.
Sorry Thomas, but that plugin is not working as advertised. The initial model pushed out from SW may not be scaled above 1.00, but the transform dialog says it's scaled 63.675. When the file is saved; reopened and another SW file is imported into the scene, it is blown way out of scale form the previous import.
I hope someone can clear something up for me...
Does this scaling issue only occur with the SolidWorks importer?
I use SolidWorks as well, but due to the geometry artefacts I often got when importing native SW data in the early KS 3 releases, I have since settled on a workflow of exporting STEP data from native SW files. These STEP files are used to get geometry in KeyShot.
Doing things this way I haven't run into a scaling issue with newly imported STEP geometry and/or existing bip files via the "from previous..." route.
greetings,
Dries
There shouldn't be a difference when you import directly. We will look into the plugin issue.
Any word on this issue?
I've found that after the initial push out to KeyShot using the plugin the scale reads in the positive numbers like 27.5169. When importing another SW part using the direct importer, the Transform box says it's the same scale (27.5169), but is huge. 1000 times huge. So entering .0275 into the scale box gets you extremely close to the same size; but not exactly as you can't enter enough digits to match the scale perfectly. And of course, after you've saved and opened the file again, the transform says that for the import the scale is now 27.5169 (lost history).
We are working on it.
One thing you can do is adjust the scale of the original object as well. So essentially you are matching the scale from both sides. I know, a inconvenient workaround, but it will work. We are looking into the scale issue.