Construction Lines request

I’d just like to reiterate my suggestion to include a means of drawing construction lines in the model viewports. This feature in SU allows one to quickly set up lines that can be snapped to when creating planar surfaces and objects. Such a line makes it easy to set up floor plans to exact dimensions and place objects precisely in any given space.

What would make this “Construction line” any different from using a regular line or using the SmartTrack feature to imply a temporary line?
How would this be used in your work-flow?

Hi John,
I made a couple vids to show the feature in use. It’s just a very simple and intuitive means to layout surface features quickly and have reliable reference points to build out from. If you look in the lower right hand corner you’ll see the dimensions entered for placing the line exactly where required. They provide snapping utility, and can be placed on any surface and later easily identified. They are also selectable and movable.

Also, the construction lines do not come through in any prints and can be completely erased with a single command or individually deleted in the standard way.

1 Like

Hi J,

Different software companies protect their IP though don’t they? As an example Apple and others sure go to great lengths to ensure quirky features are protected, so it could be a bit tricky cherry picking bits from other programs, surely? I don’t think there is any real time saved with the construction lines you created as you had to input the dims for the shapes you extruded, I’ve created a quick vid of me making something without particular dims, just visual offsets. The walls exist so extracting isocurves and offsetting them would give you clean geometry, once you’ve created a few construction lines I can imagine the model space being very difficult to navigate on a large project.

Rhino works really well with command line input, once you know a few you can type the first few letters and enter the command, once you know how it reacts you can anticipate where and when to input data.

The window was quite quick but knowing construction planes and using the wire cut command would create the hole pretty much as quick.

Sketchup has an easy interface but it lacks a great deal of detail.

First time i’ve used the screencast, I usually use quicktime but i couldn’t upload the video as it was too large : )

I think you’re making assessments of the value of the feature on the rather fundamental illustration provided. The construction guides can be applied to any surface and make locating areas to be modified easy and consistent. Simply showing how you can make shapes and quickly extrude them is not helpful. The point is the ability to establish a number of reference lines that can be used throughout the modeling process. I’ve also noted that the guides can be easily deleted when required, so there’s no problem with clutter. Yes, I understand the proprietary nature of interfaces, and the nasty attitude some companies have about relatively trivial things, but I don’t see having such a concern would preclude suggesting desired features.

FormZ also has guides and is very useful tool for architecture, and when you think about all 2d image editing programs that have guides for quick snap to, is simply a useful tool.

1 Like

I was merely highlighting the fact that construction lines are present in/on all faces we create, extracting and offsetting isocurves and creating windows using commands such as wirecut do a similar job. Horses for courses I guess, it’s often the case that we like to work within an environment we’re used to, it does look like a handy addition but there are ways to model things in a different manner in the interim. I agree with John, using smarttrack and regular lines is not really any different to what you’ve suggested, possibly adapting the way you work within Rhino might help speed up your workflow? But, there is the possibility (a very real possibility) that the way I work isn’t very efficient : )

Being able to create a model quickly and efficiently is a pertinent example, the information is already there to be had, utilising the command line, cplanes and streamlining workflow with what we have. If we both create a model with the correct dimensions in the same time… Which one of us is correct regarding the way in which we go about it?

While I’m no fan of big business I’d be miffed if I spent millions on perfecting something for a-another to copy it to be used against me in the market place. I’m not suggesting that we should hold back on ideas, ideas are great, do you we have any of our own that the team could incorporate into their software?

I think there are generally 5 different ways to access any particular command using this program. I suppose there could be as little as two or even one way to do so, however that’s ultimately not the point of creating an interface that is productive and intuitive to the range of users that would dedicate their time and effort to learn it. I’m not interested in how much faster or efficient you may be than me. Furthermore, I don’t care about what is correct or otherwise superior. I’m simply suggesting a feature that at least according to violine is not an uncommon one in other applications. Yes, you can do a similar job with generating isocurves, but so what? The isocurve on a surface is only useful for that particular surface. A construction line is independent and terribly simple to use.

I suspect that the construction line feature didn’t take anyone much time or effort to develop and implement, so while I respect the toil and genius it takes to create software, I doubt this particular issue warrants much concern. I don’t understand why you find it necessary to bag on the idea of including them.

1 Like

As John Brock already asked: What makes a construction line any different from a regular line?

The only program I personally use that has a construction line feature is Illustrator. But it shows the general workflow perfectly: in Illustrator construction lines are just normal lines the uses tags as construction lines. Once they are construction lines, they are locked in place and extend indefinitely (and change color).

So in Rhino just put any line you want on a separate layer, extend it a reasonably large amount (if you want to) and lock the layer. There you go. It’s already implemented. Now I firmly believe, this is also easily scriptable to a single command in Rhino.

Watching your screencast, you demonstrate cutting a hole in a wall. To complete the SketchUp style construction line script in Rhino, you’d just need to:
Request a temporary CPlane input (which limits the usable construction faces to planar ones instead of generally picking any isoline)
Pick a line to start with (and probably limit the valid input to straight lines)
Continue with an offset command

Comparing Rhino with, say, AutoCAD, I just love the fact, that there is no actual difference between a 2D- or 3D-curve or a construction line for that matter. I can just use whatever I draw for whatever purpose I see fit. There is no need to convert anything or live with whatever limitations a specific “type” of curve imposes.

I made a screen cast of the function simply to illustrate how it works. I did not attempt to show how it increases ease of use. That would have to be conceived by the viewer much like any other available multiple means to achieve something.

