Make a Refrigerator Figure

Page 2: Exporting and Importing

Make sure you have completed the steps on page 1 before proceeding. Okay, now that the introductions are over, let's get back to work. On this page, you'll export the refrigerator as an obj file, "process" it, make a basic UV map, import it into Poser, and adjust the joints. Whew!


Applications used:

 Lightwave
 Text Editor capable of replacing a paragraph mark
(Microsoft Word, UltraEdit, but not WordPad or NotePad)
 Text Editor for editing cr2 file
(WordPad or NotePad will work fine for this step)
 UV Mapper
 PHI Builder
 Poser 4 or above

Steps:

1. First, let's export the layered Lightwave refrigerator as one obj file.

 One note before we start: when you export an obj file from Lightwave, only the content of the current layer will be exported. Even if three layers are selected, only one layer will be exported. (And, sorry, I don't know how Lightwave decides which layer should be exported.)
 The first thing we'll need to do is combine the polygons on Layers 1, 2, and 3 into one layer.
 Click on the top of Layer 1 to switch to that layer.
 Hold down the "Shift" key and click on the top of Layer 2.
 Hold down the "Shift" key and click on the top of Layer 3.
 (Remember, Layer 4 is the "extrusion" path and is not used on the final object.)
 Hit the "c" key to copy all of the polygons.
 Switch to a new, empty layer (such as layer 9 or 10) and hit the "v" key to paste the copied polygons.
 In order for Poser to properly read the obj file, it is very important to always perform these next two steps before exporting to an obj file:
1) Merge points after pasting. Hit the "m" key to merge any points that have the exact same position. When the "Merge Points" box appears, be sure to press the button for "automatic" and uncheck the option for "Keep 1-point polygons". Merging points will become more important when you create more complex models with multiple polygons connected to the same point.
(In this refrigerator object, there are no points that need merging, so you will get a message saying, "No points eliminated.")
2) Remove all 1 and 2 point polygons. Be sure you are in Polygon Selection Mode and hit the "w" key to bring up the "Polygon Statistics" window. Look for the lines that say "1 Vertex" and "2 Vertices". To the right will be the number of polygons.
If the number is greater than 0, click the "+" (to the left) to select these polygons. Hit the "Del" key to delete them.
One and two point polygons are usually created by the merging of points. Deleting them should have no effect on the visual shape of your object... however, NOT deleting these polygons will cause issues later.
Merge points dialog box.
 
Polygon statistics window.

A side note: Lightwave can export objects in a number of file types and Poser can import objects in a number of file types. However, since we are creating a Poser figure, the obj file will actually be used by Poser as the figure's base geometry.

2. Export the refrigerator.

 To export the file, go to File > Export > Export OBJ.
 Note: since this obj file will be used by Poser, it is very important that you save it somewhere beneath your Poser\Runtime\Geometries folder. You can use any folder you wish, so I'll be saving it under Poser\Runtime\Geometries\JHoagland.
 Let's name this file "refrige2.obj" and then hit the "Save" button.
 Note 2: remember where you save this file- we'll need to get back to this folder, later in the next three programs.
 Save your file by hitting the "s" key. You can minimize Lightwave since we'll be moving on to the next program... but don't close Lightwave- we'll need it later when we adjust the joint centers on the doors. (Don't worry about "joint centers" yet, either- I'll get to those later.)
Saving the obj file.

3. Next, we need to separate the materials and parts.

 Open your text editor. Don't forget the note above: you'll need a text editor with the ability to search and replace paragraph marks. For this example, I'll use Microsoft Word.
 Open the obj file. You may need to set the "Files of Type" to "All" to files other than the editor's native files.
 When you open the obj file, you may be asked to convert it- select the option for "Plain Text".
 If you scroll down through the file, you'll see lines that look like this:
usemtl base_exterior

usemtl base_interior
 We need to break these lines apart into separate parts and materials, so they will look like this:
g base
usemtl exterior

g base
usemtl interior
 First, replace the "usemtl " with "g ". Be sure to include a space after the "usemtl" and "g", but do not include the quotes. You can use a global search and replace to do this.
 After the search and replace, we will see lines that look this:
g base_exterior

g base_interior
 Next, let's break up the materials and parts. Replace the "_" with "(paragraph mark)usemtl(space)". In Microsoft Word, the paragraph mark is "^p", so the replacement text would look like "^pusemtl ". Check your text editor's help files for its "paragraph mark" symbol.
 After this search and replace, we will see lines that look like this:
