• See this page for the history of the following data.

Editing, viewing, and correcting objects


I am trying to create case walls for ammo, gun tubes, etc. and the

way I'm doing it is by making inner and outer walls using rcc and trc

primitives, and I have figured out that I need to make a combination

of the two, then hide the primitives and draw the comb, and then do rt

to see the finished product. That's fine. But if I

translate or rotate the inner wall, for example, away from the point

of creation, I cannot seem to figure out a way to restore it to its

original point so that it perfectly lines up concentric with the outer

wall. Can this be done with the mouse, or must I use the keyboard and

editing commands?


There are reset and apply options on the Edit menu when you're

in an edit mode on a primitive. The intent is that you incrementally

apply/accept changes as you are happy with them or reject/reset them

if you are not. As for your create -> hide -> draw steps, you can

collapse those with a "B objectname" which will erase everything else

and draw 'objectname' in one step.

Matrix editing objects


Once I create a combination, is the proper way to modify the

combination via matrix edits, or is there some other way? I understand

that matrix edits really mean applying the same change to all elements

of an entity (primitives within a comb, for example), and then pushing

the common change to all elements.


Presuming you mean 3D manipulations (translation, rotation,

scaling, etc) instead of structural (adding new CSG elements), then

yes--matrix edit (aka "object edit") is the means to modify. Matrix

edit doesn't have to be on everything in a given combination, but it

is a hierarchical tree so if you apply a matrix to object A that

references objects B and C, the matrix applies to that entier

hierarchy. Whether you push the matris is a modeling design decision,

which I personally do not like performing so that editing operations

retain a useful local coordinate systems. Others have different

preferences for different reasons.

Resetting object vertex (V)


When I move an rcc or trc, I want to reset where V is, but there

seems to be no command that allows me to reset V to 0 0 0. Is there



Select translate on the Edit menu and then type:

mged> p 0 0 0

Editing general cone radii


Is there a way to modify the radius of rcc's and trc's? I can't

find a 'set R' command in the prim selection menu anywhere.


rcc's and trc's are all fundamentally a generalized cone

represented by two vectors at both ends of the cone. To change the

radius, select either the "Set A,B" or "Set C,D" menu option, and


mged> p ###

for whatever ### size you want to set it to.

Editing solid parameters A and B


When I try to set A and B at the same time, thinking if I make

them the same, the radius will be uniform, but it tends to squash

them to a single point. This leads me to believe that I am setting A

and B to the same coordinates in space, not the same length (radius).

Is this a true statement? (I tend to think of geometries in terms of

their respective dimensions but it seems like with MGED, you have to

know exactly where in space everything is, and that is not really

desirable for me most of the time.)


Sounds like the size value you're using is way too small. It

should be the absolute size using whatever units you're operating

with, just a single value (e.g., "p 1000"), not multiple values for A

and B. Doing "Set A,B" basically means "keep the base circular"

instead of ellipsoidal.

Picking combination and primary objects


I see that you can pick which combs you want to modify under the

comb editor, but the same does not apply for the prim editor. The

prim editor seems to be only or generating new prims. Is that a true



No, it's not true that it only generates new primitives. It's

just lacking a drop-down box because there are generally way too

many primitives for that to be a useful selection mechanism with any

real model and its use is often discouraged for other reasons (it's

very susceptible to human error that in ways that are difficult to

recover from--use with caution). Type the name of the primitive

you wish to edit into the 'Name:' field and hit enter. The values

should update to show that primitive.

Translating objects


When trying to translate a combination, where is the 'Z move'? I

see only 'X move', 'Y move', 'XY move'. Answer: You may have to select

the combination and use the translate or tra commands to reposition

the object.


Very good question! The naming convention used on the labels

should be clarified, but it's trivial "once you know". The X and Y

don't refer to the 3D coordinates but rather to the 2D view.. So if

you are looking at front, left, right, or rear views, then the z axis

runs up and down the graphics window vertically, so selecting the "X

Move" option will translate up and down the Z axis. Similarly, if

you're looking from a more complex/arbitrary view, doing an X Move or

Y move will perform more complex movements than just constrained to a

given coordinate axis. The labels should probably say something like

"Pan object horizontally" and "Pan object vertically" for X Move and Y

Move respectively with the XY Move meaning something like just "Pan


Copying text from the command window ('journal')


Is there a way to block-copy text from the command window, or save

it as a buffer/text file, in case you want to record the steps it

took you to do something?

I tried using the journal command and even tried to view the file

while a session was open but it was a zero-length file with none of

my session saved.


The journal command only begins recording from the moment you type

journal, and presently doesn't write out the journal entries until

you close your session. It's a limitation of the implementation.

You should also be able to copy/paste any text in the command window

using usual copy/paste methods (select region and click middle mouse

button in a text buffer in another xterm window, for example).

Fitting view to window


Is there a 'fit to window' zoom feature?


The autoview command automatically resizes geometry when it is

loaded and it's intentionally 50% the bounding of your display size

so that it's guaranteed to be fully displayed at any orientation.

You can 'zoom 2' to make it fit more tightly, and can similarly wrap

those two commands into a proc of your own. autoview can be run on-

demand and is automatically run whenever you 'e' or 'draw' something

among a variety of other commands.

Cutting a solid to make a combination


How do you use a plane to slice part of a solid to make a

combination (e.g., a plane cutting a box at an angle and just using

the resulting portion of the box)?


The recommended approach is to create an arb8 or similar box

shape that is positioned exactly how you want it and subtract or

intersect as desired. You can also use a "half" primitive, which

stands for halfspace (which is an infinite plane where half the space

is solid the other half is empty) though the performance is

non-optimal for real models.

Panning the view


Can you pan the view before you raytrace so that you can see more

of the geometry in the rt window (fb) but without having to physically