What I find tedious about your described method (as best I can understand it at this point) is the need to establish a c-plane first before working on a surface, then option select a line/edge of the plane, then select the offset tool, to establish a reference line, and then move the line to another layer and lock it so it will remain where it’s at and not interfere with selecting other objects.

In the vid, you can see that one only needs to select the tape measure tool, click on any line in any planar surface and establish a snappable guide the desired distance from it. There’s no need to change planes, tools or layers, although the guide lines can be locked and/or moved to another layer so as to turn off visibility.

That is for me a very quick way to get the task done. Maybe this feature is too trivial to warrant consideration. But I would point out again, that there is not necessarily a ‘correct’ or ‘best’ way to interface with any program per se. If that were the case, there wouldn’t be any need to provide user customization.

I’m just comparing workflows and consequences here.

If McNeel were to introduce a special construction line type, that would break the (I my eyes precious) concept that a line is a line and you can do whatever you want with it.

On the other hand, Rhino is easily extendable with scripts and plugins. The workflow is simple. I see no reason, why a script should not be able to handle it in a single command call. Like if your selected line was a surface edge, the script could automatically set the cPlane, you pick your offset and the script handles all the layer and extension stuff. Surely some of the selection stuff works differently in Rhino, but other than that, I don’t think there’s too much of a difference.

That’s encouraging. Maybe a plugin-type bit of scripting magic could make my wish come true! I’ve noodled around with some Python coding tutorials, but man, I’m getting weary of learning new things all the time, just so I can modify my old things.

smiley face.

My apologies if you thought I was trying to illustrate how much quicker I was at creating an extruded shape, that wasn’t my intention. My post was about workflow and utilising what we have that already exists within the program, different ways of working to achieve something without new additions, breaking our current way of thinking.

Good luck with your quest JKaten, if you do finish the script I’ll give it a whirl to see how I get on with it.

BR : )

Thanks Mr. cube, I appreciate your input, and as I learn the program I’ll adapt. It’s a fantastic application that makes me want to design everything. However, for the time being, I’m into architectural projects.

Hi all,

A while ago I saw the same need for a construction line command. Anyone doing any kind of large scale drafting and design documentation can immediately appreciate the usefulness of such a command.

Drop in your custom commands dev folder, restart Rhino and run the command by typing ConstructionLine.

The generated line is 20km long. I think it is necessary to adjust this based on the system tolerance you work with (?), otherwise the object snaps may fail when working at a small scale close to the construction line.

ConstructionLine_cmd.rar (441 Bytes)

Guido,
Thanks for this very much. However, I don’t know where the custom commands folder is located on my system. You are talking about the Mac version?

Hi JKayten,

I was referring to the Windows version actually!
Run the EditPythonScript command to bring up the editor.
Go File, New and choose Command in the pop up window.
In the Plugin box type an appropriate name, such as MyPlugins or whatever you like.

In the Command Name box type the name for a custom command (try TestCommand for now)
and click New.

A template script for custom Rhino commands will pop up. Close Rhino.

Now in explorer you can navigate to:
C:\Users\YOUR USER NAME\AppData\Roaming\McNeel\Rhinoceros\5.0\Plug-ins\PythonPlugins where your new folder (the name plus a long hash tag in curly brackets) will have been created to store your custom python commands.

In that folder, drop in my ConstructionLine.py script.

Open Rhino up again. Type ConstructionLine and it should autocomplete and work.

I finally managed to install your script but I’m getting no response. Do you see any problem with what I’ve set up here?

I only have 1 or 2 scripts tied to icons, like above. I find it way quicker to just right-click in Atom to run any script I have open there. Like this …

You can also run them from the Atom sidebar by right-clicking …

You do have to make sure Rhino is listening to Atom though, by running this command first …

If you don’t have Atom set up, read this thread

All python scripts that have the suffix _cmd after their name, like the ConstructionLine script above, means they are put in a special folder … It should be your name, not mine :smile:

I can’t find the page where this is explained, it was the old RhinoPython pages, where to put these scripts.

and can be run from the command line …

All regular scripts go here, my folder name is linked to the folder in my Dropbox with an alias. This is described in the post linked earlier. This way I have the same scripts at home and at my office.

Now getting into the “GetLine” not working on a Mac, any ideas @pascal, @dan on how to get this implemented on a mac?

Code:

    line = Rhino.Input.Custom.GetLine()
    line.EnableFromBothSidesOption(True)
    line.EnableFromMidPointOption(True)
    line.FixedLength = 100
    line = line.Get()
    line = line[-1]
    Rhino.RhinoDoc.ActiveDoc.Objects.AddLine(line)
    Rhino.RhinoDoc.ActiveDoc.Views.ActiveView.Redraw()

GetLine is not working on my mac either. You need an

import Rhino

statement at the top of the script, but even with that, I get the error on mac and it works on Windows. Presumably, it is a bug, or I am overlooking somerthing… meantime here’s one that uses Rhinoscript syntax:

import Rhino
import rhinoscriptsyntax as rs
pts = rs.GetLine(0)
vecDir = pts[1]-pts[0]
mid = pts[0] + (vecDir/2)
vecDir.Unitize()
vecDir = vecDir*500
p1 = mid + vecDir
vecDir.Reverse()
p2 = mid + vecDir
rs.AddLine(p1, p2)

I did not try this yet on mac - the code underlying the rs.GetLine() is the same as in the original script that shows the error, so it will be interesting to see…

-Pascal