g base
usemtl exterior

g base
usemtl interior
 Save and close your obj file. If you use Microsoft Word, it may give an "error" about the file not being in Word format and that you may lose formatting. Just click "Yes" to save it anyway- we need it to be saved as plain text format.

You can close your text editor now, if you want. Now that the obj file has its materials and parts in the right place, let's create a template for it.

3. Open UVMapper and create maps.

 Go to File > Load Object and select the refrigerator obj file.
 You may get a message box telling you the statistics of the object. Just click the "OK" button. In UV Mapper Pro, you can set your preferences to *not* display the statistics box when loading an object.
 You'll then see a screen telling you that there is no UV mapping for the object- that's correct. Let's go ahead and create a UV map for our object.
 Go to Map > Create Map > (select one). There are 4 options here, so let's see which one is the best.:
1) If your object is mainly "flat", you can probably use the "planar" option. This mapping works best for things like a one-polygon screen on a spaceship's dashboard.
2) If your object is squarish or mostly squarish, you should use the "box" option.
3) If your object is organic or round, then you should use the "cylindrical" option.
 Or, if you use UV Mapper Pro, you can use different mapping types for different materials. You can also resize your map or even "maximize" it, which is especially useful for any materials where you want to use an image without the need to fit it to your template.
 Go ahead and play around with the mapping to see which map type best suits the material... or just use a box map on all the materials. (Your map should look like the image to the right.)
UV 'box' template for the entire refrigerator object.

4. Save the templates.

 Since we will probably want to make texture maps for this object later, let's go ahead and save the template for it.
 Go to File > Save Template As. The next dialog box will ask for a height and width. Usually, you can leave the default values as they are, or if you want a perfectly square ratio of height to width, then a good value is 1024x1024.
 Note: At this time, UV Mapper saves templates only in the BMP format. Using the checkboxes, though, you can specify whether you want a full-color image (larger file size) or 256-color (smaller file size).
 Keep in mind that any textures that you make MUST have this same ratio or the textures may not work properly. In this example, the ratio is 1024x1024 or 1:1. Sometimes UV Mapper will suggest an odd size: maybe 1024x700. You don't need to know this exact ratio as long as you remember the proportion: if you make your texture 2048 wide (twice as big), make sure the height is also twice as big: a value of 1400.
 Then, select a folder to save it in (I recommend putting it in a "templates" folder under your Poser\Runtime\Textures folder).

5. Split the vertices to make sharp edges.

 First, why should we split vertices? What does that do?
 If your model has sharp edges, then you will need to split the vertices to make the object "Poser-friendly". Well, what does it mean to make an object "Poser-friendly"? Poser's renderer tends to smooth the edges- this is great for organic objects (like people or clothing), but terrible for sharp-edged objects (like, um, refrigerators).
 The solution to this smoothing issue is to split the vertices of an object. This causes the edges to "miss" slightly, which then causes Poser to render the object correctly.
 See the comparison in the image to the right. The refrigerator exterior on the left is the "raw" object, without splitting the vertices. Notice the bright spots in the middle of each side, the uneven lighting, and the edges that seem slightly rounded. The object on the right is with vertices split. Notice that there are no bright spots, the lighting is even, and that the edges look sharp. (And, yes, both objects were rendered in the same scene, with the exact same light set, and with no changes to the material colors.)
Comparison of refrigerator exteror, with and without split vertices.
 Before splitting the vertices, make sure there are no stray vertices in the same position. Even though we merged points (in Lightwave) before exporting the object, there may be a few stray vertices that may need to be removed. Go to Tools > Vertices > Weld. (For this refrigerator, you should get a message saying, "0 points welded".)
 Then, split the vertices by going to Tools > Vertices > Split:
 In the free version, UV Mapper will automatically split the vertices at a 43 degree angle.
 In the Pro version, you can specify whether to split all of the vertices or just specific groups or materials and you can specify the angle on which to split. For this example, leave the value of 43 and just hit the "OK" button.
And, yes, this is the same value as the "smoothing angle" that we used earlier in Lightwave. If you use another smoothing angle in Lightwave, this is where you enter the value in UV Mapper.

