<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Align blocks to line in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027400#M28701</link>
    <description>&lt;P&gt;Yes, it's right. In generally one loop include 70-100 pcs. of devices (block) on the blueprint and I bind these with lines. If the loop is ready, I have to create schematic drawing, which your previus solution solved. For this reason would be easier if a lisp could draw a polyline according to ADDRESS attribute, because I could apply your previous solution easier and I wouldn't need draw a polyline at first step.&lt;/P&gt;</description>
    <pubDate>Mon, 12 Jun 2023 10:51:17 GMT</pubDate>
    <dc:creator>danielzoltan_kiss</dc:creator>
    <dc:date>2023-06-12T10:51:17Z</dc:date>
    <item>
      <title>Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12025853#M28692</link>
      <description>&lt;P&gt;Dear Community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have different blocks, which are along to polyline like a loop. The order of blocks are important along the polyline. Base point of blocks equal to breaking point of polyline.&lt;/P&gt;&lt;P&gt;I would like to align all of these blocks to a line with the same order.&lt;/P&gt;&lt;P&gt;This loop is on the blueprint of fire alarm system and I need to generate schematic drawing from this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you in advance, if you have solution for me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;</description>
      <pubDate>Sun, 11 Jun 2023 14:04:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12025853#M28692</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-11T14:04:06Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12025985#M28693</link>
      <description>&lt;P&gt;has a pline crossed all blocks?&lt;/P&gt;</description>
      <pubDate>Sun, 11 Jun 2023 20:28:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12025985#M28693</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2023-06-11T20:28:21Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12026137#M28694</link>
      <description>&lt;P&gt;Basically blocks are bind with polylines, so there are more polylines.&lt;/P&gt;</description>
      <pubDate>Sun, 11 Jun 2023 19:42:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12026137#M28694</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-11T19:42:34Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12026371#M28695</link>
      <description>&lt;P&gt;Need a dwg to look at.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;komondormrex has hinted if along the pline then they can be found easily using the "fence" option when selecting objects.&lt;/P&gt;</description>
      <pubDate>Mon, 12 Jun 2023 00:12:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12026371#M28695</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2023-06-12T00:12:07Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12026648#M28696</link>
      <description>&lt;P&gt;Sample DWG is attached.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Jun 2023 03:28:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12026648#M28696</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-12T03:28:05Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027032#M28697</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/6254908"&gt;@Sea-Haven&lt;/a&gt;,&amp;nbsp;sure thing&lt;/P&gt;&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/13999024"&gt;@danielzoltan_kiss&lt;/a&gt;, check the following&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;(defun c:block_in_line (/ block_list org_pline index)
	(setq block_list (vl-remove-if 'listp
			 	(mapcar 'cadr
						(ssnamex
							(ssget "_f"
							       (mapcar 'cdr (vl-remove-if-not '(lambda (group) (= 10 (car group)))
								 		  	       (entget (setq org_pline (car (entsel "\nPick pline with bound blocks:"))))
									    )
							       )
							       '((0 . "insert"))
							)
						)
				)
			 )
	)
  	(vla-put-layer (vla-addline (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
				    (vlax-3d-point (setq start_point (trans (getpoint "\nPick starting point of horizontal straightener for blocks: ") 1 0)))
			  	    (vlax-3d-point (polar start_point 0 (* 1000 (1+ (length block_list)))))
		       )
	  	       (cdr (assoc 8 (entget org_pline))) 
        )
  	(setq index 0)
  	(foreach block (mapcar 'vlax-ename-&amp;gt;vla-object block_list)
		(vla-move
			(vla-copy block)
			(vla-get-insertionpoint block)
			(vlax-3d-point (polar start_point 0 (* 1000 (setq index (1+ index)))))
		)
	)
  	(princ)
)&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 12 Jun 2023 07:37:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027032#M28697</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2023-06-12T07:37:20Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027084#M28698</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/13423916"&gt;@komondormrex&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I appreciate your help. It works fine. It will speed up my work. Thank you very much.&lt;/P&gt;&lt;P&gt;Can I have a favor? Could you help to write an LSP, which following:&lt;/P&gt;&lt;P&gt;Draw a polyline, which bind the blocks according to "ADDRESS" attribute. Order is important. Regarding to sample.dwg file, 1/1 block is the first and 1/8 is the last.&lt;/P&gt;&lt;P&gt;Thank you in advance.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;</description>
      <pubDate>Mon, 12 Jun 2023 08:02:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027084#M28698</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-12T08:02:35Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027350#M28699</link>
      <description>&lt;P&gt;Try this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;(defun c:foo ( / l pl blks ip tag dist sp p )
  (setq precision 4)
  (setq dist 1000)
  (princ "\nSelect Polyline: ")
  (setq pl (massoc (entget (car (entsel))) 10))
  (setq pl (mapcar '(lambda (x) (mapcar '(lambda (y) (rtos y 2 precision)) x)) pl))
  (setq pl (mapcar '(lambda (x) (mapcar 'atof x)) pl))
  (princ "\nSelect Blocks: ")
  (setq blks (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "insert")))))))
  (setq ip (mapcar '(lambda (x) (mapcar '(lambda (y) (rtos y 2 precision)) x)) (mapcar '(lambda (z) (reverse (cdr (reverse (cdr (assoc 10 (entget z))))))) blks)))
  (setq ip (mapcar '(lambda (x) (mapcar 'atof x)) ip))
  (setq blks (mapcar 'vlax-ename-&amp;gt;vla-object blks))
  (setq ip (mapcar '(lambda (x y) (cons x y)) ip blks))  
  (foreach x pl
    (if (assoc x ip)  
      (setq l (cons (assoc x ip) l))
    )
  )
  (setq l (reverse l))
  (setq sp (getpoint "Pick Insertion Point: "))  
  (setq tag 1)
  (foreach x l
    (command "_line" "_none" sp "_none" (setq p (list (+ (car sp) dist) (cadr sp))) "")
    (vla-put-layer (vlax-ename-&amp;gt;vla-object (entlast)) "FAS_Fire alarm cable")
    (vla-put-color (vlax-ename-&amp;gt;vla-object (entlast)) 256)
    (command "_copy" (vlax-vla-object-&amp;gt;ename (cdr x)) "" "_none" (car x) "_none" p)
    (setq dist (1+ dist))
    (setq sp (list (+ (car sp) 1000) (cadr sp)))
    (setq tag (1+ tag))
  )  
  (command "_line" "_none" sp "_none" (setq p (list (+ (car sp) dist) (cadr sp))) "")
  (vla-put-layer (vlax-ename-&amp;gt;vla-object (entlast)) "FAS_Fire alarm cable")
  (vla-put-color (vlax-ename-&amp;gt;vla-object (entlast)) 256)
)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Jun 2023 10:14:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027350#M28699</guid>
      <dc:creator>haper74945</dc:creator>
      <dc:date>2023-06-12T10:14:47Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027369#M28700</link>
      <description>&lt;P&gt;same as previous, but blocks aligned according to 'address' attribute?&lt;/P&gt;</description>
      <pubDate>Mon, 12 Jun 2023 10:28:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027369#M28700</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2023-06-12T10:28:52Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027400#M28701</link>
      <description>&lt;P&gt;Yes, it's right. In generally one loop include 70-100 pcs. of devices (block) on the blueprint and I bind these with lines. If the loop is ready, I have to create schematic drawing, which your previus solution solved. For this reason would be easier if a lisp could draw a polyline according to ADDRESS attribute, because I could apply your previous solution easier and I wouldn't need draw a polyline at first step.&lt;/P&gt;</description>
      <pubDate>Mon, 12 Jun 2023 10:51:17 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027400#M28701</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-12T10:51:17Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027436#M28702</link>
      <description>&lt;P&gt;check if it is what you want.&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;(defun c:block_in_pline (/ block_list org_pline index start_point end_point address_attribute)
	(setq block_list (mapcar
			   'vlax-ename-&amp;gt;vla-object
				 (vl-remove-if 'listp
				 	(mapcar 'cadr
							(ssnamex
								(ssget "_f"
								       (mapcar 'cdr (vl-remove-if-not '(lambda (group) (= 10 (car group)))
									 		  	       (entget (setq org_pline (car (entsel "\nPick pline with bound blocks:"))))
										    )
								       )
								       '((0 . "insert"))
								)
							)
					)
				 )
			 )
	     block_list (mapcar '(lambda (block) (cons (if (vl-some '(lambda (attribute) (= "ADDRESS" (vla-get-tagstring (setq address_attribute attribute))))
								      (vlax-invoke block 'getattributes)
							    )
							    (vla-get-textstring address_attribute)
							    "0/0"
							)
							block
						  )
				  )
				  block_list
			 )
  	     block_list (vl-sort block_list '(lambda (block_1 block_2) (&amp;lt; (atof (vl-string-translate "/" "." (car block_1)))
									  (atof (vl-string-translate "/" "." (car block_2)))
								       )
					      )
			)
        )
  	(setq start_point (trans (getpoint "\nPick starting point of horizontal pline straightener for blocks: ") 1 0)
	      end_point (polar start_point 0 (* 1000 (1+ (length block_list))))
	      lw_pline_points_array (vlax-make-safearray vlax-vbdouble '(0 . 3))
	)
  	(vla-put-layer (vla-addlightweightpolyline (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
			 			   (vlax-safearray-fill lw_pline_points_array (list (car start_point) (cadr start_point)
												    (car end_point) (cadr end_point)
											      )
						   )
		       )
	  	       (cdr (assoc 8 (entget org_pline))) 
        )
  	(setq index 0)
  	(foreach block (mapcar 'cdr block_list)
		(vla-move
			(vla-copy block)
			(vla-get-insertionpoint block)
			(vlax-3d-point (polar start_point 0 (* 1000 (setq index (1+ index)))))
		)
	)
  	(princ)
)&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 12 Jun 2023 11:19:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027436#M28702</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2023-06-12T11:19:33Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027475#M28703</link>
      <description>&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/13423916"&gt;@komondormrex&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry, perhaps I explained it false. Sample DWG is attached.&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 12 Jun 2023 11:44:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027475#M28703</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-12T11:44:35Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027865#M28704</link>
      <description>&lt;P&gt;just like that?&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;;************************************************************************************************************

(defun crd (_list)
	(reverse (cdr (reverse _list)))
)

;************************************************************************************************************

(defun c:block_in_pline (/ block_list org_pline start_point address_attribute connecting_line index pline_vertices_list pline_vertices_raw_list lw_pline_points_array)
	(setq block_list (mapcar
			   'vlax-ename-&amp;gt;vla-object
				 (vl-remove-if 'listp
				 	(mapcar 'cadr
							(ssnamex
								(ssget "_f"
								       (mapcar 'cdr (vl-remove-if-not '(lambda (group) (= 10 (car group)))
									 		  	       (entget (setq org_pline (car (entsel "\nPick pline with bound blocks:"))))
										    )
								       )
								       '((0 . "insert"))
								)
							)
					)
				 )
			 )
	     block_list (mapcar '(lambda (block) (cons (if (vl-some '(lambda (attribute) (= "ADDRESS" (vla-get-tagstring (setq address_attribute attribute))))
								      (vlax-invoke block 'getattributes)
							    )
							    (vla-get-textstring address_attribute)
							    "0/0"
							)
							block
						  )
				  )
				  block_list
			 )
  	     block_list (vl-sort block_list '(lambda (block_1 block_2) (&amp;lt; (atof (vl-string-translate "/" "." (car block_1)))
									  (atof (vl-string-translate "/" "." (car block_2)))
								       )
					      )
			)
  	     start_point (trans (getpoint "\nPick starting point of horizontal pline straightener for blocks: ") 1 0)
	     pline_vertices_list (list start_point)
	     index 0
	)
  	(repeat (1+ (length block_list))
		(setq pline_vertices_list (append pline_vertices_list (list (polar start_point 0 (* 1000 (setq index (1+ index)))))))
	)
	(setq lw_pline_points_array (vlax-make-safearray vlax-vbdouble (cons 0 (1- (length (setq pline_vertices_raw_list (apply 'append (mapcar 'crd pline_vertices_list)))))))) 
  	(vla-put-layer (vla-addlightweightpolyline (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
			 			   (vlax-safearray-fill lw_pline_points_array pline_vertices_raw_list)
		       )
	  	       (cdr (assoc 8 (entget org_pline))) 
        )
  	(setq index 0)
  	(foreach block (mapcar 'cdr block_list)
		(vla-move
			(vla-copy block)
			(vla-get-insertionpoint block)
			(vlax-3d-point (polar start_point 0 (* 1000 (setq index (1+ index)))))
		)
	)
  	(princ)
)

;************************************************************************************************************&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 12 Jun 2023 13:59:47 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12027865#M28704</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2023-06-12T13:59:47Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037219#M28705</link>
      <description>&lt;P&gt;Sorry, my sample dwg file was maybe misleading. I attached the correct version.&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jun 2023 19:01:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037219#M28705</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-15T19:01:22Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037290#M28706</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="komondormrex_0-1686857805998.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1228310iDC4DF5ACCAB83F65/image-size/medium?v=v2&amp;amp;px=400" role="button" title="komondormrex_0-1686857805998.png" alt="komondormrex_0-1686857805998.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jun 2023 19:36:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037290#M28706</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2023-06-15T19:36:48Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037312#M28707</link>
      <description>&lt;P&gt;Yes, you are right.&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jun 2023 19:44:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037312#M28707</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-15T19:44:10Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037375#M28708</link>
      <description>&lt;P&gt;well, then check this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="lisp"&gt;;************************************************************************************************************

(defun crd (_list)
	(reverse (cdr (reverse _list)))
)

;************************************************************************************************************

(defun c:block_in_pline (/ block_list start_point address_attribute index pline_vertices_list pline_vertices_raw_list lw_pline_points_array)
	(prompt "Select blocks with attribute \"Address\" you would like to place on pline by its order.")
  	(setq block_list (mapcar 'vlax-ename-&amp;gt;vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "insert")))))))
	      block_list (mapcar '(lambda (block) (cons (if (vl-some '(lambda (attribute) (= "ADDRESS" (vla-get-tagstring (setq address_attribute attribute))))
								      (vlax-invoke block 'getattributes)
							    )
							    (vla-get-textstring address_attribute)
							    "0/0"
							)
							block
						  )
				  )
				  block_list
			 )
  	      block_list (vl-sort block_list '(lambda (block_1 block_2) (&amp;lt; (atof (vl-string-translate "/" "." (car block_1)))
									  (atof (vl-string-translate "/" "." (car block_2)))
								       )
					      )
			)
  	     start_point (trans (getpoint "\nPick starting point of horizontal pline straightener for blocks: ") 1 0)
	     pline_vertices_list (list start_point)
	     index 0
	)
  	(repeat (1+ (length block_list))
		(setq pline_vertices_list (append pline_vertices_list (list (polar start_point 0 (* 1000 (setq index (1+ index)))))))
	)
	(setq lw_pline_points_array (vlax-make-safearray vlax-vbdouble (cons 0 (1- (length (setq pline_vertices_raw_list (apply 'append (mapcar 'crd pline_vertices_list)))))))) 
  	(vla-put-layer (vla-addlightweightpolyline (vla-get-block (vla-get-activelayout (vla-get-activedocument (vlax-get-acad-object))))
			 			   (vlax-safearray-fill lw_pline_points_array pline_vertices_raw_list)
		       )
	  	       "Fas_Fire Alarm Cable" 
        )
  	(setq index 0)
  	(foreach block (mapcar 'cdr block_list)
		(vla-move
			(vla-copy block)
			(vla-get-insertionpoint block)
			(vlax-3d-point (polar start_point 0 (* 1000 (setq index (1+ index)))))
		)
	)
  	(princ)
)

