Ad

Monday, January 27, 2014

Profile View Bands

There appears to be a bug in adding a profile view band set to a profile view through the API in Civil 3D 2013 & 2014. The error is that the profiles, pipe network, and other information isn’t shown properly. In addition all of the settings don’t make sense. Here is some code that corrects the situation below. There is lots of code not shown, along with methods that are called that are included below. But the main concept is below.

ProfileViewBandSetStyle bandSet = profileBandSetId.GetObject(OpenMode.ForRead) as ProfileViewBandSetStyle;
ProfileViewBandItemCollection bottomBandItems = profileView.Bands.GetBottomBandItems();
ProfileViewBandItemCollection topBandItems = profileView.Bands.GetTopBandItems();

bottomBandItems.RemoveAll();
topBandItems.RemoveAll();

bottomBandItems = new ProfileViewBandItemCollection(profileView.ObjectId, Autodesk.Civil.BandLocationType.Bottom);
topBandItems = new ProfileViewBandItemCollection(profileView.ObjectId, Autodesk.Civil.BandLocationType.Top);

var bottomBandSetItems = bandSet.GetBottomBandSetItems();

foreach (var bandItem in bandSet.GetBottomBandSetItems())
{
bottomBandItems.Add(bandItem.BandStyleId);
}

int i = 0;
foreach (var bandItm in bottomBandItems)
{
bandItm.Gap = bottomBandSetItems[i].Gap;
bandItm.LabelAtEndStation = bottomBandSetItems[i].LabelAtEndStation;
bandItm.LabelAtStartStation = bottomBandSetItems[i].LabelAtStartStation;
if (bandItm.BandType != Autodesk.Civil.BandType.PipeNetwork)
{
bandItm.MajorInterval = bottomBandSetItems[i].MajorInterval == 0 ? 100 : bottomBandSetItems[i].MajorInterval;
bandItm.MinorInterval = bottomBandSetItems[i].MinorInterval == 0 ? 25 : bottomBandSetItems[i].MinorInterval;
bandItm.SetHorizontalGeometryPointsOptions(bottomBandSetItems[i].GetHorizontalGeometryPointsOptions());
bandItm.SetVerticalGeometryPointsOptions(bottomBandSetItems[i].GetVerticalGeometryPointsOptions());
bandItm.StaggerLabel = bottomBandSetItems[i].StaggerLabel;
if (bandItm.StaggerLabel != StaggerLabelType.None)
{
bandItm.StaggerLineHeight = bottomBandSetItems[i].StaggerLineHeight;
}
}
bandItm.ShowLabels = bottomBandSetItems[i].ShowLabels;
bandItm.Weeding = bottomBandSetItems[i].Weeding;
i += 1;
}

var topBandSetItems = bandSet.GetTopBandSetItems();

foreach (var bandItem in topBandSetItems)
{
topBandItems.Add(bandItem.BandStyleId);
}

i = 0;
foreach (var bandItm in topBandItems)
{
bandItm.Gap = topBandSetItems[i].Gap;
bandItm.LabelAtEndStation = topBandSetItems[i].LabelAtEndStation;
bandItm.LabelAtStartStation = topBandSetItems[i].LabelAtStartStation;
if (bandItm.BandType != Autodesk.Civil.BandType.PipeNetwork)
{
bandItm.MajorInterval = topBandSetItems[i].MajorInterval == 0 ? 100 : bottomBandSetItems[i].MajorInterval;
bandItm.MinorInterval = topBandSetItems[i].MinorInterval == 0 ? 25 : bottomBandSetItems[i].MinorInterval;
bandItm.SetHorizontalGeometryPointsOptions(topBandSetItems[i].GetHorizontalGeometryPointsOptions());
bandItm.SetVerticalGeometryPointsOptions(topBandSetItems[i].GetVerticalGeometryPointsOptions());
bandItm.StaggerLabel = topBandSetItems[i].StaggerLabel;
if (bandItm.StaggerLabel != StaggerLabelType.None)
{
bandItm.StaggerLineHeight = topBandSetItems[i].StaggerLineHeight;
}
}
bandItm.ShowLabels = topBandSetItems[i].ShowLabels;
bandItm.Weeding = topBandSetItems[i].Weeding;
i += 1;
}

UpdateBandProfileAndDataSource(PipeNetworkObjId, prof, bottomBandItems);
UpdateBandProfileAndDataSource(PipeNetworkObjId, prof, topBandItems);

profileView.Bands.SetBottomBandItems(bottomBandItems);
profileView.Bands.SetTopBandItems(topBandItems);

MakerBot 3D Printers

Dell recently announced they are adding MakerBot 3D printers and scanners to their stable of products offered for sale. At first I was a bit clueless on why this would be worthy of a press release, after all I can go purchase the scanners and printers directly from MakerBot. Then I thought about it and remembered that small, medium, and large businesses may purchase equipment different them myself (a sole proprietor).