6. Save the obj file.

 Let's go ahead and save the obj file again- yes, we can over-write the existing file. (If we mess up or make a mistake, it's a simple process to re-export the file from Lightwave or re-save it from UV Mapper.) This will save all of the changes that we made: the UV mapping, the split vertices, and it will also "lock in" the height to width ratio for the maps.
 To be honest, I'm not sure how most of these options affect the model when it is brought into Poser. So, just leave all the options at their default.
 Note: Be sure to check the last option: "Don't Export Material Library". If this option is unchecked, UV Mapper will create an "mtl" file, which the obj file may ask for later on.
UV Export options.

You can close UV Mapper or leave it open, whichever you prefer.
Optional: if you want, you can make a texture or transparency map for your object:

 Open the template file in Photoshop, Paint Shop Pro, or any image-editing or paint program.
 If you saved the file as a 256-color BMP file, you may need to convert it to RGB color to be able to make a full-color map.
 You can save the map in Photoshop format for later use or save it as a jpg (or bmp) file for use on your figure.
 Note: I recommend waiting until later to make textures- if you need to re-export the obj file or change the mapping, your textures may fit the model.
 Side note: when you're ready to make textures, you should ALWAYS save your file in JPG format. Photoshop (PSD) and BMP file are too large (and could take a while to download, even if they are zipped) and GIF files may not be able to be used by people running Poser on a Windows 2000 operating system.

At this point, you have a fully-working, fully-mapped base obj file that can be brought into Poser and converted to a figure file. There are two methods for converting an obj file to a figure:
1) Use the Setup Room in Poser Pro Pack/ Poser 5 (and above). You will have to manually create "bones" and body groups.
2) Use PHI Builder to create a figure hierarchy (which is the method I will explain).

7. Open PHI Builder.

 Open the obj file by clicking the "OBJ" button.
 The file should load and look like the image to the right.
 At this point, we would normally create the hierarchy by dragging the doors to the base, but PHI Builder has already created the hierarchy for us.
 But, what exactly is a "hierarchy"?
A "Hierarchy" is the order in which the body parts are connected.
 Using PHI Builder, you can quickly create the correct hierarchy by dragging and dropping body parts on top of one another.
 For example, if you were making a helicopter, the hierarchy would look something like this:
1 Hull
	2 TopRotor
		3 TopBlades
	2 RearRotor
		3 RearBlades
	2 FrontGear
		3 FrontWheel
	2 CockpitDoor
This means that the TopBlades are connected to the TopRotor which is connected to the Hull. The RearBlades are connected to the RearRotor which is also connected to the Hull.
If your figure was humanoid, the hierarchy would like something like this:
1 hip
	2 lButtock
		3 lThigh
			4 lShin
				5 lFoot
	2 rButtock
		3 rThigh
			4 rShin
				5 rFoot
	2 Abdomen
		3 Chest
			4 Neck
				5 Head
			4 rCollar
				5 rShldr
					6 lForeArm
			4 lCollar
				5 lShldr
					6 lForeArm

 This means that when you move a body part with a lower number (such as the hip), all body parts below it will move also. In the second example, when you move the lThigh, the lShin and lFoot will move with it.
 Note that the very first line in the PHI file points to the location of the obj file in your Runtime\Geometries folder- this will be important later when you convert the obj file in Poser.
 Click the "Save" button and save this file with the same name as the object file (on Windows machines, the "phi" extension will automatically be added).
The refrigerator model's hierarchy.

(You can close PHI Editor or leave it open, whichever you prefer.)

8. Creating the figure file (step 1).

 Open Poser (version 4 and above will work.)
 Let's import the refrigerator: go to File > Import > Wavefront Obj, and find the "fridge2.obj" file.
 In the next box (Prop Import Options), we will leave the settings the way they are. Just make sure that the "Percent of standard figure size" is set to 100%. Then click the "OK" button. (See the image to the right for the Prop Import Options.)
 The refrigerator will be added to the scene. Don't worry if it's not centered or not the right scale or even if it's in the middle of the floor.
The Prop Import Options dialog box.

8a. Creating the figure file (step 2).

 Next, load the phi file we just created by going to File > Convert Hier File.
 Poser will show a "Hierarchy Conversion" progress box as it reads the phi file and converts the object to a figure. Our refrigerator model is small, so you may not see the progress bar move. For larger (or more complex) objects, this process may take a few moments.
 Next, Poser will ask you for a name. To make things easy, let's call this "Fridge2". We'll be working with this model more and we'll eventually delete this figure from the Library, so you can use any name you like.
 Poser will add this new figure to your "New Figures" Library (and automatically switch to that Library). Sorry, but there is no way to change where Poser creates the new figure- it will always be created in the "New Figures" Library.
 Once the figure has been created, we can delete the object from the scene. It should already be selected, so hit the "Del" key. (When Poser asks, yes- you really want to delete it from the scene.)

