<?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: Can use vlisp write a routine ? thanks in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5461862#M145075</link>
    <description>&lt;P&gt;Update, now it creates LWPOLYLINE... If you want only lines, just explode upon routine execution... And my previous code had some lacks, I suggest that you use this new one...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;(defun c:alin ( / *adoc* pea pt opt ptt el esel ent pent ang difang nang ptw ss )&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; (vl-load-com)&lt;BR /&gt;&amp;nbsp; (setq *adoc* (vla-get-activedocument (vlax-get-acad-object)))&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; (setq pt (getpoint "\nSpecify first point : "))&lt;BR /&gt;&amp;nbsp; (while&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cons pt opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (not (initget 128))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ptt (getpoint pt "\nSpecify next point or - F8 for orthomode [Angle line/Undo] : "))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cons ptt opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cond&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( (eq (type ptt) 'list)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-startundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.LINE" "_non" pt "_non" ptt "")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq el (cons (entlast) el))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'orthomode 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt ptt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-endundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( (or (wcmatch ptt "a*") (wcmatch ptt "A*"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-startundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq esel (entsel "\nPick target curve to obtain its angle"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ent (car esel))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pent (vlax-curve-getclosestpointto ent (cadr esel)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ang (angle '(0.0 0.0) (vlax-curve-getfirstderiv ent (vlax-curve-getparamatpoint ent pent))))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq difang (cvunit (getreal "\nSpecify angle to picked curve in decimal degrees : ") "degree" "radian"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq nang (cvunit (- ang difang) "radian" "degree"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ptw (trans pt 1 0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_W")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_Z" nang)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'orthomode 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.LINE" "_non" (trans ptw 0 1) "\\")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (while (&amp;gt; (getvar 'cmdactive) 0) (command ""))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq el (cons (entlast) el))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'orthomode 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ptw (trans (getvar 'lastpoint) 1 0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_P")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_P")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt (trans ptw 0 1))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-endundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( (or (wcmatch ptt "u*") (wcmatch ptt "U*"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (eq (length opt) 2) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt nil)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (progn &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (equal (cadr opt) (cadddr opt) 1e-8) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cddddr opt)) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cddr opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (null opt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt nil)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (progn&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UNDO" "") &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq el (cdr el)) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt (cadr opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; (if (not (null el))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (progn&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ss (ssadd))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (foreach l el&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ssadd l ss)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pea (getvar 'peditaccept))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'peditaccept 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.PEDIT" "_M" ss "" "_J")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (while (&amp;gt; (getvar 'cmdactive) 0) (command ""))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'peditaccept pea)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; (princ)&lt;BR /&gt;)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;HTH, M.R.&lt;/P&gt;</description>
    <pubDate>Wed, 07 Jan 2015 21:38:25 GMT</pubDate>
    <dc:creator>marko_ribar</dc:creator>
    <dc:date>2015-01-07T21:38:25Z</dc:date>
    <item>
      <title>Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460126#M145069</link>
      <description>&lt;P&gt;&lt;IMG border="0" src="https://forums.autodesk.com/t5/image/serverpage/image-id/147862iA333B3ED09AB2283/image-size/original?v=mpbl-1&amp;amp;px=-1" title="demo.gif" alt="demo.gif" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;when drawing "line" ,can Enter "A" to &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;"select the target line" ,&amp;nbsp;specify a angle .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;"You can if you want to make a line PARallel to an existing line, or PERPendicular to an existing line."&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I know ,can input Keyword “per” and "par" to do this ,bat can't specify a angle ! I think vlisp can do this , someone can write a&amp;nbsp;routine ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jan 2015 16:44:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460126#M145069</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-01-06T16:44:40Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460196#M145070</link>
      <description>&lt;P&gt;I'm not sure I understand exactly what you're asking, but assuming some things:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you want to draw a Line at a specified angle, and you &lt;EM&gt;know how long&lt;/EM&gt; you want it to be,&amp;nbsp;use the relative-displacement &lt;STRONG&gt;@&lt;/STRONG&gt;length&lt;STRONG&gt;&amp;lt;&lt;/STRONG&gt;angle&amp;nbsp;approach:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Specify next point or [Undo]: &lt;STRONG&gt;@123.456&amp;lt;45&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="lia-mentions-autocomplete"&gt;&lt;SPAN class="lia-mentions-trigger"&gt;If you &lt;EM&gt;don't&lt;/EM&gt; know the length but want to &lt;EM&gt;drag&lt;/EM&gt; the length dynamically on-screen,&amp;nbsp;and want it to&amp;nbsp;be locked into a specified angle, you can use the &lt;STRONG&gt;&amp;lt;&lt;/STRONG&gt; to specify that angle:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="lia-mentions-autocomplete"&gt;&lt;SPAN class="lia-mentions-trigger"&gt;Specify next point or [Undo]: &lt;STRONG&gt;&amp;lt;45&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and drag the length with the cursor.&amp;nbsp; The Line direction will be locked into the 45-degree [or the opposite 225-degree] direction, in the same way as it's locked into the four quadrant directions when Ortho is on. &amp;nbsp;[Such an angle designation will override Ortho.]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can also specify the angle in that way, drag the cursor in the right direction, and then type in a length value, which is another way to do it when you know the length.&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jan 2015 17:36:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460196#M145070</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2015-01-06T17:36:53Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460669#M145071</link>
      <description>&lt;P&gt;Thanks ,kent1cooper, thank you for reply ,but&amp;nbsp;That's not what I mean.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know how to draw a line with angle (&lt;STRONG&gt;@&lt;/STRONG&gt;&lt;SPAN&gt;length&lt;/SPAN&gt;&lt;STRONG&gt;&amp;lt;&lt;/STRONG&gt;&lt;SPAN&gt;angle ).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I mean :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;when drawing line , can pick &amp;nbsp;a&lt;/SPAN&gt;nother line(&lt;SPAN&gt;target line) &amp;nbsp;, Enter the angle ,This angle &amp;nbsp;between the line and the reference line . if&amp;nbsp;Enter the angel &amp;nbsp;is: 0 ,so this line&amp;nbsp;PARallel the target line , &amp;nbsp;if Enter the angle is : 90 &amp;nbsp;, so this line&amp;nbsp;PERPendicular the target line. &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;Of course also can enter the other Angle.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2015 01:24:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460669#M145071</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-01-07T01:24:02Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460755#M145072</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous wrote:&lt;BR /&gt;
&lt;P&gt;....&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;when drawing line , can pick &amp;nbsp;a&lt;/SPAN&gt;nother line(&lt;SPAN&gt;target line) &amp;nbsp;, Enter the angle ,This angle &amp;nbsp;between the line and the reference line ....&lt;/SPAN&gt;.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Isn't that exactly what your video demonstration of a "ZWMIntelligentLine" command&amp;nbsp;shows?&amp;nbsp; If so, what need is there for another routine?&amp;nbsp; If not, how does what you want to do differ from what is shown in the video?&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2015 04:10:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460755#M145072</guid>
      <dc:creator>Kent1Cooper</dc:creator>
      <dc:date>2015-01-07T04:10:16Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460766#M145073</link>
      <description>&lt;P&gt;Hi Mr. kent&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need this routine as&amp;nbsp;&lt;SPAN&gt;"ZWMIntelligentLine" , This CAD is not Autocad , only a&amp;nbsp;&lt;/SPAN&gt;Trial software. Thanks !&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2015 04:47:20 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5460766#M145073</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-01-07T04:47:20Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5461521#M145074</link>
      <description>&lt;P&gt;Maybe something like this :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;(defun c:alin ( / *adoc* pt opt ptt esel ent pent ang difang nang ptw )

  (vl-load-com)
  (setq *adoc* (vla-get-activedocument (vlax-get-acad-object)))

  (setq pt (getpoint "\nSpecify first point : "))
  (while
    (and
      (setq opt (cons pt opt))
      (not (initget 128))
      (setq ptt (getpoint pt "\nSpecify next point or - F8 for orthomode [Angle line/Undo] : "))
      (setq opt (cons ptt opt))
    )
    (cond
      ( (eq (type ptt) 'list)
        (vla-startundomark *adoc*)
        (command "_.LINE" "_non" pt "_non" ptt "")
        (setvar 'orthomode 0)
        (setq pt ptt)
        (vla-endundomark *adoc*)
      )
      ( (or (wcmatch ptt "a*") (wcmatch ptt "A*"))
        (vla-startundomark *adoc*)
        (setq esel (entsel "\nPick target curve to obtain its angle"))
        (setq ent (car esel))
        (setq pent (vlax-curve-getclosestpointto ent (cadr esel)))
        (setq ang (angle '(0.0 0.0) (vlax-curve-getfirstderiv ent (vlax-curve-getparamatpoint ent pent))))
        (setq difang (cvunit (getreal "\nSpecify angle to picked curve in decimal degrees : ") "degree" "radian"))
        (setq nang (cvunit (- ang difang) "radian" "degree"))
        (setq ptw (trans pt 1 0))
        (command "_.UCS" "_W")
        (command "_.UCS" "_Z" nang)
        (setvar 'orthomode 1)
        (command "_.LINE" "_non" (trans ptw 0 1) "\\")
        (while (&amp;gt; (getvar 'cmdactive) 0) (command ""))
        (setvar 'orthomode 0)
        (setq ptw (trans (getvar 'lastpoint) 1 0))
        (command "_.UCS" "_P")
        (command "_.UCS" "_P")
        (setq pt (trans ptw 0 1))
        (vla-endundomark *adoc*)
      )
      ( (or (wcmatch ptt "u*") (wcmatch ptt "U*"))
        (command "_.UNDO" "")
        (if (eq (length opt) 2) (setq pt (cadr opt)) (progn (if (equal (cadr opt) (cadddr opt) 1e-8) (setq opt (cddddr opt)) (setq opt (cddr opt))) (setq pt (cadr opt))))
      )
    )
  )
  (princ)
)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;HTH, M.R.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2015 17:16:14 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5461521#M145074</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2015-01-07T17:16:14Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5461862#M145075</link>
      <description>&lt;P&gt;Update, now it creates LWPOLYLINE... If you want only lines, just explode upon routine execution... And my previous code had some lacks, I suggest that you use this new one...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;(defun c:alin ( / *adoc* pea pt opt ptt el esel ent pent ang difang nang ptw ss )&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; (vl-load-com)&lt;BR /&gt;&amp;nbsp; (setq *adoc* (vla-get-activedocument (vlax-get-acad-object)))&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; (setq pt (getpoint "\nSpecify first point : "))&lt;BR /&gt;&amp;nbsp; (while&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (and&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pt&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cons pt opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (not (initget 128))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ptt (getpoint pt "\nSpecify next point or - F8 for orthomode [Angle line/Undo] : "))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cons ptt opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cond&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( (eq (type ptt) 'list)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-startundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.LINE" "_non" pt "_non" ptt "")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq el (cons (entlast) el))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'orthomode 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt ptt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-endundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( (or (wcmatch ptt "a*") (wcmatch ptt "A*"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-startundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq esel (entsel "\nPick target curve to obtain its angle"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ent (car esel))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pent (vlax-curve-getclosestpointto ent (cadr esel)))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ang (angle '(0.0 0.0) (vlax-curve-getfirstderiv ent (vlax-curve-getparamatpoint ent pent))))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq difang (cvunit (getreal "\nSpecify angle to picked curve in decimal degrees : ") "degree" "radian"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq nang (cvunit (- ang difang) "radian" "degree"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ptw (trans pt 1 0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_W")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_Z" nang)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'orthomode 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.LINE" "_non" (trans ptw 0 1) "\\")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (while (&amp;gt; (getvar 'cmdactive) 0) (command ""))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq el (cons (entlast) el))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'orthomode 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ptw (trans (getvar 'lastpoint) 1 0))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_P")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UCS" "_P")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt (trans ptw 0 1))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (vla-endundomark *adoc*)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( (or (wcmatch ptt "u*") (wcmatch ptt "U*"))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (eq (length opt) 2) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt nil)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (progn &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (equal (cadr opt) (cadddr opt) 1e-8) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cddddr opt)) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq opt (cddr opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (null opt)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt nil)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (progn&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.UNDO" "") &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq el (cdr el)) &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pt (cadr opt))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; (if (not (null el))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (progn&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq ss (ssadd))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (foreach l el&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ssadd l ss)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setq pea (getvar 'peditaccept))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'peditaccept 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (command "_.PEDIT" "_M" ss "" "_J")&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (while (&amp;gt; (getvar 'cmdactive) 0) (command ""))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (setvar 'peditaccept pea)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; )&lt;BR /&gt;&amp;nbsp; (princ)&lt;BR /&gt;)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;HTH, M.R.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2015 21:38:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5461862#M145075</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2015-01-07T21:38:25Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5462014#M145076</link>
      <description>&lt;P&gt;One more remark...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Look here :&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://www.cadtutor.net/forum/showthread.php?90298-smart-line/page4&amp;amp;p=#35"&gt;http://www.cadtutor.net/forum/showthread.php?90298-smart-line/page4&amp;amp;p=#35&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;M.R.&lt;/P&gt;</description>
      <pubDate>Wed, 07 Jan 2015 23:39:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5462014#M145076</guid>
      <dc:creator>marko_ribar</dc:creator>
      <dc:date>2015-01-07T23:39:50Z</dc:date>
    </item>
    <item>
      <title>Re: Can use vlisp write a routine ? thanks</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5462067#M145077</link>
      <description>&lt;P&gt;Very very very thank you ! Marko .I'm very honored and grateful!!&amp;nbsp; &lt;SPAN&gt;Best wishes for a wonderful new year!&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Jan 2015 00:50:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/can-use-vlisp-write-a-routine-thanks/m-p/5462067#M145077</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-01-08T00:50:15Z</dc:date>
    </item>
  </channel>
</rss>