The benefit is the ability to use your purchasing power to purchase a complete end-to-end solution for prototyping for less then complete list prices. Why not get a bit of a discount and purchase the entire system from one vendor? The MakerBot products are expected to be available from Dell’s website on February 20 here in the United States (www.dell.com/3Dprinting).

  • MakerBot® Replicator® 2 Desktop 3D Printer – sets the standard in desktop 3D printing, allowing users to bring their projects to life with professional-quality, 100-micron layer resolution and a 410-cubic-inch build volume priced at $2,199.
  • MakerBot® Replicator® 2X Experimental 3D Printer – a full-featured desktop 3D printer designed for experts who want to explore the frontiers of 3D printing. It features experimental dual extrusion that is optimized for printing with MakerBot ABS Filament and is available for $2,799.
  • MakerBot® Replicator® Mini Compact 3D Printer – an easy-to-use, no-compromise compact 3D printer for everyone, from beginners to professionals offering fast and easy one-touch 3D printing will be available in the spring at an anticipated price of $1,375.
  • MakerBot® Replicator® Desktop 3D Printer – fifth generation MakerBot technology that provides outstanding speed, reliability, quality, and connectivity for easy-to-use, reliable desktop 3D printing. The MakerBot Replicator 3D Printer provides a large build volume and fast print times to accelerate rapid prototyping and model making.  Available for pre-orders now and priced at $2,899.
  • MakerBot® Replicator® Z18 3D Printer – offers massive build volume and the best price to performance ratio in its category; available in the spring of 2014 for an anticipated price of $6,499.
  • MakerBot® Digitizer™ Desktop 3D Scanner – the fast and easy way for anyone to create 3D models to modify, improve, share, and 3D print. The scanner is optimized for use MakerBot Replicator Desktop 3D Printers and MakerBot Thingiverse and is available at the price of $949.

Thursday, January 23, 2014

XML Reporting–Curve Lengths

There appears to be some activity on the XML Reporting post of days gone past. One question appears to be to want a curve length. To do this enter in {curveLengthFoot}, {curveLengthMeter}, or {curveLengthUSFoot}. Curve rotation is {curveRotation}.

The values need to be changed in the GeneralLegalPhrasings.xml file. The appropriate location maybe found in the above linked post.

Wednesday, January 22, 2014

Node.js Tools for Visual Studio

Microsoft has recently introduced Node.js tools for Visual Studio 2012 and 2013. The tools make Visual Studio into an IDE for Node.js. Here is a link to additional information: http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx

When installing the tools you may get an error indicating an Object Reference not set to instance of an object. I found to fix this issue was simple, just update to Version 4 of Visual Studio 2012. I didn’t see any thing on line that resolved the issue, but figured that an out of date program may be the cause. Luckily it was.

Monday, January 06, 2014

HP Large Format Printing

This year at Autodesk University HP highlighted (among other products) the new HP Designjet T2500 eMultifunction Printer. designjetT2500_frontThe printer combines printing, scanning, and copying into one device. The printer size is approximately 4.5’ wide by 3’ deep and approximately 3.5’ high. HP is directing this compact model towards the AEC, CAD, and GIS professionals. I’ve come to learn to ask what problem are you solving with your product? One problem HP is solving with this printer is the working with others in remote offices, on a construction site, or on the go.

The scanning portion of the device provides a way to communicate redlines from the dinosaurs in your office. This way they may conveniently take out their red marker and make suggestions to how the information should be related to others. The paper drawings, after scanning, will provide a digital copy for others to consume. Whether it’s printing at a remote location or viewing on the screen. This also provides a way for redlines from other sources to be turned into digital copies.

With the HP Designjet ePrint & Share web service it makes it a breeze to T2500_Standard_Left_01share with others. One can view, access, and print from remote places using a computer, web browser, or application. This makes it easy to skip out of the office early and print to the printer making it seem like you stayed the whole day. Another benefit is being able to access FTP sites directly from the printer. This enables printing directly from the printer or the web service. No need to download the files and then print them out, the printer will do it for you.

Products have to have ideas in order to be put into action. For the printer HP went directly to the users of their large format printers to come up with 149616880ideas for the printer. One idea, already mentioned, is the small size of the printer. Another idea is including a small workspace to layout the plans on so the printer may be turned into a water cooler location to discuss the products. No need to go back to a conference room or back to the desk, the plans may be discussed right there.

I heard a joke about the cost of print jet ink; it wasn’t funny so I won’t repeat it here and with this printer not totally applicable to the printer. Why you may ask? Well this printer uses up to 50% less ink then other printers printing out the same images. While I’m sure the ink is still expensive relative to the volume, it uses the ink economically.

Another feature the security conscious will benefit from is the optional ability to include security disk arrays. The printer allows for encrypted hard drives. The security conscious includes military, oil & gas, and other people who don’t want you to know what they are printing.

Wednesday, January 01, 2014

Subassembly Composer–Get Marked Point

I recently had some issues with the Get Marked POint in Subassembly Composer. I couldn’t get it to work. The simple fix is to make sure the Marked Point is in ALL CAPS, otherwise it fails to find the marked point in Civil 3D. So use BLAH for example and not bLaH.

LinkWithin

Blog Widget by LinkWithin

Ad