9. Refining the figure.

 First, we'll need to add the refrigerator to the scene so we can work with it. The "New Figures" Library should already be open, so click on the "Fridge2" thumbnail and then click the (Create New Figure) button.
 (When the refrigerator is added to the scene, feel free to rotate and move the Main Camera to suit you taste.)
 The first thing we'll do is give this figure a correct name:
 Look for the pull-down box that says "Figure 1". Poser 4 and 5 users will find it to the lower-left, under the document window. Poser 6 users will find it to the upper-left, just above the document window.
 In the pull-down box to the left, select "Body".
 Go to Object > Properties. Poser 4 users will get a dialog box; Poser 5 and 6 users will be taken to the Properties Tab on the Parameter Dials Palette.
 Type in a more descriptive name, such as "Refrigerator". Poser 4 users should click the "OK" button to close the dialog box. Poser 5 and 6 users can hit the "Enter" or "Tab" key to save the new name.
 Since our refrigerator is a mechanical-type object and shouldn't twist or bend, we'll need to tell Poser not to bend the parts. First, the Base of the refrigerator:
 Under the same pull-down box where we selected "Body", go to Body Part > base.
 Again, go to Object > Properties.
 Instead of renaming the part, uncheck the "Bend" checkbox. Poser 4 users should click the "OK" button to close the Properties dialog box.
 Note: if our model was organic (like a humanoid figure or clothing), we would need it to bend and twist, so we would not uncheck the "Bend" option.

10. Editing the freezer door joint.

 First, let's make sure the freezer door can't bend:
 Under the same pull-down box where we selected "base", go to Body Part > freezerdoor.
 Go to Object > Properties.
 Uncheck the "Bend" checkbox. Poser 4 users should click the "OK" button to close the Properties dialog box.
 Before we start adjusting the joints, let's set up the document window so we can see what we are doing:
 First, switch to the Top Camera. You can also rotate the Main Camera or Aux Camera, but I find it easier to use the Top Camera since it's already pointing directly at the top of the model. (Note: you can also use the Left Camera and Right Cameras as needed, though we don't need to use these views on this refrigerator model.)
 Then, adjust the camera's view so the refrigerator is centered in the document window.
 Switch to Wireframe Document Style (or hit "Ctrl-3")- this will let us see through the model so we can see the edges of the polygons.
 Next, let's adjust the "joint center" so the freezer door opens and closes properly. (The "joint center" is just what it sounds like: the center of the joint's rotation.)
 Open the Joint Editor by going to Window > Joint Editor.
 When the Joint Editor is open, you will see two cross-lines on the screen: the green lines are the joint's center point and the red lines are the joint's end point.
 In the Joint Editor Window, the top three numbers are the joint's center point: X, Y, and Z (the green cross-lines). The bottom three numbers are the joint's end point: X, Y, and Z (the red cross-lines). For the refrigerator, the values for the joint center and joint end will be the same, but for more complex models, these values may be different.
 At this point, you can drag the green cross-lines to adjust the center point and the red cross-lines to adjust the end point: move your mouse pointer over the lines until your pointer turns into a small circle. When it does, you can move the cross-lines.
The Joint Editor and freezer door.
 But wait! Before you start dragging the lines, there's an easier way!
 Since the freezer door will be rotating on a point located on the inner-edge of the door, can we get the exact value of that point, maybe from Lightwave? Yes we can!
 Switch over to Lightwave. (You should be on the layer which contains the entire refrigerator object.)
 Go to the Top viewport, make sure you are in Point Selection mode, and click on the points that correspond to the right-hand, inner edge of the doors. (See the image on the right.)
 Even though there are 4 points selected, they all have the same X and Z values. This will work fine for us, since the doors will rotate on the Y axis.
 If you'll look carefully, you'll see that the X value is 110mm and the Z value is -117.5mm.
 Switch back over to Poser.
 In the Joint Editor window, type "0.110" in the first box (the X value): this is the Poser equivalent of Lightwave's 110mm.
 We can skip the next box, the Y value, since the freezer door rotates on the Y axis.
 In the last box, the Z value, type "0.1175": this is Poser's equivalent of Lightwave's -117.5mm. And, yes, the Z axis is flipped: Lightwave's negative values are positive values in Poser.
 Your Joint Editor Window should look like the second image to the right.
 The freezer door's joint center is done, so click the upper "x" to close the Joint Editor.
