Author Topic: 3darraypath+scale.lsp  (Read 2997 times)

0 Members and 1 Guest are viewing this topic.

ribarm

  • Gator
  • Posts: 3274
  • Marko Ribar, architect
3darraypath+scale.lsp
« on: May 25, 2014, 05:09:53 AM »
Before I was absent, I remember someone asked for arraypath but with options to stretch or (I did it with scale) every next block entity along path... So this is now useful for better lofting procedure - I added also an option for incremental rotation... Starting block is arrayed along path so that Z axis is aligned with tangents of curve, and starting X axis is horizontal - that was logical option... So I hope this will help in lofting...

Code - Auto/Visual Lisp: [Select]
  1. (defun c:3darraypath+scale ( / *error* v^v adoc ss pea bl f pa n chD r scf chXYZ scfX scfY scfZ scfXY scfZY scfZX d dx k pt vx vy vz )
  2.  
  3.  
  4.   (defun *error* ( msg )
  5.     (if pea (setvar 'peditaccept pea))
  6.     (vla-endundomark adoc)
  7.     (if msg (prompt msg))
  8.     (princ)
  9.   )
  10.  
  11.   (defun v^v ( u v / cda )
  12.     (defun cda ( p ) (cdr (append p p)))
  13.     (mapcar '- (mapcar '* (cda u) (cdr (cda v))) (mapcar '* (cdr (cda u)) (cda v)) '(0.0 0.0 0.0))
  14.   )
  15.  
  16.   (setq pea (getvar 'peditaccept))
  17.   (setvar 'peditaccept 1)
  18.   (command "_.ucs" "_W")
  19.   (setq ss (ssadd))
  20.   (while  (not
  21.             (and
  22.               (eq (cdr (assoc 0 (entget (setq bl (car (entsel "\nPick block in 2D")))))) "INSERT")
  23.               (eq (vla-get-isxref (vla-item (vla-get-blocks adoc) (vla-get-effectivename (vlax-ename->vla-object bl)))) :vlax-false)
  24.             )
  25.           )
  26.   )
  27.   (while  (not
  28.             (wcmatch (cdr (assoc 0 (entget (setq pa (car (entsel "\nPick 3d path curve")))))) "*POLYLINE,SPLINE,LINE,ARC,CIRCLE,ELLIPSE,HELIX")
  29.           )
  30.   )
  31.  
  32.   (command "_.explode" bl)
  33.   (while (> (getvar 'cmdactive) 0) (command ""))
  34.   (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "*POLYLINE,LINE,ARC,SPLINE,ELLIPSE,CIRCLE")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  35.     (setq f t)
  36.   )
  37.   (command "_.undo" "_B")
  38.  
  39.   (initget 7)
  40.   (setq n (getint "\nSpecify number of blocks array segments : "))
  41.   (initget 1 "2D 3D")
  42.   (setq chD (getkword "\nScaling along path [2D/3D] : "))
  43.   (if (eq chD "3D")
  44.     (progn
  45.       (setq scf (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  46.       (if (null scf) (setq scf (/ 1.0 n)))
  47.     )
  48.     (progn
  49.       (initget 1 "X Y Z XY ZY ZX")
  50.       (setq chXYZ (getkword "\nScaling along path in direction of axis [X/Y/Z/XY/ZY/ZX] : "))
  51.       (cond
  52.         ( (eq chXYZ "X")
  53.           (setq scfX (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  54.           (if (null scfX) (setq scfX (/ 1.0 n)))
  55.         )
  56.         ( (eq chXYZ "Y")
  57.           (setq scfY (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  58.           (if (null scfY) (setq scfY (/ 1.0 n)))
  59.         )
  60.         ( (eq chXYZ "Z")
  61.           (setq scfZ (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  62.           (if (null scfZ) (setq scfZ (/ 1.0 n)))
  63.         )
  64.         ( (eq chXYZ "XY")
  65.           (setq scfXY (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  66.           (if (null scfXY) (setq scfXY (/ 1.0 n)))
  67.         )
  68.         ( (eq chXYZ "ZY")
  69.           (setq scfZY (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  70.           (if (null scfZY) (setq scfZY (/ 1.0 n)))
  71.         )
  72.         ( (eq chXYZ "ZX")
  73.           (setq scfZX (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  74.           (if (null scfZX) (setq scfZX (/ 1.0 n)))
  75.         )
  76.       )
  77.     )
  78.   )
  79.   (setq r (getdist (strcat "\nPick or specify rotation factor increment between 2 adjacent blocks in decimal degrees <" (rtos (/ 360.0 n) 2 15) "> : ")))
  80.   (if (null r) (setq r (/ 360.0 n)))
  81.   (setq dx (/ d (float n)))
  82.   (setq k -1)
  83.   (repeat (1+ n)
  84.     (setq pt (vlax-curve-getpointatdist pa (* dx (setq k (1+ k)))))
  85.     (setq vx (v^v vz '(0.0 0.0 1.0)))
  86.     (setq vy (v^v vz vx))
  87.     (command "_.ucs" "_3P" pt (mapcar '+ pt vx) (mapcar '+ pt vy))
  88.     (cond
  89.       ( (not (null scf))
  90.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) (+ 1.0 (* scf k)) (+ 1.0 (* scf k)) (* r k))
  91.         (if f
  92.           (progn
  93.             (command "_.explode" (entlast))
  94.             (while (> (getvar 'cmdactive) 0) (command ""))
  95.             (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "LINE,ARC")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  96.               (progn
  97.                 (command "_.pedit" "_M" (ssget "_P") "" "_J")
  98.                 (while (> (getvar 'cmdactive) 0) (command ""))
  99.               )
  100.             )
  101.           )
  102.         )
  103.         (ssadd (entlast) ss)
  104.       )
  105.       ( (not (null scfX))
  106.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  107.         (vla-put-XScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfX k)))
  108.         (if f
  109.           (progn
  110.             (command "_.explode" (entlast))
  111.             (while (> (getvar 'cmdactive) 0) (command ""))
  112.             (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "LINE,ARC")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  113.               (progn
  114.                 (command "_.pedit" "_M" (ssget "_P") "" "_J")
  115.                 (while (> (getvar 'cmdactive) 0) (command ""))
  116.               )
  117.             )
  118.           )
  119.         )
  120.         (ssadd (entlast) ss)
  121.       )
  122.       ( (not (null scfY))
  123.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  124.         (vla-put-YScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfY k)))
  125.         (if f
  126.           (progn
  127.             (command "_.explode" (entlast))
  128.             (while (> (getvar 'cmdactive) 0) (command ""))
  129.             (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "LINE,ARC")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  130.               (progn
  131.                 (command "_.pedit" "_M" (ssget "_P") "" "_J")
  132.                 (while (> (getvar 'cmdactive) 0) (command ""))
  133.               )
  134.             )
  135.           )
  136.         )
  137.         (ssadd (entlast) ss)
  138.       )
  139.       ( (not (null scfZ))
  140.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  141.         (vla-put-ZScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZ k)))
  142.         (if f
  143.           (progn
  144.             (command "_.explode" (entlast))
  145.             (while (> (getvar 'cmdactive) 0) (command ""))
  146.             (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "LINE,ARC")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  147.               (progn
  148.                 (command "_.pedit" "_M" (ssget "_P") "" "_J")
  149.                 (while (> (getvar 'cmdactive) 0) (command ""))
  150.               )
  151.             )
  152.           )
  153.         )
  154.         (ssadd (entlast) ss)
  155.       )
  156.       ( (not (null scfXY))
  157.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  158.         (vla-put-XScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfXY k)))
  159.         (vla-put-YScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfXY k)))
  160.         (if f
  161.           (progn
  162.             (command "_.explode" (entlast))
  163.             (while (> (getvar 'cmdactive) 0) (command ""))
  164.             (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "LINE,ARC")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  165.               (progn
  166.                 (command "_.pedit" "_M" (ssget "_P") "" "_J")
  167.                 (while (> (getvar 'cmdactive) 0) (command ""))
  168.               )
  169.             )
  170.           )
  171.         )
  172.         (ssadd (entlast) ss)
  173.       )
  174.       ( (not (null scfZY))
  175.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  176.         (vla-put-ZScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZY k)))
  177.         (vla-put-YScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZY k)))
  178.         (if f
  179.           (progn
  180.             (command "_.explode" (entlast))
  181.             (while (> (getvar 'cmdactive) 0) (command ""))
  182.             (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "LINE,ARC")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  183.               (progn
  184.                 (command "_.pedit" "_M" (ssget "_P") "" "_J")
  185.                 (while (> (getvar 'cmdactive) 0) (command ""))
  186.               )
  187.             )
  188.           )
  189.         )
  190.         (ssadd (entlast) ss)
  191.       )
  192.       ( (not (null scfZX))
  193.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  194.         (vla-put-ZScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZX k)))
  195.         (vla-put-XScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZX k)))
  196.         (if f
  197.           (progn
  198.             (command "_.explode" (entlast))
  199.             (while (> (getvar 'cmdactive) 0) (command ""))
  200.             (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "LINE,ARC")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  201.               (progn
  202.                 (command "_.pedit" "_M" (ssget "_P") "" "_J")
  203.                 (while (> (getvar 'cmdactive) 0) (command ""))
  204.               )
  205.             )
  206.           )
  207.         )
  208.         (ssadd (entlast) ss)
  209.       )
  210.     )
  211.     (command "_.ucs" "_P")
  212.   )
  213.   (sssetfirst nil ss)
  214.   (*error* nil)
  215. )
  216.  

Regards, M.R.
« Last Edit: May 28, 2014, 03:41:13 AM by ribarm »
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube

andy_lee

  • Newt
  • Posts: 147
Re: 3darraypath+scale.lsp
« Reply #1 on: May 25, 2014, 08:45:45 PM »
Before I was absent, I remember someone asked for arraypath but with options to stretch or (I did it with scale) every next block entity along path... So this is now useful for better lofting procedure - I added also an option for incremental rotation... Starting block is arrayed along path so that Z axis is aligned with tangents of curve, and starting X axis is horizontal - that was logical option... So I hope this will help in lofting...

Hi , ribarm, Why don't you upload demo ?
andy.
Best regards.

ribarm

  • Gator
  • Posts: 3274
  • Marko Ribar, architect
Re: 3darraypath+scale.lsp
« Reply #2 on: May 27, 2014, 05:14:01 AM »
Hi , ribarm, Why don't you upload demo ?

Here is my new version which creates regions as cross sections...
I'll upload small video gif demonstration...

Code - Auto/Visual Lisp: [Select]
  1. (defun c:3darraypath+scale-regs ( / *error* v^v foo qaf adoc ms ss sss ssp sspl i ent bl f pa n chD r scf chXYZ scfX scfY scfZ scfXY scfZY scfZX d dx k pt vx vy vz regl )
  2.  
  3.  
  4.   (defun *error* ( msg )
  5.     (if qaf (setvar 'qaflags qaf))
  6.     (vla-endundomark adoc)
  7.     (if msg (prompt msg))
  8.     (princ)
  9.   )
  10.  
  11.   (defun v^v ( u v / cda )
  12.     (defun cda ( p ) (cdr (append p p)))
  13.     (mapcar '- (mapcar '* (cda u) (cdr (cda v))) (mapcar '* (cdr (cda u)) (cda v)) '(0.0 0.0 0.0))
  14.   )
  15.  
  16.   (defun foo ( f )
  17.     (if f
  18.       (progn
  19.         (command "_.explode" (entlast))
  20.         (while (> (getvar 'cmdactive) 0) (command ""))
  21.         (setq ssp (ssget "_P"))
  22.         (setq sspl (ssadd))
  23.         (setq i -1)
  24.         (while (setq ent (ssname ssp (setq i (1+ i))))
  25.           (if (wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE")
  26.             (progn
  27.               (ssadd ent sspl)
  28.               (ssdel ent ssp)
  29.             )
  30.           )
  31.         )
  32.         (cond
  33.           ( (eq (sslength sspl) 1)
  34.             (command "_.explode" sspl)
  35.             (while (> (getvar 'cmdactive) 0) (command ""))
  36.             (setq i -1)
  37.             (while (setq ent (ssname (ssget "_P") (setq i (1+ i))))
  38.               (ssadd ent ssp)
  39.             )
  40.           )
  41.           ( (> (sslength sspl) 1)
  42.             (setvar 'qaflags 1)
  43.             (command "_.explode" sspl)
  44.             (while (> (getvar 'cmdactive) 0) (command ""))
  45.             (setvar 'qaflags 0)
  46.             (setq i -1)
  47.             (while (setq ent (ssname (ssget "_P") (setq i (1+ i))))
  48.               (ssadd ent ssp)
  49.             )
  50.           )
  51.         )
  52.         (setq regl (vlax-invoke ms 'AddRegion (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ssp))))))
  53.         (mapcar 'entdel (vl-remove-if 'listp (mapcar 'cadr (ssnamex ssp))))
  54.         (setq sss (ssadd))
  55.         (foreach reg regl
  56.           (ssadd (vlax-vla-object->ename reg) sss)
  57.         )
  58.         (command "_.union" sss "")
  59.         (ssadd (entlast) ss)
  60.       )
  61.     )
  62.   )
  63.  
  64.   (setq qaf (getvar 'qaflags))
  65.   (setq ms (vlax-get adoc (if (= 1 (getvar 'cvport)) 'paperspace 'modelspace)))
  66.   (command "_.ucs" "_W")
  67.   (setq ss (ssadd))
  68.   (while  (not
  69.             (and
  70.               (eq (cdr (assoc 0 (entget (setq bl (car (entsel "\nPick block in 2D")))))) "INSERT")
  71.               (eq (vla-get-isxref (vla-item (vla-get-blocks adoc) (vla-get-effectivename (vlax-ename->vla-object bl)))) :vlax-false)
  72.             )
  73.           )
  74.   )
  75.   (while  (not
  76.             (wcmatch (cdr (assoc 0 (entget (setq pa (car (entsel "\nPick 3d path curve")))))) "*POLYLINE,SPLINE,LINE,ARC,CIRCLE,ELLIPSE,HELIX")
  77.           )
  78.   )
  79.  
  80.   (command "_.explode" bl)
  81.   (while (> (getvar 'cmdactive) 0) (command ""))
  82.   (if (vl-every '(lambda ( x ) (wcmatch (cdr (assoc 0 (entget x))) "*POLYLINE,LINE,ARC,SPLINE,ELLIPSE,CIRCLE")) (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_P")))))
  83.     (setq f t)
  84.   )
  85.   (command "_.undo" "_B")
  86.  
  87.   (initget 7)
  88.   (setq n (getint "\nSpecify number of blocks array segments : "))
  89.   (initget 1 "2D 3D")
  90.   (setq chD (getkword "\nScaling along path [2D/3D] : "))
  91.   (if (eq chD "3D")
  92.     (progn
  93.       (setq scf (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  94.       (if (null scf) (setq scf (/ 1.0 n)))
  95.     )
  96.     (progn
  97.       (initget 1 "X Y Z XY ZY ZX")
  98.       (setq chXYZ (getkword "\nScaling along path in direction of axis [X/Y/Z/XY/ZY/ZX] : "))
  99.       (cond
  100.         ( (eq chXYZ "X")
  101.           (setq scfX (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  102.           (if (null scfX) (setq scfX (/ 1.0 n)))
  103.         )
  104.         ( (eq chXYZ "Y")
  105.           (setq scfY (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  106.           (if (null scfY) (setq scfY (/ 1.0 n)))
  107.         )
  108.         ( (eq chXYZ "Z")
  109.           (setq scfZ (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  110.           (if (null scfZ) (setq scfZ (/ 1.0 n)))
  111.         )
  112.         ( (eq chXYZ "XY")
  113.           (setq scfXY (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  114.           (if (null scfXY) (setq scfXY (/ 1.0 n)))
  115.         )
  116.         ( (eq chXYZ "ZY")
  117.           (setq scfZY (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  118.           (if (null scfZY) (setq scfZY (/ 1.0 n)))
  119.         )
  120.         ( (eq chXYZ "ZX")
  121.           (setq scfZX (getdist (strcat "\nPick or specify scale factor increment between 2 adjacent blocks <" (rtos (/ 1.0 n) 2 15) "> : ")))
  122.           (if (null scfZX) (setq scfZX (/ 1.0 n)))
  123.         )
  124.       )
  125.     )
  126.   )
  127.   (setq r (getdist (strcat "\nPick or specify rotation factor increment between 2 adjacent blocks in decimal degrees <" (rtos (/ 360.0 n) 2 15) "> : ")))
  128.   (if (null r) (setq r (/ 360.0 n)))
  129.   (setq dx (/ d (float n)))
  130.   (setq k -1)
  131.   (repeat (1+ n)
  132.     (setq pt (vlax-curve-getpointatdist pa (* dx (setq k (1+ k)))))
  133.     (setq vx (v^v vz '(0.0 0.0 1.0)))
  134.     (setq vy (v^v vz vx))
  135.     (command "_.ucs" "_3P" pt (mapcar '+ pt vx) (mapcar '+ pt vy))
  136.     (cond
  137.       ( (not (null scf))
  138.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) (+ 1.0 (* scf k)) (+ 1.0 (* scf k)) (* r k))
  139.         (foo f)
  140.       )
  141.       ( (not (null scfX))
  142.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  143.         (vla-put-XScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfX k)))
  144.         (foo f)
  145.       )
  146.       ( (not (null scfY))
  147.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  148.         (vla-put-YScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfY k)))
  149.         (foo f)
  150.       )
  151.       ( (not (null scfZ))
  152.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  153.         (vla-put-ZScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZ k)))
  154.         (foo f)
  155.       )
  156.       ( (not (null scfXY))
  157.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  158.         (vla-put-XScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfXY k)))
  159.         (vla-put-YScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfXY k)))
  160.         (foo f)
  161.       )
  162.       ( (not (null scfZY))
  163.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  164.         (vla-put-ZScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZY k)))
  165.         (vla-put-YScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZY k)))
  166.         (foo f)
  167.       )
  168.       ( (not (null scfZX))
  169.         (command "_.insert" (cdr (assoc 2 (entget bl))) '(0.0 0.0 0.0) 1.0 1.0 (* r k))
  170.         (vla-put-ZScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZX k)))
  171.         (vla-put-XScaleFactor (vlax-ename->vla-object (entlast)) (+ 1.0 (* scfZX k)))
  172.         (foo f)
  173.       )
  174.     )
  175.     (command "_.ucs" "_P")
  176.   )
  177.   (sssetfirst nil ss)
  178.   (*error* nil)
  179. )
  180.  
« Last Edit: May 27, 2014, 06:16:31 PM by ribarm »
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube

ribarm

  • Gator
  • Posts: 3274
  • Marko Ribar, architect
Re: 3darraypath+scale.lsp
« Reply #3 on: May 27, 2014, 06:18:25 PM »
I've modified my last code to make it more concise, but functionality remained...

M.R.
Marko Ribar, d.i.a. (graduated engineer of architecture)

:)

M.R. on Youtube