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

rotated clamps on pipe support

7 REPLIES 7
Reply
Message 1 of 8
Lucas75
1537 Views, 7 Replies

rotated clamps on pipe support

A lot of our customers use rotated pipeclamps on their pipesupports as shown below,

 

Now we create custom supports if necessary .

 

In the standard supports there is no option to change the angle of the support.

 

Is it possible to modify the script that creates the support and add a "angle" parameter?

 

Has anyone of you done this already?

 

rotated pipeclamps.png

 

 

7 REPLIES 7
Message 2 of 8
TomislavGolubovic
in reply to: Lucas75

I could only suggest adding a custom field to the Pipe Supports class, which is called "PS_Angle" or something, and then get the designer to populate this field.

 

Otherwise you might be looking at custom supports/scripts to create the supports.



Tomislav Golubovic
Technical Specialist - Plant and Infrastructure
Autodesk Australia / New Zealand
Autodesk, Inc.
Autodesk ANZ YouTube Channel
Message 3 of 8
Lucas75
in reply to: TomislavGolubovic

This is not the solution we are looking for, worldwide it is a common used type of support and you do not want something textual on the drawing when it is not shown.

 

Also (some) customers want it clearly on the support drawings.

 

 

No we have to explain to customers we use the standard supports of Plant3D and the clamps cannot be rotated.. how bad is that?

 

How much work is it for a experienced programmer to re write the script and ad a parameter to the standard supports? 

 

I guess a lot (half) of the plant users benefit by it.

Message 4 of 8
TomislavGolubovic
in reply to: Lucas75

The out of the box supports don't look to have a rotated angle parameter on them, so my only other suggestion would be to make a custom support block and convert it to a pipe support.



Tomislav Golubovic
Technical Specialist - Plant and Infrastructure
Autodesk Australia / New Zealand
Autodesk, Inc.
Autodesk ANZ YouTube Channel
Message 5 of 8
Lucas75
in reply to: TomislavGolubovic

Yes, we know we can use custom supports, but that is a workaround so when a line changes size and are NOT dimensioned to the center (mostly we have a measurement to B.O.P.) you need to recalculate the height.

 

THis is also a request to the developers, can the measurement/parameter of the height of the support be tot the B.O.P??

 

 

Message 6 of 8
shallmark
in reply to: Lucas75

I had to do the same thing.  I decompiled the PYC file in variants.zip and then opened the PY code in a Python editor.  I was able to find the syntax where that angle was being set and rotated it 45.  What I am telling you is much easier said than done.  It took me a while to understand the process but Python is just a scripting language and once you see how it is written, you can easily update it, recompile it and place it back in variants.zip.  For some starter material, see my blog (My Plant 3D Notes) http://hallmarkblogautocadpid.blogspot.com/2013/03/python-scripting-oh-how-fun-this-is-now.html

 

Also the CLAMP is CSGC002 when you start looking for it in VARIANTS.ZIP

 

Keep in mind, if you change the CSGC002, it will change everywhere the clamp is used.  Not just on a shoe but on hangers also.  If you don't want the hangers to have angled clamps, you need to modify the shoe PYC file and in that file, it calling CSGC002.  In other words, the Shoe Script is calling the Clamp Script so edit the Shoe script to rotate the CSGC002 clamp.

_________________________
Scott Hallmark

Autodesk© Inventor© 2013 Certified Professional
My Plant 3D Notes
ActsOneEight
Message 7 of 8
Lucas75
in reply to: shallmark

Hi Scott,

 

do you mean the red higlighted "(90)" ??

 

def CSGC002(s, D = 116.0, L = 30.0, W = 4.0, K = 0.0, ID = 'CSGC002', **kw):
R1 = (D / 2.0)
R2 = (R1 + W)
if (K <= 0.0):
K = (D + (L * 2.0))
o1 = CYLINDER(s, R=R2, H=L, O=0.0).translate((0,
0,
-(L / 2.0)))
o2 = BOX(s, L=K, W=L, H=(W * 3.0))
o3 = CYLINDER(s, R=R1, H=L, O=0.0).translate((0,
0,
-(L / 2.0)))
o4 = BOX(s, L=K, W=L, H=W)
o1.uniteWith(o2)
o2.erase()
o3.uniteWith(o4)
o4.erase()
o1.subtractFrom(o3)
o3.erase()
o1.rotateY(90)
s.setPoint((0, 0, 0), (-1, 0, 0))

Message 8 of 8
shallmark
in reply to: Lucas75

so you are wanting to modify every clamp?  Even the ones on hangers?  If you modify that file, everywhere CSGC002 is called into other scripts, it will be rotated.

 

my suggestion is to edit the ones that call CSGC002.  Like CSGB001, CSGB002, CSGB003, CSGB008, and maybe CSGB009, CSGB010 and CSGB011 if those are necessary.  After the item is called, you add one rotate command after it.  Here in CSGB001, I added 2 rotate commands at 30 degrees because there are 2 clamps being inserted or called from CSGC002.

-------------------------------

def CSGB001(s, D=116.0, L=30.0, W=4.0, K=0.0, SL=180.0, SW=100.0, ST=8.0, SH=150.0, E=0.0, HL=0.0, HW=0.0, HH=0.0, ID="CSGB001", **kw):
 #print 'CSGB001('+repr(s)+', D='+repr(D)+', L='+repr(L)+', W='+repr(W)+', K='+repr(K)+', SL='+repr(SL)+', SW='+repr(SW)+', ST='+repr(ST)+', SH='+repr(SH)+', E='+repr(E)+', HL='+repr(HL)+', HW='+repr(HW)+', HH='+repr(HH)+', ID="CSGB001", **kw)'
 R1=D/2.0
 HS=SH-R1
 # create main objects
 #  create T
 o1=BOX(s, L=ST, W=SL, H=HS).translate(((HS/2.0)+R1, 0, 0))
 o2=BOX(s, L=SW, W=SL, H=ST).translate((SH-(ST/2.0), 0, 0))
 # create unions
 o1.uniteWith(o2)
 o2.erase()
 if HL>0.0 and HW>0.0:
  if HH<=0.0:
   HH=ST*2.0
  o3=BOX(s, L=HW, W=HL, H=HH).translate((SH-(HH/2.0), 0, 0))
  o1.uniteWith(o3)
  o3.erase()
 if L > 0.0 and W > 0.0:
  LS=SL-L-(E*2.0)
  o4=CSGC002(s, D=D, L=L, W=W, K=K).rotateY(-90).translate((0, 0, 0-(LS/2.0)))
  o4.rotateZ(30)
  o1.uniteWith(o4)
  o4.erase()
  o5=CSGC002(s, D=D, L=L, W=W, K=K).rotateY(-90).translate((0, 0, LS/2.0))
  o5.rotateZ(30)
  o1.uniteWith(o5)
  o5.erase()
 o1.rotateY(90)
 # set connection
 s.setPoint((0.0, 0.0, 0.0), (-1.0, 0.0, 0.0))
 s.setLinearDimension("SH", (0,0,0), (0,0,-SH))
# s.setPoint((0.0, 0.0, -(LS/2.0)), (0.0, 0.0,  1.0))
# s.setPoint((0.0, 0.0,  (LS/2.0)), (0.0, 0.0, -1.0))
# s.setPoint((0.0, 0.0,  (LS/2.0)), (0.0, 0.0,  1.0))
 #print 'CSGB001().END'

_________________________
Scott Hallmark

Autodesk© Inventor© 2013 Certified Professional
My Plant 3D Notes
ActsOneEight

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

Post to forums  

Autodesk Design & Make Report

”Boost