;************************************************************************************************************&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 15 Jun 2023 20:19:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037375#M28708</guid>
      <dc:creator>komondormrex</dc:creator>
      <dc:date>2023-06-15T20:19:18Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037407#M28709</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/13423916" target="_blank"&gt;@komondormrex&lt;/A&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It works fine. Thank you very much again. Previously tried it, only I tried call with "crd" command and it didn't work, but this was only my fault. Could you recommend me a source, where could I learn the autolisp programming from? (Previously I learned python, if it is matter whatever)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Daniel&lt;/P&gt;</description>
      <pubDate>Thu, 15 Jun 2023 20:35:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037407#M28709</guid>
      <dc:creator>danielzoltan_kiss</dc:creator>
      <dc:date>2023-06-15T20:35:39Z</dc:date>
    </item>
    <item>
      <title>Re: Align blocks to line</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037837#M28710</link>
      <description>&lt;P&gt;Lots of places to learn lisp, plenty of Ebooks now, start with Afralisp tutorials. Look at code here and if have questions about what it is doing don't be afraid to ask. You get more help having a go, often via PM.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Others will offer suggestions where to learn.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Jun 2023 01:21:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/align-blocks-to-line/m-p/12037837#M28710</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2023-06-16T01:21:37Z</dc:date>
    </item>
  </channel>
</rss>