move the geometry around?


Not sure I understand this question fully, but it sounds like the

answer is "yes". You can raytrace from any azimuth/elevation as well

as from any arbitrary view whether panned or not. By default in

mged, when you run ''rt', it will invoke the raytracer with a view that

matches the geometry window's view so if you're not in an edit mode,

you can change the view to whatever you want without editing or

modifying geometry.

Translating objects away from visible axes


When you change (translate) the body away from the blue xyz axes,

does that actually change the coordinates as well, or is that only a

visual change (i.e. now your coordinates referenced to the origin are

totally different than from when you started)?


Depends whether you're in an edit mode. The blue axes you're

referring to, I presume, are the "View" axes which only refer to the

orientation of the view and which is always at the center. The green

axes are the model axes, which indicate where an object is at, and

when coupled with the white edit axes, show you how edits are being


Interrogate mged for axis changes


Is there any way to interrogate MGED and find out where your new

(translated) xyz axes are relative to the original origin if you

moved the object geometry around (i.e. new 0,0,0 =3D old x,y,z +

translation matrix)?


Yes, turn on the Faceplate option on the Misc menu.. that option

really should be set by default. Be sure to run File->Create/

Update .mgedrc so that it keeps your settings between runs of mged.

Creating a plane (2D) object


How can you create just a plane, triangle, etc. if you need one?

Do you just make a 3D primitive with zero thickness?


This one is somewhat philosophical. BRL-CAD is predominantly a

3D solid modeler so creating 2D or 1D objects is not only highly

discouraged but generally rather complicated. That said, halfspaces

work well instead of planes, arb5's instead of triangles, and spheres

instead of points. Alternatively, in the 2D realm, you can use the

sketch primitive and the sketcher to make purely 2D objects, though

the use of those are generally limited to extrusions. There is a way

to manually create triangles and meshes, but it's non-trivial and

similarly limited in use until you form a closed 3D shape.

Creating a non-smooth surface


How do you make a non-smooth surface such as a corrugated circular

surface surrounding a cylinder?


There are two methods to achieve that, both with their tradeoffs.

The CSG approach would have you create a cylindrical pattern that

matches your corrugation pattern. For example, you can make something

like corrugated duct tubes by subtracting a linearly translated

pattern of torii from a cylinder--create a similar smaller version

to hollow out the middle. Alternatively, you could use a 2D extrusion

approach for something as simple as a cylinder where you model the

shape in 2D using a sketch primitive and combine that with an

extrude operation, and you'd have it. You can see an example of the

CSG approach using the pattern tool at http://ftp.brlcad.org/tmp/gear/

where I create a simple 6-tooth gear using a relatively simple tooth


Constraining angles of rotated components


How do you set the angle that an articulated rotating component

may sit at (e.g., a hinged part or arm)? Is such a thing possible?


It is possible, but frankly not a strong point of the package.

You'd use a joint/constraint system and have it solve for various

angles. It's quite difficult to use frankly, and generally easier to

perform the rotation using one of several rotation commands (see the

MGED Quick Reference cheat sheet)--at least one of those is dedicated

to rotation via angles. You cannot set the angle as an automatically

resolved constraint at the moment.

Repeating construction of an object (pattern editing)


If you wanted to distribute a common structure on the inside of a

cylinder at a fixed spacing, how would you go about doing something

like that (e.g., a structural stiffener)?


If I understand the question correctly, the pattern tool should

do the trick (on the Tools menu). Probably a cylindrical pattern

with some periodic/fixed spacing. Basically the same as the gear I

mentioned above, but with a different base object being duplicated.

Batching or scripting mged commands


Can you take a series of MGED commands to build a geometry and

batch-file it and just have MGED run the batch file in order to

autocreate geometries?


Yes! Create your text file and run mged using the -c option for

command/classic mode. You can do something like

$ mged -c file.g < my_transcript.txt

or here now documents like:

$ mged -c file.g <my_log.txt 2>&1 `cat my_transcript.txt` EOF

and more. You can also use the -c option to run any individual mged

command without it bringing up the entire mged environment, e.g.,

$ mged -c myfile.g tops

Lighting and the mater command


I have used the mater command to make a combination white but it

shows up gray in rt. How do I fix that? Is that a lighting property?

What about the fact that the wireframe in the regular MGED graphics

window is always red?


That is a lighting property and is dependent upon the lights in

the scene. If you define no lighting sources, rt creates default

lights for you. First, make sure you really are looking at what you

think you're seeing by setting the object's color to green or blue

instead of white. If you don't, then you're doing something else

wrong. The mater command is supposed to be used on regions, which

gets into a whole hierarchy discussion that is far beyond this forum

and better explained over the span of the tutorial series. The fact

that you set a color on a non-region is probably why the wireframe is

still red.

Translating and rotating objects


When I shift and rotate geometry around so that it fits into the

viewing area (a) does that actually reposition the geometry to a new

place, or is that just visual; (b) is there a 'reset' or 'undo'

command to reset the geometry to its original position; and (c) is there a way

to precisely re-zero the geometry?

A20: This sounds a lot like question 13 and the answer depends on whether you're in an edit mode or not. If the edit menu lists a bunch of editing options, along with options to Accept/Apply/Reset/Reject, then you are in an edit mode and changes to the geometry window may be actual edits (it depends what buttons you press--see the cheat sheet on the main website documents section). If you don't see Accept/Apply/Reset/Reject options then nothing you do in the graphics window will edit geometry, you're only affecting the view orientation. If you do see then, then those aforementioned Edit menu options of Reset and Reject are there to help. To precisely select a view, either use the View menu or type one of the key-bindings in the graphics window (e.g., 'f' for front, 't' for top, '3' for 35/25, '0' to stop it from spinning if you hit xyzXYZ).