The freezer door joint center.
 
The freezer door joint center/ Joint Editor.
 Now, let's adjust the dial that controls the opening and closing of the door.
 Since the freezer door rotates on the Y axis, which dial do you think we'll be using? That's right- the "yRotate" dial.
 Move the dial back and forth to see the door open and close. You'll notice that negative values (and values above 90 degrees) cause the door to go through the base. Let's fix this.
 Double-click on the yRotate dial to open the "Edit Parameter Dial" dialog box.
 Set the Value to 0.00 (this is the initial value).
 Set the Min Limit to 0 (this is the minimum value of the dial).
 Set the Max Limit to 90 (this is the maximum value of the dial).
 Give the dial a new, descriptive name, such as "OpenClose".
 Click the "OK" button when done.
 Yes, there is no setting to "force limits", but we'll get to that in a few steps.
Edit parameter dial.
 Since the freezer door only moves on the Y axis, we'll need to "lock-off" the movement on the X and Z axis:
 First, double-click on the xRotate dial. In the "Edit Parameter Dial" dialog box, set both the Min Limit and Max Limit to 0. Click the "OK" button when done.
 Next, double-click on the zRotate dial. Again, in the "Edit Parameter Dial" dialog box, set both the Min Limit and Max Limit to 0. Click the "OK" button when done.

The freezer door is done!

11. Editing the lower door joint. This step is a little easier since it's basically the same as adjusting the freezer door joint.

 First, let's make sure the lower door can't bend:
 Under the same pull-down box where we selected "freezerdoor", go to Body Part > lowerdoor.
 Go to Object > Properties.
 Uncheck the "Bend" checkbox. Poser 4 users should click the "OK" button to close the Properties dialog box.
 Next, let's adjust the "joint center" so the lower door opens and closes properly. This step is exactly the same as the one for the freezer door.
 Open the Joint Editor by going to Window > Joint Editor.
 (Since the values for the lower door are the same as the freezer door, we can just type in the same values.)
 In the Joint Editor window, type "0.110" in the first box (the X value).
 We can skip the next box, the Y value, since the lower door rotates on the Y axis.
 In the last box, the Z value, type "0.1175".
 The lower door's joint center is done, so click the upper "x" to close the Joint Editor.
The freezer door joint center/ Joint Editor.
 Now, let's adjust the dial that controls the opening and closing of the door.
 Like the freezer door, the lower door rotates on the Y axis, so we'll be adjusting the "yRotate" dial.
 Double-click on the yRotate dial to open the "Edit Parameter Dial" dialog box.
 Set the Value to 0.00 (this is the initial value).
 Set the Min Limit to 0 (this is the minimum value of the dial).
 Set the Max Limit to 90 (this is the maximum value of the dial).
 Give the dial a new, descriptive name, such as "OpenClose".
 Click the "OK" button when done.
 Yes, there is no setting to "force limits", but we'll get to that in a few steps.
Edit parameter dial.
 Since the lower door only moves on the Y axis, we'll need to "lock-off" the movement on the X and Z axis:
 First, double-click on the xRotate dial. In the "Edit Parameter Dial" dialog box, set both the Min Limit and Max Limit to 0. Click the "OK" button when done.
 Next, double-click on the zRotate dial. Again, in the "Edit Parameter Dial" dialog box, set both the Min Limit and Max Limit to 0. Click the "OK" button when done.

The lower door is done!

12. Finalizing, part 1.

 Our figure is almost done, but for now, we'll need to save this figure back to the Library so we can do some editing of the cr2 file.
 First, go back to the "New Figures" Library and delete the existing "Fridge2" figure: click on the thumbnail and click the (Delete from Library) button. (When Poser asks, yes, you want to delete.)
 Next, switch to the Main Camera and adjust the camera angle so you get a nice view of the refrigerator.
 Optional: Go into the Materials Editor and recolor your refrigerator.
 Go to a Library to save your refrigerator into- it can be any Library, even back to the "New Figures" Library.
 Click the (Add to Library) button to add your refrigerator to the Library. Give it a descriptive name, like... "Refigerator".
 Once it's saved to the Library, you can delete the refrigerator from the scene. Press the "Del" key to delete. (When Poser asks, yes, you really want to delete it.)

Now we have a refrigerator figure with opening and closing doors. But, we're not quite finished. We need to "force limits" on the doors so users can not open them the wrong way.

