Community
Civil 3D Forum
Welcome to Autodesk’s Civil 3D Forums. Share your knowledge, ask questions, and explore popular AutoCAD Civil 3D topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Subassembly Composer and Cant

33 REPLIES 33
Reply
Message 1 of 34
BrianHailey
2828 Views, 33 Replies

Subassembly Composer and Cant

So, I spent all day yesterday with a client showing them how to create custom rail subassemblies in Subassembly Composer (SC). Most things worked but, there was no way for me to use the value of the cant within the subassembly. For example, if I apply a RightRailDeltaElevation, this value was ignored. If I need to move a point up the same value as the RightRailDeltaElevation, I should be able to use the Cant class to do this. Putting in Cant.RightRailDeltaElevation for the Delta Y of the point returned a value of 0. I've created a video showing the problem I'm having. If anyone wants to takle this, I would appreciate it!

 

 

Brian J. Hailey, P.E.



GEI Consultants
My Civil 3D Blog

33 REPLIES 33
Message 21 of 34
nachomvitores
in reply to: doni49


@doni49 wrote:
That sounds like your subscription to the software. There is also a
separate subscription for telephone and/or email tech support.

Yeah that's exactly my case. Right now we are dealing with our reseller to subscribe a tech support, but it is good to know that there is another option, a direct alternative involving autodesk.

 

Thank you very much for the information.

 

Regards,

Nacho.
Message 22 of 34
lazicr
in reply to: AKoerner

Good one, Adam! Hope the sales are going good! 😉
Message 23 of 34
lazicr
in reply to: BrianHailey

The Autodesk silence on this one is DEAFENING!!!

Message 24 of 34
lazicr
in reply to: lazicr

Maybe this can help a little (except, there is no option to PIVOT AROUND INSIDE RAIL!!!)

 

https://knowledge.autodesk.com/support/autocad-civil-3d/learn-explore/caas/CloudHelp/cloudhelp/2016/...

 

Best,

Rad

Message 25 of 34
Anonymous
in reply to: BrianHailey

Is there any solution for this problem??

Message 26 of 34
J_Koedijk
in reply to: Anonymous

I have been struggling with this problem for quite a while now. And seeing Adam's solution as too expensive, I could only think of a crude workaround. 

 

First build a striped down rail assembly that works with the Cant function while working with ApplyAOR. You only need the points for top rail. 

Use these 2 points to create 3D polylines in your Civil drawing. 

 

Then build a new rail assembly that uses target elevation parameters for the height of the rails. These target parameters need to be linked to the 3D polylines. 

 

 

I hope AutoDesk fixes this Cant function. Because this workaround requires a lot of (in my eyes) unnecessary work.

 

 

ps. This workaround might also be a solution for the problem I am having with trying to properly show multiple non parallel alignments in a section view. By using the target offset parameters to select the rails of a secondary alignment, and using nominal width divided by input width. But this will still take a lot of work on my assembly. I am not sure I will want to create such a big assembly. 

 

 

Message 27 of 34
nachomvitores
in reply to: J_Koedijk

Yes I really think that that might work. It is something that I've been thinking about lately but I must say that I haven't tested it yet. It involves the creation of two corridors, the first one only for the 3D polylines, as you have said.
Regarding to the second part of your post, if I have understood it well, I think it's much more complicated. I can say that I've experienced some problems like yours, and solved them by checking every link included in a shape, there can't be any of length=0. I've concluded that it is a problem that doesn't appear when the corridor sectioned is based in the same alignment, but for  other corridors it does.
Thank you very much for your ideas!!!

Nacho.
Message 28 of 34
saluyot
in reply to: BrianHailey

Hi, I have a same problem with this. Any solution yet?

Message 29 of 34
J_Koedijk
in reply to: saluyot

Hi Saluyot, 

 

As far as I know this is still not fixed. I havent tried the 2018 composer yet though. 

 

I have tested my workaround a bit more and came to a few things to take note of. 


@J_Koedijk wrote:

First build a striped down rail assembly that works with the Cant function while working with ApplyAOR. You only need the points for top rail. 

Use these 2 points to create 3D polylines in your Civil drawing. 

 

Then build a new rail assembly that uses target elevation parameters for the height of the rails. These target parameters need to be linked to the 3D polylines. 

 

- First I suggested to use 3D polylines for the top rails, but feature lines would be a bit better because you can create a dynamic link to the "Cant corridor". Which means if you would still want to change your alignement your corridor will change with the change. 

 

