<?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: Making a square to circle duct transition. in Visual LISP, AutoLISP and General Customization Forum</title>
    <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12252012#M23974</link>
    <description>&lt;P&gt;There were a number of problems with your initial code. I modified it the best I could. You'll need to go back and adjust because with my modifications the 3dplines created look way too much (see attached dwg &amp;amp; lsp):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="paullimapa_0-1695158218816.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1268734i930A41AA88D76C34/image-size/medium?v=v2&amp;amp;px=400" role="button" title="paullimapa_0-1695158218816.png" alt="paullimapa_0-1695158218816.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;In Summary these were the major changes:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;c:S2CTRANS:&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Added localized variables &amp;amp; functions&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Added&amp;nbsp;CONNVERTI function into&amp;nbsp;c:S2CTRANS&lt;/EM&gt;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;(defun c:S2CTRANS 
  ; localize variables &amp;amp; functions
  (/ circle circleElevation CONNVERTI 
     dxf-data1 dxf-data2
     polyline polylineElevation z1 z2
  )&lt;/LI-CODE&gt;&lt;P&gt;Modified selection of circle &amp;amp; polyline to include filters:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;;  (setq circle (car (entsel "\nSelect a circle : "))) ; Select a circle
; selection filter for circle
  (while (not circle) 
   (princ"\nSelect Circle...")
   (setq circle (ssget "_+.:E:S" '((0 . "CIRCLE"))))
  )
  (setq circle (ssname circle 0))
;  (setq polyline (car (entsel "\nSelect a polyline: "))) ; Select a polyline
; selection filter for closed lwpline
  (while (not polyline) 
   (princ"\nSelect Closed Pline...")
   (setq polyline (ssget "_+.:E:S" '((0 . "LWPOLYLINE")(-4 . "&amp;amp;")(70 . 1))))
  )
  (setq polyline (ssname polyline 0))&lt;/LI-CODE&gt;&lt;P&gt;You don't have a function called&amp;nbsp;&lt;EM&gt;(C:CONNVERTI) &lt;/EM&gt;and instead of selecting circle &amp;amp; polyline again I included these are arguments passing them onto function (&lt;EM&gt;CONNVERTI)&lt;/EM&gt;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;    (PROGN
      (prompt "\nObjects have different Elevation.\n")
;      (C:CONNVERTI) ; this is not defined
      ; call CONNVERTI function passing circle &amp;amp; pline objects as arguments so don't need to select again
      (CONNVERTI circle polyline)
    )&lt;/LI-CODE&gt;&lt;P&gt;Again localized variables in CONNVERTI sub function:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;(defun CONNVERTI 
  ; localize variables &amp;amp; functions       
  (circle-arg polyline-arg
   /
   acadObj angleIncrement anglenum center circleData doc endPoint 
   dxf-data ele i numSegments 
   points point-entity polyline3D polylineToCirclePoints polylinePoints
   pt1 pt2 radius x y xP yP
  )&lt;/LI-CODE&gt;&lt;P&gt;Never use variable matching name of built-in Autolisp function ie: angle:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;  ; don't use function name as variable in this case angle is a built in autolisp function
;  (setq angle 0.0) ; Initialize the angle
  (setq anglenum 0.0) ; Initialize the angle&lt;/LI-CODE&gt;&lt;P&gt;For endpoint I included circle's Z elevation "ele" so all point lists have x y &amp;amp; z:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;    (setq endPoint (list (+ (car center) (* radius x))
                         (+ (cadr center) (* radius y))
                         ele                             ; include circle elevation as z
                   )
          
    ) ; Calculate the endpoint&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Then your code goes into a test of 2 variables which have yet to be defined so I took a guess here:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;; code missing polylineVertices &amp;amp; numPoints
; perhaps these?
  (setq polylineVertices (length polylinePoints))
  (setq numPoints numSegments)
  
  (if (= polylineVertices numPoints)
    (progn&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Lastly I had to revised your entire section on creating the 3dpoly:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;  ; Create the 3D polyline
;  (setq polyline3D (vlax-invoke (vla-get-activedocument (vlax-get-acad-object)) 'Add3DPoly polylineToCirclePoints))
; Add3DPoly Method (ActiveX)
; https://help.autodesk.com/view/OARX/2023/ENU/?guid=GUID-21D7283A-552F-4DD8-BB4D-AEA1632186B9
  (setq acadObj (vlax-get-acad-object))
  (setq doc (vla-get-ActiveDocument acadObj))
  (setq modelSpace (vla-get-ModelSpace doc))
; https://www.afralisp.net/archive/methods/list/add3dpoly_method.htm
  ; "dissolve" the points into atoms with append:
  (setq polylineToCirclePoints (apply 'append polylineToCirclePoints))
  ; If number of coordinates in point list is not
  ; a multiple of 3 then a lwpolyline can't be made.
  ; If it's a multiple of 3 then put the point
  ; list into an array and pass it on to Add3DPoly:
  (if (= (rem (length polylineToCirclePoints) 3) 0)
    (progn
     (setq points (vlax-make-safearray vlax-vbdouble (cons 0 (- (length polylineToCirclePoints) 1))))
     (vlax-safearray-fill points polylineToCirclePoints)
     (setq polyline3D (vla-Add3DPoly modelSpace points))
     (princ (strcat "Created a 3D polyline connecting the circle to the polyline."))
    )
    (princ "\nError: 3DPoly could not be created")
  )&lt;/LI-CODE&gt;</description>
    <pubDate>Tue, 19 Sep 2023 21:29:18 GMT</pubDate>
    <dc:creator>paullimapa</dc:creator>
    <dc:date>2023-09-19T21:29:18Z</dc:date>
    <item>
      <title>Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12249125#M23971</link>
      <description>&lt;UL&gt;&lt;LI&gt;Currently I have a function in which the elevation (height or z coordinate) of polyline (square most of the time) and circle are compared and if they are in same elevation than gives error, and if not it runs a program called CONNVERTI.&lt;/LI&gt;&lt;LI&gt;In function CONNVERTI it ask user to select a circle and a polyline. After that it sets the number of segments circle will be divided into (which is 20).&lt;/LI&gt;&lt;LI&gt;A math calculation is set to start making points on circle with the increasing angle (from 0° to 360° so that it make points equal to number segments it has been set to).&lt;/LI&gt;&lt;LI&gt;After that connect two vertices of polyline to nearest quadrant (same with the other 3 quadrants connecting to nearest two vertices of polyline, and making a closed 3dpolyline surface will be make extrusion and it will not extrude if it's not a&amp;nbsp; made with closed surface with single line).&amp;nbsp;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yashpn1805_0-1695065588018.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1268159iB45CB392873B4680/image-size/medium?v=v2&amp;amp;px=400" role="button" title="yashpn1805_0-1695065588018.png" alt="yashpn1805_0-1695065588018.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;The points which lies between two quadrants will be connect to the nearest vertex (same making closed surface single 3dpolyline).&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yashpn1805_1-1695065715079.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1268160i3A6605A45E5CA43E/image-size/medium?v=v2&amp;amp;px=400" role="button" title="yashpn1805_1-1695065715079.png" alt="yashpn1805_1-1695065715079.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yashpn1805_2-1695065739788.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1268161i3615AEEE957FB131/image-size/medium?v=v2&amp;amp;px=400" role="button" title="yashpn1805_2-1695065739788.png" alt="yashpn1805_2-1695065739788.png" /&gt;&lt;/span&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;Once all surfaces are created the than just extrude all surface with 1/4 inch thickness.&lt;BR /&gt;&lt;BR /&gt;The code I did is:&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;EM&gt;(defun c:S2CTRANS ()&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq circle (car (entsel "\nSelect a circle : "))) ; Select a circle&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq polyline (car (entsel "\nSelect a polyline: "))) ; Select a polyline&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq dxf-data1 (entget circle)) ; Get the DXF data of the circle&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq dxf-data2 (entget polyline)) ; Get the DXF data of the polyline&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq circleElevation (cdr (assoc 10 dxf-data1))) ; Extract the circle elevation&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq polylineElevation (cdr (assoc 38 dxf-data2))) ; Extract the polyline elevation&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq z1 (rtos (caddr circleElevation)))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq z2 (rtos polylineElevation))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (if (= z1 z2)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (alert "\nObjects have the same Elevation.\n")&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (PROGN&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (prompt "\nObjects have different Elevation.\n")&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (C:CONNVERTI)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; )&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; )&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (princ)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;)&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;(defun CONNVERTI ()&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq polyline (car (entsel "\nSelect a polyline: "))) ; Select a polyline&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq circle (car (entsel "\nSelect a circle: "))) ; Select a circle&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq dxf-data (entget circle)) ; Get the DXF data of the circle&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq circleData (cdr (assoc 10 dxf-data))) ; Extract elevation value&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq radius (cdr (assoc 40 dxf-data))) ; Extract radius&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq center (list (nth 0 circleData) (nth 1 circleData)))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq ele (nth 2 circleData))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq numSegments 20) ; number of segments circle will be divided into.&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp;(setq angleIncrement (/ (* 2.0 pi) numSegments)) ; Calculate the angle increment&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq angle 0.0) ; Initialize the angle&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; Create a list to store the 3D polyline points&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq polylinePoints '())&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; ; ; Create segments by specifying the end points on the circle&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (repeat numSegments&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq x (cos angle))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq y (sin angle))&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq endPoint (list (+ (car center) (* radius x))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&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;(+ (cadr center) (* radius y)))) ; Calculate the endpoint&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq xP (car endPoint))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq yP (cadr endPoint))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq point-entity (entmake (list '(0 . "POINT")&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; (cons 10 (list xP yP ele))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; (cons 8 "Layer1") ; Replace with your desired layer&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; )))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq polylinePoints (cons endPoint polylinePoints))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (setq angle (+ angle angleIncrement)) ; Update the angle for the next segment&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; )&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; (setq particularPoint (car polylinePoints))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; (princ particularPoint)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; (setq xP (car particularPoint))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; (setq yP (cadr particularPoint))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; (setq point-entity (entmake (list '(0 . "POINT")&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;(cons 10 (list xP yP ele))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&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; &amp;nbsp; &amp;nbsp; &amp;nbsp;(cons 8 "Layer1") ; Replace with your desired layer&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&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; &amp;nbsp; &amp;nbsp;)))&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (if (= polylineVertices numPoints)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (progn&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (setq i 0)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (repeat polylineVertices&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (setq pt1 (vlax-curve-getPointAtDist polyline i))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (setq pt2 (nth i polylinePoints))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (setq polylineToCirclePoints (cons pt1 polylineToCirclePoints))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (setq polylineToCirclePoints (cons pt2 polylineToCirclePoints))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (setq i (+ i 1))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; )&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; (progn&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (princ "The number of polyline vertices does not match the number of circle points.")&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (exit)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; &amp;nbsp; )&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; )&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; ; Create the 3D polyline&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (setq polyline3D (vlax-invoke (vla-get-activedocument (vlax-get-acad-object)) 'Add3DPoly polylineToCirclePoints))&lt;/EM&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (princ (strcat "Created a 3D polyline connecting the circle to the polyline."))&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;&amp;nbsp; (princ)&lt;/EM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;EM&gt;)&lt;/EM&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;BR /&gt;Thanks,&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Mon, 18 Sep 2023 19:38:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12249125#M23971</guid>
      <dc:creator>yashpn1805</dc:creator>
      <dc:date>2023-09-18T19:38:10Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12249126#M23972</link>
      <description>&lt;P&gt;The code above is not working and giving error: bad argument type: VLA-OBJECT nil&lt;/P&gt;&lt;P&gt;Autocad file for reference:&lt;/P&gt;</description>
      <pubDate>Mon, 18 Sep 2023 19:41:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12249126#M23972</guid>
      <dc:creator>yashpn1805</dc:creator>
      <dc:date>2023-09-18T19:41:44Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12249879#M23973</link>
      <description>&lt;P&gt;Pretty sure there is a lot of UNFOLD sheet metal programs out there, a Google should reveal, so get more shapes as a result.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One I found&amp;nbsp;&lt;A href="https://www.ant-ares.de/" target="_blank"&gt;ANTARES high-end computing (ant-ares.de)&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Sep 2023 04:51:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12249879#M23973</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2023-09-19T04:51:56Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12252012#M23974</link>
      <description>&lt;P&gt;There were a number of problems with your initial code. I modified it the best I could. You'll need to go back and adjust because with my modifications the 3dplines created look way too much (see attached dwg &amp;amp; lsp):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="paullimapa_0-1695158218816.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1268734i930A41AA88D76C34/image-size/medium?v=v2&amp;amp;px=400" role="button" title="paullimapa_0-1695158218816.png" alt="paullimapa_0-1695158218816.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;In Summary these were the major changes:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;c:S2CTRANS:&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Added localized variables &amp;amp; functions&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Added&amp;nbsp;CONNVERTI function into&amp;nbsp;c:S2CTRANS&lt;/EM&gt;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;(defun c:S2CTRANS 
  ; localize variables &amp;amp; functions
  (/ circle circleElevation CONNVERTI 
     dxf-data1 dxf-data2
     polyline polylineElevation z1 z2
  )&lt;/LI-CODE&gt;&lt;P&gt;Modified selection of circle &amp;amp; polyline to include filters:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;;  (setq circle (car (entsel "\nSelect a circle : "))) ; Select a circle
; selection filter for circle
  (while (not circle) 
   (princ"\nSelect Circle...")
   (setq circle (ssget "_+.:E:S" '((0 . "CIRCLE"))))
  )
  (setq circle (ssname circle 0))
;  (setq polyline (car (entsel "\nSelect a polyline: "))) ; Select a polyline
; selection filter for closed lwpline
  (while (not polyline) 
   (princ"\nSelect Closed Pline...")
   (setq polyline (ssget "_+.:E:S" '((0 . "LWPOLYLINE")(-4 . "&amp;amp;")(70 . 1))))
  )
  (setq polyline (ssname polyline 0))&lt;/LI-CODE&gt;&lt;P&gt;You don't have a function called&amp;nbsp;&lt;EM&gt;(C:CONNVERTI) &lt;/EM&gt;and instead of selecting circle &amp;amp; polyline again I included these are arguments passing them onto function (&lt;EM&gt;CONNVERTI)&lt;/EM&gt;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;    (PROGN
      (prompt "\nObjects have different Elevation.\n")
;      (C:CONNVERTI) ; this is not defined
      ; call CONNVERTI function passing circle &amp;amp; pline objects as arguments so don't need to select again
      (CONNVERTI circle polyline)
    )&lt;/LI-CODE&gt;&lt;P&gt;Again localized variables in CONNVERTI sub function:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;(defun CONNVERTI 
  ; localize variables &amp;amp; functions       
  (circle-arg polyline-arg
   /
   acadObj angleIncrement anglenum center circleData doc endPoint 
   dxf-data ele i numSegments 
   points point-entity polyline3D polylineToCirclePoints polylinePoints
   pt1 pt2 radius x y xP yP
  )&lt;/LI-CODE&gt;&lt;P&gt;Never use variable matching name of built-in Autolisp function ie: angle:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;  ; don't use function name as variable in this case angle is a built in autolisp function
;  (setq angle 0.0) ; Initialize the angle
  (setq anglenum 0.0) ; Initialize the angle&lt;/LI-CODE&gt;&lt;P&gt;For endpoint I included circle's Z elevation "ele" so all point lists have x y &amp;amp; z:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;    (setq endPoint (list (+ (car center) (* radius x))
                         (+ (cadr center) (* radius y))
                         ele                             ; include circle elevation as z
                   )
          
    ) ; Calculate the endpoint&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Then your code goes into a test of 2 variables which have yet to be defined so I took a guess here:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;; code missing polylineVertices &amp;amp; numPoints
; perhaps these?
  (setq polylineVertices (length polylinePoints))
  (setq numPoints numSegments)
  
  (if (= polylineVertices numPoints)
    (progn&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;Lastly I had to revised your entire section on creating the 3dpoly:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;  ; Create the 3D polyline
;  (setq polyline3D (vlax-invoke (vla-get-activedocument (vlax-get-acad-object)) 'Add3DPoly polylineToCirclePoints))
; Add3DPoly Method (ActiveX)
; https://help.autodesk.com/view/OARX/2023/ENU/?guid=GUID-21D7283A-552F-4DD8-BB4D-AEA1632186B9
  (setq acadObj (vlax-get-acad-object))
  (setq doc (vla-get-ActiveDocument acadObj))
  (setq modelSpace (vla-get-ModelSpace doc))
; https://www.afralisp.net/archive/methods/list/add3dpoly_method.htm
  ; "dissolve" the points into atoms with append:
  (setq polylineToCirclePoints (apply 'append polylineToCirclePoints))
  ; If number of coordinates in point list is not
  ; a multiple of 3 then a lwpolyline can't be made.
  ; If it's a multiple of 3 then put the point
  ; list into an array and pass it on to Add3DPoly:
  (if (= (rem (length polylineToCirclePoints) 3) 0)
    (progn
     (setq points (vlax-make-safearray vlax-vbdouble (cons 0 (- (length polylineToCirclePoints) 1))))
     (vlax-safearray-fill points polylineToCirclePoints)
     (setq polyline3D (vla-Add3DPoly modelSpace points))
     (princ (strcat "Created a 3D polyline connecting the circle to the polyline."))
    )
    (princ "\nError: 3DPoly could not be created")
  )&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 19 Sep 2023 21:29:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12252012#M23974</guid>
      <dc:creator>paullimapa</dc:creator>
      <dc:date>2023-09-19T21:29:18Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12252268#M23975</link>
      <description>&lt;P&gt;Puallimapa did you look at the link, the program looked very impressive. Have not tried it. Seemed way better than to try and reinvent the wheel.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Sep 2023 00:38:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12252268#M23975</guid>
      <dc:creator>Sea-Haven</dc:creator>
      <dc:date>2023-09-20T00:38:29Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12252291#M23976</link>
      <description>&lt;P&gt;Since the OP had questions on what is causing code errors I decided to focus on that instead&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Sep 2023 01:00:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12252291#M23976</guid>
      <dc:creator>paullimapa</dc:creator>
      <dc:date>2023-09-20T01:00:28Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12253320#M23977</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1137264"&gt;@paullimapa&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thats Amazing !!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Sep 2023 11:24:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12253320#M23977</guid>
      <dc:creator>smallƑish</dc:creator>
      <dc:date>2023-09-20T11:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12253323#M23978</link>
      <description>&lt;P&gt;Glad to have helped… cheers!!!&lt;/P&gt;</description>
      <pubDate>Wed, 20 Sep 2023 11:24:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12253323#M23978</guid>
      <dc:creator>paullimapa</dc:creator>
      <dc:date>2023-09-20T11:24:59Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12265148#M23979</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1137264"&gt;@paullimapa&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;I got to a point where I need to create a 3polyline (3dpolyline because the two points will be on certain elevation, like on square/rectangle, and third one on other elevation, on circle) connecting three pre-defined points and the line should be connecting those point in continuous way as it will be extruded in future, so if it's a closed surface made by continuous 3d polyline than it will extrude otherwise it will not.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Sep 2023 16:59:54 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12265148#M23979</guid>
      <dc:creator>yashpn1805</dc:creator>
      <dc:date>2023-09-25T16:59:54Z</dc:date>
    </item>
    <item>
      <title>Re: Making a square to circle duct transition.</title>
      <link>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12265156#M23980</link>
      <description>&lt;P&gt;Here is the code I have work on &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1137264"&gt;@paullimapa&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;defun&lt;/SPAN&gt;&lt;SPAN&gt; draw3DPolyline (point1 point2 point3)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;; Create a list of the DXF codes and values for the 3D polyline&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;setq&lt;/SPAN&gt;&lt;SPAN&gt; dxf-list (&lt;/SPAN&gt;&lt;SPAN&gt;list&lt;/SPAN&gt;&lt;SPAN&gt; '(&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"POLYLINE"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Entity type&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDbEntity"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"Layer1"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Layer name (replace with your desired layer)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDb3dPolyline"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;66&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Vertices follow flag&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;10&lt;/SPAN&gt; &lt;SPAN&gt;0.0&lt;/SPAN&gt; &lt;SPAN&gt;0.0&lt;/SPAN&gt; &lt;SPAN&gt;0.0&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Dummy point&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;70&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Polyline flag (3D polyline)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"VERTEX"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Entity type&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDbEntity"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"Layer1"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Layer name (same as polyline)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDb3dPolylineVertex"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;(&lt;/SPAN&gt;&lt;SPAN&gt;cons&lt;/SPAN&gt; &lt;SPAN&gt;10&lt;/SPAN&gt;&lt;SPAN&gt; point1) &lt;/SPAN&gt;&lt;SPAN&gt;; First vertex location&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;70&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;32&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Vertex flag (3D vertex)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"VERTEX"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Entity type&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDbEntity"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"Layer1"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Layer name (same as polyline)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDb3dPolylineVertex"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;(&lt;/SPAN&gt;&lt;SPAN&gt;cons&lt;/SPAN&gt; &lt;SPAN&gt;10&lt;/SPAN&gt;&lt;SPAN&gt; point2) &lt;/SPAN&gt;&lt;SPAN&gt;; Second vertex location&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;70&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;32&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Vertex flag (3D vertex)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"VERTEX"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Entity type&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDbEntity"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"Layer1"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Layer name (same as polyline)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDb3dPolylineVertex"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;(&lt;/SPAN&gt;&lt;SPAN&gt;cons&lt;/SPAN&gt; &lt;SPAN&gt;10&lt;/SPAN&gt;&lt;SPAN&gt; point3) &lt;/SPAN&gt;&lt;SPAN&gt;; Third vertex location&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;70&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;32&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Vertex flag (3D vertex)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"SEQEND"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Entity type&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;100&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"AcDbEntity"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Subclass marker&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;'(&lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt; . &lt;/SPAN&gt;&lt;SPAN&gt;"Layer1"&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;/SPAN&gt;&lt;SPAN&gt;; Layer name (same as polyline)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; ))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;; Create the 3D polyline entity from the DXF list&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;setq&lt;/SPAN&gt;&lt;SPAN&gt; polyline-entity (&lt;/SPAN&gt;&lt;SPAN&gt;entmake&lt;/SPAN&gt;&lt;SPAN&gt; dxf-list))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;; Return the entity name of the 3D polyline&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; polyline-entity &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;; Connect 3 points to make triangle&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;setq&lt;/SPAN&gt;&lt;SPAN&gt; point1 (&lt;/SPAN&gt;&lt;SPAN&gt;getpoint&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;setq&lt;/SPAN&gt;&lt;SPAN&gt; point2 (&lt;/SPAN&gt;&lt;SPAN&gt;getpoint&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;setq&lt;/SPAN&gt;&lt;SPAN&gt; point3 (&lt;/SPAN&gt;&lt;SPAN&gt;getpoint&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; (draw3DPolyline point1 point2 point3)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 25 Sep 2023 17:03:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/making-a-square-to-circle-duct-transition/m-p/12265156#M23980</guid>
      <dc:creator>yashpn1805</dc:creator>
      <dc:date>2023-09-25T17:03:04Z</dc:date>
    </item>
  </channel>
</rss>

