Preview for Polyline root.

Preview for Polyline root.

smallƑish
Advocate Advocate
4,875 Views
47 Replies
Message 1 of 48

Preview for Polyline root.

smallƑish
Advocate
Advocate

For example, User picks 2 Points, we have 2 options to connect the 2 points with the orthogonal root.

 

lisp is here;

 

 

(defun c:1 ( / Z1 z2 z5 z6 z3 z4)
  
  (if (and (setq Z1 (getpoint "\n Top of L shape : "))
	   (setq z2 (getpoint Z1 "\n Bot of L shape : "))
	   (setq z3 (list (car Z1) (cadr z2) 0.))
	   (setq z6 (list (car z2) (cadr Z1) 0.))
	   (setq z4 (inters Z1 (polar Z1 (* 1.75 pi) 1.)
			    z3 z2 nil))
	   (setq z5 (inters z2 (polar z2 (* 1.75 pi) 1.)
			    Z1 z6 nil))
	   )
    (command "_.line" "_non" Z1 "_non" z3 "_non" z2 ""))
  (princ)
  )


(defun c:2 ( / Z1 z2 z5 z6 z3 z4)
  
  (if (and (setq Z1 (getpoint "\nTop of 7 shape: "))
	   (setq z2 (getpoint Z1 "\n Bot of 7 shape: "))
	   (setq z3 (list (car Z1) (cadr z2) 0.))
	   (setq z6 (list (car z2) (cadr Z1) 0.))
	   (setq z4 (inters Z1 (polar Z1 (* 1.75 pi) 1.)
			    z3 z2 nil))
	   (setq z5 (inters z2 (polar z2 (* 1.75 pi) 1.)
			    Z1 z6 nil))
	   )
    (command "_.line" "_non" Z1 "_non" z6 "_non" z2 ""))
  (princ)
  )

 

 

 

Any chance to preview option 1 and option 2 Before making the polyline ?

 

smallish_0-1700553442021.png

 

 

 

 

0 Likes
Replies (47)
Message 21 of 48

smallƑish
Advocate
Advocate
yes outside the rectangle

0 Likes
Message 22 of 48

komondormrex
Mentor
Mentor
Accepted solution

let's finish with options at first and then work out points selection

 

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

;	komondormrex, nov 2023

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

