stretch the polyline for TAL for Wall

stretch the polyline for TAL for Wall

skchui6159
Advocate Advocate
1,076 Views
13 Replies
Message 1 of 14

stretch the polyline for TAL for Wall

skchui6159
Advocate
Advocate

I am looking for the polyline/line stretch for tensile Anchorage length(TAL).

 

skchui6159_3-1722585540846.png

 

 

Can I enter the TAL (say 500), the select steels will be stretch to correct length.

The length of steel for TAL is equal to length between the end of slab and steel end.

Anybody help?

0 Likes
Accepted solutions (3)
1,077 Views
13 Replies
Replies (13)
Message 2 of 14

Kent1Cooper
Consultant
Consultant
Accepted solution

If a reinforcing bar's linework is a Polyline, and if you can Break it without any gap at the edge of the slab, then you can use LENGTHEN with the Total option, specify the length you want, and pick the free end.  Join it back together afterward if you need it in one piece.

Kent Cooper, AIA
0 Likes
Message 3 of 14

skchui6159
Advocate
Advocate

Lengthen is helpful. Thank you. I also want to ask that any lisp can break the line automatic to 2 polyline after the insection point (end span of slab) and then calculate the length. Final, Lengthen the polyline.

0 Likes
Message 4 of 14

Kent1Cooper
Consultant
Consultant
Accepted solution

@skchui6159 wrote:

... to ask that any lisp can ....


Something like that could probably be written, but I don't think it would save you enough steps to be worth it.  You would still need to select the reinforcing and the wall line and specify the TAL.  It's barely more work to just use BREAK [there's an icon in the ribbon to Break at a single point] and LENGTHEN.  Do you have in mind exactly what steps you would expect to take after starting such a command?  Consider that in comparison with the steps using the ordinary commands.

Kent Cooper, AIA
0 Likes
Message 5 of 14

skchui6159
Advocate
Advocate

Good idea. Very Helpful and thank you very much ! I am try to using "Break" Command to the line. It is work!!! Then lengthen the line is also work. Then I can try to write the lisp thank you!😁

0 Likes
Message 6 of 14

Kent1Cooper
Consultant
Consultant

@skchui6159 wrote:

.... Then I can try to write the lisp thank you!😁


My guess is that the most complicated part of it will be the determination of where to have a Lengthen command "pick" to lengthen or shorten the correct end of the TAL part.  It will be affected by the direction in which the Polyline was drawn, which I assume you cannot assume to be the same in all cases.

Kent Cooper, AIA
0 Likes
Message 7 of 14

Sea-Haven
Mentor
Mentor

If the reo stops at edge of slab 4 questions, tal. Length, offset, reo dia, up down. The radius is a function of bar dia.

 

Sent on phone no Cad. Simple task.

0 Likes
Message 8 of 14

komondormrex
Mentor
Mentor
Accepted solution

check the code below

;*************************************************************************************************************************************

(defun 2c_points (cnates_list / point_list)
  	(if cnates_list (setq point_list (cons (list (car cnates_list) (cadr cnates_list))
					       				   (2c_points (cddr cnates_list))
									 )
					)
	)
  	point_list
)

;*************************************************************************************************************************************

(defun c:set_tal (/ steel_sset slab_edge tal steel_data pick_steel_point pick_steel_point_param slab_edge_point slab_edge_point_param
					steel_point_list edge_distance tall_compensation start_steel_point end_steel_point 
				 )
	(if (null tal_saved) (setq tal_saved 500))
	(prompt "\nPick sequentially steel reinforcements...")
	(if (setq steel_sset (ssget '((0 . "lwpolyline"))))
			(progn
				(setq slab_edge (car (entsel "\nPick edge of slab: ")))
				(if (null (setq tal (getreal (strcat "\nEnter tal value <" (rtos tal_saved) ">: " ))))
					(setq tal tal_saved)
					(setq tal_saved tal)
				)
				(foreach steel_data (ssnamex steel_sset)
					(setq pick_steel_point (vlax-curve-getclosestpointto (setq steel (cadr steel_data)) (cadr (last steel_data)))
						  pick_steel_point_param (vlax-curve-getparamatpoint steel pick_steel_point) 
						  slab_edge_point (vlax-invoke (vlax-ename->vla-object slab_edge) 
													   'intersectwith 
													   (vlax-ename->vla-object steel) 
													   acextendnone
										  )
						  slab_edge_point_param (vlax-curve-getparamatpoint steel slab_edge_point) 
						  steel_point_list (2c_points (vlax-get (vlax-ename->vla-object steel) 'coordinates)) 
					)
					(if (< pick_steel_point_param slab_edge_point_param)
						(setq edge_distance (vlax-curve-getdistatpoint steel slab_edge_point)
							  tall_compensation (- tal edge_distance) 
							  start_steel_point (polar (vlax-curve-getpointatparam steel 0) 
													   (angle (vlax-curve-getpointatparam steel 1) (vlax-curve-getpointatparam steel 0))
													   tall_compensation
												)

							  steel_point_list (cons (mapcar '+ '(0 0) start_steel_point) (cdr steel_point_list))
						)
						(setq edge_distance (- (vlax-curve-getdistatparam steel (setq end_param (fix (vlax-curve-getendparam steel)))) 
											   (vlax-curve-getdistatpoint steel slab_edge_point)
											)
							  tall_compensation (- tal edge_distance) 
							  end_steel_point (polar (vlax-curve-getpointatparam steel end_param)
													 (angle (vlax-curve-getpointatparam steel (1- end_param)) 
													 		(vlax-curve-getpointatparam steel end_param)
													 )
													 tall_compensation
											  )

							  steel_point_list (reverse (cons (mapcar '+ '(0 0 ) end_steel_point) (cdr (reverse steel_point_list))))
						)

					)
					(vlax-put (vlax-ename->vla-object steel) 'coordinates (apply 'append steel_point_list))  
				)
			)
	)
	(princ)
)

;*************************************************************************************************************************************

 

Message 9 of 14

Sea-Haven
Mentor
Mentor

Looking at this task again I did something similar where you pick edges and enter offset and it draws the correct shape. This may be a better approach, rather than selecting an existing rebar. 

 

@komondormrex is the radius taken into account ? For steel reinforcement its a num x bar dia as a general rule. Can you do a video not sure what to be picking when asked, tried your code.

 

SeaHaven_0-1722910754915.png

Will have a think about it. 

 

@skchui6159 Just a comment there is a lot of draw concrete reo-bar code out there, so will we see next and next as more shapes are asked for ? Maybe do a google this shape may be part of a package that already exists.

SeaHaven_1-1722911051243.png

 

Message 10 of 14

komondormrex
Mentor
Mentor

@Sea-Haven 

as you wish. it needs an auxiliary graphics, namely the slab edge. 

ST.gif

 

Message 11 of 14

skchui6159
Advocate
Advocate

You done a great works! This Lisp help me a lot!

0 Likes
Message 12 of 14

skchui6159
Advocate
Advocate

Thank you. I will try learn the existing lisp by google.

0 Likes
Message 13 of 14

skchui6159
Advocate
Advocate

Why can you insert the "Breakpoint point"? You are using the above lisp? 

skchui6159_0-1722955254473.png

 

0 Likes
Message 14 of 14

komondormrex
Mentor
Mentor

did not quite catch...

0 Likes