12a. Finalizing, part 2: locking the dials on the doors.

 First, we’ll need to open the refrigerator cr2 file in a text editor: WordPad or NotePad will work fine.
 Go to the folder that you just saved the refrigerator into: the folder will be located under your Poser folder\ Runtime\Libraries\character
 Right-click on the cr2 file and select Open With > WordPad or Open With > NotePad. If your text editor isn't listed, select "Choose Program" and then select it from the list.
 Once the file is open, let's edit the rotation dials on the doors:
 Scroll down to the section of the code that starts with "actor freezerdoor" (or just do a search for it).
actor freezerdoor:1 <-- this is the line we're looking for
	{
	name    freezerdoor
	on
	bend 0
	dynamicsLock		0
	hidden		0
	addToMenu	1
	castsShadow		1
	includeInDepthCue		1
	parent base:1
 From here, scroll down and look for the line that says "rotateX xrot". We'll want to lock this so the user can't accidentally move the door the wrong way:
 Move down slightly until you get to the line that reads "forceLimits 0".
 Change this to "forceLimits 4". (In this case, 0 means "no" and 4 means "yes".)
 (A quick side note: when you set the "forceLimits" value to 4, you are telling Poser that the parameter dial can only be moved within the range of values, from min to max. And if the min and max values are 0, this prevents the dial from moving at all.)
 The section should look like this:
		rotateX xrot
			{
			name xrot
			initValue 0
			hidden 0
			forceLimits 4
			min 0
			max 0
			trackingScale 1
 Next, scroll down slightly and look for the line that says "rotateY yrot". We'll want to lock this also:
 Again, move down slightly until you get to the line that reads "forceLimits 0".
 Change this to "forceLimits 4".
 The section should look like this:
		rotateY yrot
			{
			name OpenClose
			initValue 0
			hidden 0
			forceLimits 4
			min 0
			max 90
			trackingScale 1
 Then, scroll down slightly and look for the line that says "rotateZ zrot". We'll want to lock this also:
 Again, move down slightly until you get to the line that reads "forceLimits 0".
 Change this to "forceLimits 4".
 The section should look like this:
		rotateZ zrot
			{
			name zrot
			initValue 0
			hidden 0
			forceLimits 4
			min 0
			max 0
			trackingScale 1
 Now for the lower door: scroll down to the section of the code that starts with "actor lowerdoor" (hit "Page Down" a few times: the code for the lowerdoor comes immediately after the code for the freezerdoor).
actor lowerdoor:1 <-- this is the line we're looking for
	{
	name    lowerdoor
	on
	bend 0
	dynamicsLock		0
	hidden		0
	addToMenu	1
	castsShadow		1
	includeInDepthCue		1
	parent base:1
 From here, scroll down and look for the line that says "rotateX xrot". Like the freezer door, we'll want to lock this so the user can't accidentally move the lower door the wrong way:
 Move down slightly until you get to the line that reads "forceLimits 0".
 Change this to "forceLimits 4".
 The section should look like this:
		rotateX xrot
			{
			name xrot
			initValue 0
			hidden 0
			forceLimits 4
			min 0
			max 0
			trackingScale 1
 Next, scroll down slightly and look for the line that says "rotateY yrot". We'll want to lock this also:
 Again, move down slightly until you get to the line that reads "forceLimits 0".
 Change this to "forceLimits 4".
 The section should look like this:
		rotateY yrot
			{
			name OpenClose
			initValue 0
			hidden 0
			forceLimits 4
			min 0
			max 90
			trackingScale 1
 Then, scroll down slightly and look for the line that says "rotateZ zrot". We'll want to lock this also:
 Again, move down slightly until you get to the line that reads "forceLimits 0".
 Change this to "forceLimits 4".
 The section should look like this:
		rotateZ zrot
			{
			name zrot
			initValue 0
			hidden 0
			forceLimits 4
			min 0
			max 0
			trackingScale 1
 Save the file and close the text editor.
 Optional: You can go back to Poser, add the refrigerator to the scene, select each of the doors, and make sure they open and close correctly.

The refrigerator is done!

At this point, you could jump over and read page 3 of the "Making a Refrigerator Prop" tutorial, which covers Texturing and Combining. Be sure to stop at Step 10, though, since the rest of that page talks about combining props... which is something we're not doing for this refrigerator tutorial.
When you're finished colorizing your refrigerator, we'll continue on to Page 3: ERC Dials.