(defun c:l7 (/ side_selected point_1 point_2 point_3_distance point_3 point_1_2
			   point_3_angle_org point_3_angle error_occurred option_number
			   angle_1_2 45_angle long_angle pline
			)
	(setq option_number 1
		  point_1 (getpoint "\nPick 1st diagonal point: ")
	)
	(while (and
				(not (while
						(and
		   	    		  	(setq point_2 (getpoint point_1 "\nPick 2nd diagonal point: "))
						  	(vl-some '(lambda (ortho) (equal (angle point_1 point_2) ortho 1e-6)) (list 0 (* 0.5 pi) pi (* 1.5 pi) (* 2 pi)))
		   		 		)
		   			 )
				)
				point_2
		   )
			(setq point_3_distance (distance (setq point_3 (inters point_1 (polar point_1 0 1)
													 			   point_2 (polar point_2 (* 0.5 pi) 1)
													 			   nil
											 			   )
											 )
											 (setq point_1_2 (polar point_1
																		(setq angle_1_2 (angle point_1 point_2))
																		(* 0.5 (distance point_1 point_2))
															     )
											 )
								   )
				  point_3_angle (angle point_1_2 point_3)
				  45_angle (cond
					 			((< 0 		   angle_1_2 (* 0.5 pi)) (* 0.25 pi))
					 			((< (* 0.5 pi) angle_1_2 		 pi) (* 0.75 pi))
					 			((< pi   	   angle_1_2 (* 1.5 pi)) (* 1.25 pi))
					 			((< (* 1.5 pi) angle_1_2 (* 2 pi)) 	 (* 1.75 pi))
						   )
				  long_angle (if (apply '< (mapcar '+ '(0 0) (mapcar 'abs (mapcar '- point_1 point_2)))) (* 0.5 pi) 0)
				  pline (list point_1 point_3 point_2)
			)
			(grvecs (list 1 point_1 point_3 point_3 point_2))
			(while (not side_selected)
					(princ "\rPress <Tab> to change position, <Space> to confirm")
					(setq error_occurred (if (vl-catch-all-error-p (setq grread_data (vl-catch-all-apply 'grread (list t 12 0)))) t nil))
			    	(cond
						(
							error_occurred
								(redraw)
								(setq side_selected t)
						)
						(
							(or
						 		(equal grread_data '(2 13))															;	Enter
						 		(equal grread_data '(2 32))															;	Space
								(= 3 (car grread_data))                                                             ;	LMB
							)
								(vla-addlightweightpolyline (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
															(vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 1 (* 2 (length pline))))
																(apply 'append (mapcar '(lambda (vertex)
																							(mapcar '+ '(0 0) vertex)
																				   		)
																				   		(mapcar '(lambda (vertex) (trans vertex 1 0)) pline)
																			   )
																)
															)
				    			)
								(redraw)
								(setq side_selected t)
						)
						(
							(or
								(equal grread_data '(2 9))                      									;	tab
								(= 25 (car grread_data))                                                            ;	RMB
								(= 11 (car grread_data))                                                            ;	RMB
							)
								(redraw)
								(setq option_number (1+ option_number))
								(if (= 10 option_number) (setq option_number 1))
								(cond
									(
										(= 1 option_number)
											(setq point_3 (polar point_1_2 point_3_angle point_3_distance)
												  pline (list point_1 point_3 point_2)
											)
											(grvecs (list 1 point_1 point_3 point_3 point_2))
									)
									(
										(= 2 option_number)
											(setq point_3_angle (+ point_3_angle pi)
												  point_3 (polar point_1_2 point_3_angle point_3_distance)
												  pline (list point_1 point_3 point_2)
											)
											(grvecs (list 1 point_1 point_3 point_3 point_2))
									)
									(
										(= 3 option_number)
											(setq point_3 (list (car point_1) (cadr point_1_2))
												  point_4 (list (car point_2) (cadr point_1_2))
												  pline (list point_1 point_3 point_4 point_2)
											)
											(grvecs (list 2 point_1 point_3 point_3 point_4 point_4 point_2))
									)
									(
										(= 4 option_number)
											(setq point_3 (list (car point_1_2) (cadr point_1))
												  point_4 (list (car point_1_2) (cadr point_2))
												  pline (list point_1 point_3 point_4 point_2)
											)
											(grvecs (list 2 point_1 point_3 point_3 point_4 point_4 point_2))
									)
									(
										(= 5 option_number)
											(setq point_3 (inters point_1 (polar point_1 45_angle 1) point_2 (polar point_2 (+ (* 0.5 pi) 45_angle) 1) nil)
												  pline (list point_1 point_3 point_2)
											)
											(grvecs (list 3 point_1 point_3 point_3 point_2))
									)
									(
										(= 6 option_number)
											(setq point_3 (inters point_2 (polar point_2 45_angle 1) point_1 (polar point_1 (+ (* 0.5 pi) 45_angle) 1) nil)
												  pline (list point_1 point_3 point_2)
											)
											(grvecs (list 3 point_1 point_3 point_3 point_2))
									)
									(
										(= 7 option_number)
											(setq point_3 (inters point_1 (polar point_1 45_angle 1) point_2 (polar point_2 long_angle 1) nil)
												  pline (list point_1 point_3 point_2)
											)
											(grvecs (list 4 point_1 point_3 point_3 point_2))
									)
									(
										(= 8 option_number)
											(setq point_3 (inters point_2 (polar point_2 45_angle 1) point_1 (polar point_1 long_angle 1) nil)
												  pline (list point_1 point_3 point_2)
											)
											(grvecs (list 4 point_1 point_3 point_3 point_2))
									)
									(
										(= 9 option_number)
											(setq pline (list point_1 point_2))
											(grvecs (list 5 point_1 point_2))
									)
								)
						)
						(
						 	t
						)
					)
			)
			(setq point_1 point_2
				  side_selected nil
				  option_number 1
			)
	)
	(princ)
)

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

 

updated_4

Message 23 of 48

smallƑish
Advocate
Advocate

The options are perfect.

Only one issue faced, the option 1 is not happening while making polyline.

 

If I press TAB 9 times, again coming option 1 then it's making it, and working properly. Just an information.

0 Likes
Message 24 of 48

komondormrex
Mentor
Mentor

1 option updated.

Message 25 of 48

smallƑish
Advocate
Advocate

Yes, all options are working perfectly. 

0 Likes
Message 26 of 48

komondormrex
Mentor
Mentor

continuing second point updated_2.

Message 27 of 48

smallƑish
Advocate
Advocate

Wow. it's awesome. Working perfectly. Thank you so much. No words to express.

Thank you so much.

0 Likes
Message 28 of 48

smallƑish
Advocate
Advocate

Any changes in update_4 ?

0 Likes
Message 29 of 48

komondormrex
Mentor
Mentor

different colors for different options

Message 30 of 48

smallƑish
Advocate
Advocate

Wow, that's Great Idea, 

Reflecting your artistic soul in coding. 

Thankyou so much for your creative thinking!!

0 Likes
Message 31 of 48

smallƑish
Advocate
Advocate

@komondormrex  Facing a small issue. If I m trying for option 9 (Stright line either Horizontal or vertical).

I can't able to choose an orthogonal point 2. only diagonal is working. Any solution for that?

 

If it's possible to make 9th option(line) as first preview, it could be very easier.

0 Likes
Message 32 of 48

komondormrex
Mentor
Mentor

will see

Message 33 of 48

komondormrex
Mentor
Mentor
Accepted solution

check the following. when ortho only the option 9 is available. otherwise all 9. last option is remembered.

 

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

;	komondormrex, nov 2023

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

(defun c:l7 (/ side_selected point_1 point_2 point_3_distance point_3 point_1_2
			   point_3_angle_org point_3_angle error_occurred option_number
			   angle_1_2 45_angle long_angle pline ortho
			)

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

	(defun _grvecs (option_number)
		(redraw)
		(cond
			(
				(= 1 option_number)
					(setq point_3 (polar point_1_2 point_3_angle point_3_distance)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 1 point_1 point_3 point_3 point_2))
			)
			(
				(= 2 option_number)
					(setq point_3_angle (+ point_3_angle pi)
						  point_3 (polar point_1_2 point_3_angle point_3_distance)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 1 point_1 point_3 point_3 point_2))
			)
			(
				(= 3 option_number)
					(setq point_3 (list (car point_1) (cadr point_1_2))
						  point_4 (list (car point_2) (cadr point_1_2))
						  pline (list point_1 point_3 point_4 point_2)
					)
					(grvecs (list 2 point_1 point_3 point_3 point_4 point_4 point_2))
			)
			(
				(= 4 option_number)
					(setq point_3 (list (car point_1_2) (cadr point_1))
						  point_4 (list (car point_1_2) (cadr point_2))
						  pline (list point_1 point_3 point_4 point_2)
					)
					(grvecs (list 2 point_1 point_3 point_3 point_4 point_4 point_2))
			)
			(
				(= 5 option_number)
					(setq point_3 (inters point_1 (polar point_1 45_angle 1) point_2 (polar point_2 (+ (* 0.5 pi) 45_angle) 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 3 point_1 point_3 point_3 point_2))
			)
			(
				(= 6 option_number)
					(setq point_3 (inters point_2 (polar point_2 45_angle 1) point_1 (polar point_1 (+ (* 0.5 pi) 45_angle) 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 3 point_1 point_3 point_3 point_2))
			)
			(
				(= 7 option_number)
					(setq point_3 (inters point_1 (polar point_1 45_angle 1) point_2 (polar point_2 long_angle 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 4 point_1 point_3 point_3 point_2))
			)
			(
				(= 8 option_number)
					(setq point_3 (inters point_2 (polar point_2 45_angle 1) point_1 (polar point_1 long_angle 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 4 point_1 point_3 point_3 point_2))
			)
			(
				(= 9 option_number)
					(setq pline (list point_1 point_2))
					(grvecs (list 5 point_1 point_2))
			)
		)
	)

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

	(setq option_number 1
		  point_1 (getpoint "\nPick 1st point: ")
	)
	(while (setq point_2 (getpoint point_1 "\rPick 2nd point: "))
			(if (not (setq ortho (vl-some '(lambda (ortho) (equal (angle point_1 point_2) ortho 1e-6)) (list 0 (* 0.5 pi) pi (* 1.5 pi) (* 2 pi)))))
				(setq point_3_distance (distance (setq point_3 (inters point_1 (polar point_1 0 1)
														 			   point_2 (polar point_2 (* 0.5 pi) 1)
														 			   nil
												 			   )
												 )
												 (setq point_1_2 (polar point_1
																			(setq angle_1_2 (angle point_1 point_2))
																			(* 0.5 (distance point_1 point_2))
																     )
												 )
									   )
					  point_3_angle (angle point_1_2 point_3)
					  45_angle (cond
						 			((< 0 		   angle_1_2 (* 0.5 pi)) (* 0.25 pi))
						 			((< (* 0.5 pi) angle_1_2 		pi)  (* 0.75 pi))
						 			((< pi   	   angle_1_2 (* 1.5 pi)) (* 1.25 pi))
						 			((< (* 1.5 pi) angle_1_2 (* 2.0 pi)) (* 1.75 pi))
							   )
					  long_angle (if (apply '< (mapcar '+ '(0 0) (mapcar 'abs (mapcar '- point_1 point_2)))) (* 0.5 pi) 0)
					  pline (list point_1 point_3 point_2)
				)
				(setq option_number 9)
			)
			(while (not side_selected)
					(_grvecs option_number)
					(princ "\rPress <Tab> to change connection type, <Space> to confirm")
					(setq error_occurred (if (vl-catch-all-error-p (setq grread_data (vl-catch-all-apply 'grread (list t 12 0)))) t nil))
			    	(cond
						(
							error_occurred
								(redraw)
								(setq side_selected t)
						)
						(
							(or
						 		(equal grread_data '(2 13))															;	Enter
						 		(equal grread_data '(2 32))															;	Space
								(= 3 (car grread_data))                                                             ;	LMB
							)
								(vla-addlightweightpolyline (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
															(vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 1 (* 2 (length pline))))
																(apply 'append (mapcar '(lambda (vertex)
																							(mapcar '+ '(0 0) vertex)
																				   		)
																				   		(mapcar '(lambda (vertex) (trans vertex 1 0)) pline)
																			   )
																)
															)
				    			)
								(redraw)
								(setq side_selected t)
						)
						(
							(or
								(equal grread_data '(2 9))                      									;	tab
								(= 25 (car grread_data))                                                            ;	RMB
								(= 11 (car grread_data))                                                            ;	RMB
							)
								(if ortho
									(setq option_number 9)
									(progn
										(setq option_number (1+ option_number))
										(if (= 10 option_number) (setq option_number 1))
									)
								)
						)
						(
						 	t
								(_grvecs option_number)
						)
					)
			)
			(setq point_1 point_2
				  side_selected nil
			)
			(redraw)
	)
	(princ)
)

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

updated

 

Message 34 of 48

smallƑish
Advocate
Advocate

Thank you so much, now no need to swich cmd to use polyline and L7.  All in one. Thank you so much for your unlimited support.

0 Likes
Message 35 of 48

komondormrex
Mentor
Mentor
Accepted solution

updated for connector preview stays while pan or zoom.

Message 36 of 48

smallƑish
Advocate
Advocate

Yes, I had a confusion, when I use L7 first' time. Then used to that as it was not an issue for the process. Thank you so much that you fixed this🙏

0 Likes
Message 37 of 48

smallƑish
Advocate
Advocate

The last option remembered is very useful. Now only I understand how it works. 🙂 

0 Likes
Message 38 of 48

Kent1Cooper
Consultant
Consultant
Accepted solution

@Kent1Cooper wrote:

Well, the attached doesn't do your new variety of Options 5 & 6* [maybe later], ....


I have worked those in under the "V" option in the attached, and also what I chose to call the "U" option [could be "C" instead] picked up from your >other Topic<, all in one.  The attached file gives you all those choices, to type in or cycle through with Tab, and without your needing to remember option numbers and what shapes they produce.  The command name LZDVUS is a little weird [you can change it], but it's just the Letters similar to the shapes as they accumulated here over time [except for keeping Straight at the end even though U is the latest addition].  The D stands for Dogleg, and the S for Straight, and all the others are suggestive of the shape they make [though whether in the orientation of the letter depends on the positions of the two points].

See the comments at the top of the file for details.  NOTE that I used a value of 1 for the length of the end legs of the "U" or "C" shape -- see the EDIT instruction and change that to your 500.

LZDVUS.gif

Here, it starts by default with the Straight option, and the changes in shape are just from hitting Tab to cycle through them, with the cursor movement changing the side to which the shape goes [or which mid-line is used in the Z option].  You can also type any of the option letters at any time to jump directly to a particular path shape. 

Kent Cooper, AIA
Message 39 of 48

komondormrex
Mentor
Mentor
Accepted solution

@smallƑish 

here goes the version with block selecting

 

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

;	komondormrex, jan 2024

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

(defun c:l7 (/ side_selected point_1 point_2 point_3_distance point_3 point_1_2
			   point_3_angle_org point_3_angle error_occurred option_number
			   angle_1_2 45_angle long_angle pline ortho
			)

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

	(defun _entsel (e_name _prompt / ename)
		(while (cond
			   		((vl-catch-all-error-p (setq ename (vl-catch-all-apply 'entsel (list _prompt)))) (setq ename nil))
					((null ename) t)
					(t (if (= (cdr (assoc 0 (entget (setq ename (car ename))))) (strcase e_name)) nil))
			   )
		)
		ename
	)

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

	(defun _grvecs (option_number)
		(redraw)
		(cond
			(
				(= 1 option_number)
					(setq point_3 (polar point_1_2 point_3_angle point_3_distance)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 1 point_1 point_3 point_3 point_2))
			)
			(
				(= 2 option_number)
					(setq point_3_angle (+ point_3_angle pi)
						  point_3 (polar point_1_2 point_3_angle point_3_distance)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 1 point_1 point_3 point_3 point_2))
			)
			(
				(= 3 option_number)
					(setq point_3 (list (car point_1) (cadr point_1_2))
						  point_4 (list (car point_2) (cadr point_1_2))
						  pline (list point_1 point_3 point_4 point_2)
					)
					(grvecs (list 2 point_1 point_3 point_3 point_4 point_4 point_2))
			)
			(
				(= 4 option_number)
					(setq point_3 (list (car point_1_2) (cadr point_1))
						  point_4 (list (car point_1_2) (cadr point_2))
						  pline (list point_1 point_3 point_4 point_2)
					)
					(grvecs (list 2 point_1 point_3 point_3 point_4 point_4 point_2))
			)
			(
				(= 5 option_number)
					(setq point_3 (inters point_1 (polar point_1 45_angle 1) point_2 (polar point_2 (+ (* 0.5 pi) 45_angle) 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 3 point_1 point_3 point_3 point_2))
			)
			(
				(= 6 option_number)
					(setq point_3 (inters point_2 (polar point_2 45_angle 1) point_1 (polar point_1 (+ (* 0.5 pi) 45_angle) 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 3 point_1 point_3 point_3 point_2))
			)
			(
				(= 7 option_number)
					(setq point_3 (inters point_1 (polar point_1 45_angle 1) point_2 (polar point_2 long_angle 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 4 point_1 point_3 point_3 point_2))
			)
			(
				(= 8 option_number)
					(setq point_3 (inters point_2 (polar point_2 45_angle 1) point_1 (polar point_1 long_angle 1) nil)
						  pline (list point_1 point_3 point_2)
					)
					(grvecs (list 4 point_1 point_3 point_3 point_2))
			)
			(
				(= 9 option_number)
					(setq pline (list point_1 point_2))
					(grvecs (list 5 point_1 point_2))
			)
		)
	)

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

	(setq option_number 1
		  1st_block (_entsel "insert" "\rPick 1st block: ")
	)
	(if (and 1st_block (setq point_1 (cdr (assoc 10 (entget 1st_block)))) (null (redraw 1st_block 3)))
		(while (setq 2nd_block (_entsel "insert" "\rPick 2nd block: "))
			(setq point_2 (cdr (assoc 10 (entget 2nd_block))))
			(redraw 1st_block 4)
			(redraw 2nd_block 3)
			(if (not (setq ortho (vl-some '(lambda (ortho) (equal (angle point_1 point_2) ortho 1e-6)) (list 0 (* 0.5 pi) pi (* 1.5 pi) (* 2 pi)))))
				(setq point_3_distance (distance (setq point_3 (inters point_1 (polar point_1 0 1)
															 		   point_2 (polar point_2 (* 0.5 pi) 1)
															 		   nil
													 		   )
												 )
												 (setq point_1_2 (polar point_1
																		(setq angle_1_2 (angle point_1 point_2))
																		(* 0.5 (distance point_1 point_2))
																 )
												 )
									   )
					  point_3_angle (angle point_1_2 point_3)
					  45_angle (cond
							 		((< 0 		   angle_1_2 (* 0.5 pi)) (* 0.25 pi))
							 		((< (* 0.5 pi) angle_1_2 		pi)  (* 0.75 pi))
							 		((< pi   	   angle_1_2 (* 1.5 pi)) (* 1.25 pi))
							 		((< (* 1.5 pi) angle_1_2 (* 2.0 pi)) (* 1.75 pi))
							   )
					  long_angle (if (apply '< (mapcar '+ '(0 0) (mapcar 'abs (mapcar '- point_1 point_2)))) (* 0.5 pi) 0)
					  pline (list point_1 point_3 point_2)
				)
				(setq option_number 9)
			)
			(while (not side_selected)
					(_grvecs option_number)
					(princ "\rPress <Tab> to change connection type, <Space> to confirm")
					(setq error_occurred (if (vl-catch-all-error-p (setq grread_data (vl-catch-all-apply 'grread (list t 12 0)))) t nil))
				    (cond
						(
							error_occurred
								(redraw)
								(setq side_selected t)
						)
						(
							(or
							 	(equal grread_data '(2 13))															;	Enter
							 	(equal grread_data '(2 32))															;	Space
								(= 3 (car grread_data))                                                             ;	LMB
							)
								(vla-addlightweightpolyline (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
															(vlax-safearray-fill (vlax-make-safearray vlax-vbdouble (cons 1 (* 2 (length pline))))
																(apply 'append (mapcar '(lambda (vertex)
																							(mapcar '+ '(0 0) vertex)
																					   	)
																					   	(mapcar '(lambda (vertex) (trans vertex 1 0)) pline)
																			   )
																)
															)
					    		)
								(redraw)
								(setq side_selected t)
						)
						(
							(or
								(equal grread_data '(2 9))                      									;	tab
								(= 25 (car grread_data))                                                            ;	RMB
								(= 11 (car grread_data))                                                            ;	RMB
							)
								(if ortho
									(setq option_number 9)
									(progn
										(setq option_number (1+ option_number))
										(if (= 10 option_number) (setq option_number 1))
									)
								)
						)
						(
							t
								(_grvecs option_number)
						)
					)
			)
			(setq point_1 point_2
				  1st_block 2nd_block
				  side_selected nil
			)
			(redraw)
		)
	)
	(if (null 2nd_block) (princ "\nCommand ended"))
	(redraw 1st_block 4)
	(princ)
)

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

 

 

Message 40 of 48

smallƑish
Advocate
Advocate
Thank you so much, it's make the process much easier. !!!!
0 Likes