- Secondly using targets parameters will make your corridor exponentially heavier to calculate.  So try not to use to many. I made a assembly which makes use of the right and left rail of a secondary track, which gives an additional 2 elevation and 2 offset targets. Much heavy, so sad. 

 

- Also to consider is when you use a target parameter the frequentie of your corridor is reset every time your target has a new Pi-point (direction). So the frequentie of your "Top Rail 3D polylines/ featurelines" are the minimum frequentie of your rail corridor.

 

Message 30 of 34
saluyot
in reply to: J_Koedijk

thanks J_Koedijk,

 

I will try to work on that,

 

I have also found out that, even I create a separate subassembly  in SAC and combine it in assembly with Railway Subassembly (with Cant/superE) targets such as markpoint, offsets that set in SAC is not working.

 

This Railway options in Civil3d/SAC needs to improve hehehe, just wishing...  anyway I found some work around also using build in generic subassembly since they are the only thing can work on the subassembly created on SAC.

Message 31 of 34
wojtek456
in reply to: BrianHailey

Hi everyone,
For a long time, I was looking on this forum to check if someone found a solution to obtain values from Cant class. Two years ago I created my own subassemblies dedicated to railroads on Autocad Civil 2014 and there was no problem with using Cant class to get cant values from AC3D2014 or AC3D2013. My subassemblies do not use ApplyAOR function, only requires the cant value(cant.LeftRailDeltaElevation - that was fine in AC3D2014 but not from AC3D2015+). After reading the J_Koedijk post, I got the idea how to solve the problem with Cant class. I can obtain the value of cant from poly 3D. It's very simple and very fast. Only I had to do was add new elevation target parameter and use Elevation function from target class to get the cant value(targerName.Elevation).

 

I attached some screenshots and a brief tutorial on how to achieve full functionality of railroad subassemblies:


1. In Subassembly composer  I use if statement to check which rail will be higher

2. Create 3D Poly and set Z coordinate value - cant value to subassembly

3. Add poly 3d to corridor properties

 

I hope it will help someone 😉

Message 32 of 34
wojtek456
in reply to: BrianHailey

Hi everyone,
For a long time, I was looking on this forum to check if someone found a solution to obtain values from Cant class. Two years ago I created my own subassemblies dedicated to railroads on Autocad Civil 2014 and there was no problem with using Cant class to get cant values from AC3D2014 or AC3D2013. My subassemblies do not use ApplyAOR function, only requires the cant value(cant.LeftRailDeltaElevation - that was fine in AC3D2014 but not from AC3D2015+). After reading the J_Koedijk post, I got the idea how to solve the problem with Cant class. I can obtain the value of cant from poly 3D. It's very simple and very fast. Only I had to do was add new elevation target parameter and use Elevation function from target class to get the cant value(targerName.Elevation).

 

I attached some screenshots and a brief tutorial on how to achieve full functionality of railroad subassemblies:


1. In Subassembly composer  I use if statement to check which rail will be higher

2. Create 3D Poly and set Z coordinate value - cant value to subassembly

3. Add poly 3d to corridor properties

 

I hope it will help someone 😉

Message 33 of 34
tangersn
in reply to: BrianHailey

All, Would like to confirm whether the issues have been addressed in the new versions of 2021? I still found some issues about the CANT in 2021! Thx.

Message 34 of 34

I've seen that sometimes Subassemblies behave correctly when used in a corridor but this behavior isn't visible in SAC.  So I played around a bit and it works. Using SAC & Civil 3D 2022 here.

 

What might be confusing is that in SAC there isn't option to use inside rail as pivot point. It's one of: LeftRail, CenterLine, RightRail. The trick is these settings in SAC are Preview Values only and doesn't seem to matter in actual corridor once SA is used. The pivot in the corridor is always inside rail, regardless I had set it as Centerline in SAC.

 

As other approach I also managed to create working SA without AOR applied to the link and completely without touching anything Cant related in SAC. Y offsets for Left and Right rails are:

IF(Cant.IsDefined, Cant.LeftRailDeltaElevation, 0)

IF(Cant.IsDefined, Cant.RightRailDeltaElevation, 0)

If I want to see how my SA would behave within SAC if Cant is applied I temporarily change 0 to 0.1 in one of expressions above. I attach sample SAs I created. There is rectangle only but I believe it's sufficient for testing the concept.

 

HTH

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Rail Community


Autodesk Design & Make Report