Jump to content

Recommended Posts

Posted

I see:

 

(defun c:brklin (/ *error* bNme bLen vl ov doc
                   spc pt ent aVal lAng bObj)
 (vl-load-com)

 (setq bNme "Test Block")  ;; <<-- Block Name
 (setq bLen  90)           ;; <<-- Block Length

 (defun *error* (msg)
   (if ov (mapcar 'setvar vl ov))
   (if (not
         (wcmatch
           (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
     (princ (strcat "\n<< Error: " msg " >>")))
   (princ))

 (setq vl '("CMDECHO" "OSMODE")
       ov (mapcar 'getvar vl))
 (or (eq 512 (logand 512 (getvar 'OSMODE)))
     (setvar 'OSMODE (+ (getvar 'OSMODE) 512)))

 (setq doc (vla-get-ActiveDocument
             (vlax-get-Acad-Object))
       spc (if (zerop (vla-get-activespace doc))
             (if (= (vla-get-mspace doc) :vlax-true)
               (vla-get-modelspace doc)
               (vla-get-paperspace doc))
             (vla-get-modelspace doc)))

 (cond ((not (snvalid bNme))
        (princ "\n** Block Name Invalid **"))
       ((not (or (tblsearch "BLOCK" bNme)
                 (setq bNme (findfile (strcat bNme ".dwg")))))
        (princ "\n** Block Not Found **"))
       ((not (numberp bLen))
        (princ "\n** Block Length not Numerical **"))
       (t
        

        (while
          (progn
            (setq pt (getpoint "\nSelect Point for Block: "))
            (cond ((not pt) nil)
                  ((setq ent (car (nentselp pt)))
                   (if (not
                         (wcmatch
                           (cdr (assoc 0 (entget ent))) "*LINE"))
                     (princ "\n** Cannot Align to that Object **")))
                  (t (princ "\n** Point Does not Lie on an Object **")))))

        (if ent
          (progn
            (setq aVal (getstring t "\nTAP_VAL: "))
            (setq lAng
              (angle '(0 0 0)
                (vlax-curve-getFirstDeriv ent
                  (vlax-curve-getParamatPoint ent pt))))
                (cond ((and (> lAng (/ pi 2)) (<= lAng pi))
                       (setq lAng (- lAng pi)))
                      ((and (> lAng pi) (<= lAng (/ (* 3 pi) 2)))
                       (setq lAng (+ lAng pi))))
            (setq pt1 (polar pt lAng (/ bLen 2.))
                  pt2 (polar pt (+ lAng pi) (/ bLen 2.)))
            (mapcar 'setvar vl '(0 0))
            (if (vl-catch-all-error-p
                  (vl-catch-all-apply
                    (function
                      (lambda ( )
                        (setq bObj
                          (vla-InsertBlock spc
                            (vlax-3D-point pt) bNme 1. 1. 1. lAng))))))
              (princ "\n** Error Inserting Block **")
              (progn
                (foreach att (vlax-safearray->list
                               (vlax-variant-value
                                 (vla-getAttributes bObj)))
                  (cond ((eq "COORD" (vla-get-TagString att))
                         (vla-put-TextString att
                           (strcat
                             (rtos (car pt) 2 2) (chr 44)
                             (rtos (cadr pt) 2 2) (chr 44)
                             (rtos (caddr pt) 2 2))))
                        ((eq "TAP_VAL" (vla-get-TagString att))
                         (vla-put-rotation att 0.0)
                         (vla-put-TextString att aVal))))
                (command "_.break" (list ent pt) "_F" pt1 pt2)))))))
 (mapcar 'setvar vl ov)
 (princ))

  • Replies 84
  • Created
  • Last Reply

Top Posters In This Topic

  • Lee Mac

    35

  • cabltv1

    22

  • The Buzzard

    20

  • rami_9630

    5

Top Posters In This Topic

Posted Images

Posted

Lee,

 

I just tested it out and it works but seems to be putting in the wrong coordinates.

coords10.jpg

Posted

Its not the "wrong" coordinates.

 

Just the coordinates in Decimal.

Posted

Format changed (I'm not a mind reader)...

 

(defun c:brklin (/ *error* bNme bLen vl ov doc
                   spc pt ent aVal lAng bObj)
 (vl-load-com)

 (setq bNme "Test")        ;; <<-- Block Name
 (setq bLen  90)           ;; <<-- Block Length

 (defun *error* (msg)
   (if ov (mapcar 'setvar vl ov))
   (if (not
         (wcmatch
           (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
     (princ (strcat "\n<< Error: " msg " >>")))
   (princ))

 (setq vl '("CMDECHO" "OSMODE")
       ov (mapcar 'getvar vl))
 (or (eq 512 (logand 512 (getvar 'OSMODE)))
     (setvar 'OSMODE (+ (getvar 'OSMODE) 512)))

 (setq doc (vla-get-ActiveDocument
             (vlax-get-Acad-Object))
       spc (if (zerop (vla-get-activespace doc))
             (if (= (vla-get-mspace doc) :vlax-true)
               (vla-get-modelspace doc)
               (vla-get-paperspace doc))
             (vla-get-modelspace doc)))

 (cond ((not (snvalid bNme))
        (princ "\n** Block Name Invalid **"))
       ((not (or (tblsearch "BLOCK" bNme)
                 (setq bNme (findfile (strcat bNme ".dwg")))))
        (princ "\n** Block Not Found **"))
       ((not (numberp bLen))
        (princ "\n** Block Length not Numerical **"))
       (t
        

        (while
          (progn
            (setq pt (getpoint "\nSelect Point for Block: "))
            (cond ((not pt) nil)
                  ((setq ent (car (nentselp pt)))
                   (if (not
                         (wcmatch
                           (cdr (assoc 0 (entget ent))) "*LINE"))
                     (princ "\n** Cannot Align to that Object **")))
                  (t (princ "\n** Point Does not Lie on an Object **")))))

        (if ent
          (progn
            (setq aVal (getstring t "\nTAP_VAL: "))
            (setq lAng
              (angle '(0 0 0)
                (vlax-curve-getFirstDeriv ent
                  (vlax-curve-getParamatPoint ent pt))))
                (cond ((and (> lAng (/ pi 2)) (<= lAng pi))
                       (setq lAng (- lAng pi)))
                      ((and (> lAng pi) (<= lAng (/ (* 3 pi) 2)))
                       (setq lAng (+ lAng pi))))
            (setq pt1 (polar pt lAng (/ bLen 2.))
                  pt2 (polar pt (+ lAng pi) (/ bLen 2.)))
            (mapcar 'setvar vl '(0 0))
            (if (vl-catch-all-error-p
                  (vl-catch-all-apply
                    (function
                      (lambda ( )
                        (setq bObj
                          (vla-InsertBlock spc
                            (vlax-3D-point pt) bNme 1. 1. 1. lAng))))))
              (princ "\n** Error Inserting Block **")
              (progn
                (foreach att (vlax-safearray->list
                               (vlax-variant-value
                                 (vla-getAttributes bObj)))
                  (cond ((eq "COORD" (vla-get-TagString att))
                         (vla-put-TextString att
                           (strcat
                             (rtos (car pt) 3 2) (chr 44)
                             (rtos (cadr pt) 3 2) (chr 44)
                             (rtos (caddr pt) 3 2))))
                        ((eq "TAP_VAL" (vla-get-TagString att))
                         (vla-put-rotation att 0.0)
                         (vla-put-TextString att aVal))))
                (command "_.break" (list ent pt) "_F" pt1 pt2)))))))
 (mapcar 'setvar vl ov)
 (princ))

Posted

Lee,

 

My fault. I appologize for the confussion.

 

I am sorry for taking up so much of your time.

 

The revised code works perfectly now.

Thank you very much!!!

Posted

Lee,

 

I found many uses for the code you created.

 

I have been modifying your code to use on other blocks. Some of the blocks I am trying to use it on have different insertion points and attributes that are not numbers (letters).

insertion_point.jpg

 

Could you point out which parts of the code I could change to make it work with the block above. I believe the insertion point is a quad.

Posted

(defun c:brklin (/ *error* bNme bLen vl ov doc
                   spc pt ent aVal lAng bObj)
 (vl-load-com)

[color=Red][b]  (setq bNme "Test")        ;; <<-- Block Name
 (setq bLen  90)           ;; <<-- Block Length[/b][/color]

 (defun *error* (msg)
   (if ov (mapcar 'setvar vl ov))
   (if (not
         (wcmatch
           (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
     (princ (strcat "\n<< Error: " msg " >>")))
   (princ))

 (setq vl '("CMDECHO" "OSMODE")
       ov (mapcar 'getvar vl))
 (or (eq 512 (logand 512 (getvar 'OSMODE)))
     (setvar 'OSMODE (+ (getvar 'OSMODE) 512)))

 (setq doc (vla-get-ActiveDocument
             (vlax-get-Acad-Object))
       spc (if (zerop (vla-get-activespace doc))
             (if (= (vla-get-mspace doc) :vlax-true)
               (vla-get-modelspace doc)
               (vla-get-paperspace doc))
             (vla-get-modelspace doc)))

 (cond ((not (snvalid bNme))
        (princ "\n** Block Name Invalid **"))
       ((not (or (tblsearch "BLOCK" bNme)
                 (setq bNme (findfile (strcat bNme ".dwg")))))
        (princ "\n** Block Not Found **"))
       ((not (numberp bLen))
        (princ "\n** Block Length not Numerical **"))
       (t
        

        (while
          (progn
            (setq pt (getpoint "\nSelect Point for Block: "))
            (cond ((not pt) nil)
                  ((setq ent (car (nentselp pt)))
                   (if (not
                         (wcmatch
                           (cdr (assoc 0 (entget ent))) "*LINE"))
                     (princ "\n** Cannot Align to that Object **")))
                  (t (princ "\n** Point Does not Lie on an Object **")))))

        (if ent
          (progn
[b][color=SeaGreen]             (setq aVal (getstring t "\nTAP_VAL: "))[/color][/b]
            (setq lAng
              (angle '(0 0 0)
                (vlax-curve-getFirstDeriv ent
                  (vlax-curve-getParamatPoint ent pt))))
                (cond ((and (> lAng (/ pi 2)) (<= lAng pi))
                       (setq lAng (- lAng pi)))
                      ((and (> lAng pi) (<= lAng (/ (* 3 pi) 2)))
                       (setq lAng (+ lAng pi))))
[b][color=Orange]             (setq pt1 (polar pt lAng (/ bLen 2.))
                  pt2 (polar pt (+ lAng pi) (/ bLen 2.)))[/color][/b]
            (mapcar 'setvar vl '(0 0))
            (if (vl-catch-all-error-p
                  (vl-catch-all-apply
                    (function
                      (lambda ( )
                        (setq bObj
                          (vla-InsertBlock spc
                            (vlax-3D-point pt) bNme 1. 1. 1. lAng))))))
              (princ "\n** Error Inserting Block **")
              (progn
                (foreach att (vlax-safearray->list
                               (vlax-variant-value
                                 (vla-getAttributes bObj)))
                  (cond ((eq [color=Blue][b]"COORD"[/b][/color] (vla-get-TagString att))
                         (vla-put-TextString att
                           (strcat
                             (rtos (car pt) 3 2) (chr 44)
                             (rtos (cadr pt) 3 2) (chr 44)
                             (rtos (caddr pt) 3 2))))
                        ((eq [color=SeaGreen][b]"TAP_VAL"[/b][/color] (vla-get-TagString att))
                         (vla-put-rotation att [b][color=SeaGreen]0.0[/color][/b])
                         (vla-put-TextString att aVal))))
                (command "_.break" (list ent pt) "_F" [b][color=Orange]pt1 pt2[/color][/b])))))))
 (mapcar 'setvar vl ov)
 (princ))

 

Ok, so to customise:

 

  • Block Name and Block length will of course need to be altered.

  • "COORD" Tag is the attribute tag that contains the insertion point.

  • "TAP_VAL" is the attribute tag that contains the string as prompted for earlier in the code. The Rotation for this attribute is also highlighted.

  • The point calculation is also highlighted. Currently, it calculates two points which are either side of the insertion point, at a displacement of half the Block Length. These points are then later referenced in the "break" command.

To customise
this section you would need to work out what points you want to break at and alter the point calculation as necessary. You may only need to calculate one point and use the insertion point (pt) as the other break point in the break command.

 

Hope this helps, but if you have any other questions, just ask.

 

Lee

Posted

Lee,

 

With your help I have been able to adopt your code to other blocks.

 

Thank you for all of your help!

Posted

Lee,

 

One other question.

I have a block that needs to be rotated 180 degrees before the Pline is broken.

Where in the code would I modify the code to rotate the block 180 degrees after clicking on the Pline but before breaking the Pline?

Posted

Would you still want it to be aligned to the pline, but just upside down?

Posted

Ok, take a look at this, I have added 180 degrees (pi) to the block rotation:

 

(defun c:brklin (/ *error* bNme bLen vl ov doc
                   spc pt ent aVal lAng bObj)
 (vl-load-com)

 (setq bNme "Test")        ;; <<-- Block Name
 (setq bLen  90)           ;; <<-- Block Length

 (defun *error* (msg)
   (if ov (mapcar 'setvar vl ov))
   (if (not
         (wcmatch
           (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
     (princ (strcat "\n<< Error: " msg " >>")))
   (princ))

 (setq vl '("CMDECHO" "OSMODE")
       ov (mapcar 'getvar vl))
 (or (eq 512 (logand 512 (getvar 'OSMODE)))
     (setvar 'OSMODE (+ (getvar 'OSMODE) 512)))

 (setq doc (vla-get-ActiveDocument
             (vlax-get-Acad-Object))
       spc (if (zerop (vla-get-activespace doc))
             (if (= (vla-get-mspace doc) :vlax-true)
               (vla-get-modelspace doc)
               (vla-get-paperspace doc))
             (vla-get-modelspace doc)))

 (cond ((not (snvalid bNme))
        (princ "\n** Block Name Invalid **"))
       ((not (or (tblsearch "BLOCK" bNme)
                 (setq bNme (findfile (strcat bNme ".dwg")))))
        (princ "\n** Block Not Found **"))
       ((not (numberp bLen))
        (princ "\n** Block Length not Numerical **"))
       (t
        

        (while
          (progn
            (setq pt (getpoint "\nSelect Point for Block: "))
            (cond ((not pt) nil)
                  ((setq ent (car (nentselp pt)))
                   (if (not
                         (wcmatch
                           (cdr (assoc 0 (entget ent))) "*LINE"))
                     (princ "\n** Cannot Align to that Object **")))
                  (t (princ "\n** Point Does not Lie on an Object **")))))

        (if ent
          (progn
            (setq aVal (getstring t "\nTAP_VAL: "))
            (setq lAng
              (angle '(0 0 0)
                (vlax-curve-getFirstDeriv ent
                  (vlax-curve-getParamatPoint ent pt))))
                (cond ((and (> lAng (/ pi 2)) (<= lAng pi))
                       (setq lAng (- lAng pi)))
                      ((and (> lAng pi) (<= lAng (/ (* 3 pi) 2)))
                       (setq lAng (+ lAng pi))))
            (setq pt1 (polar pt lAng (/ bLen 2.))
                  pt2 (polar pt (+ lAng pi) (/ bLen 2.)))
            (mapcar 'setvar vl '(0 0))
            (if (vl-catch-all-error-p
                  (vl-catch-all-apply
                    (function
                      (lambda ( )
                        (setq bObj
                          (vla-InsertBlock spc
                            (vlax-3D-point pt) bNme 1. 1. 1. [color=Red][b](+ lAng pi)[/b][/color]))))))
              (princ "\n** Error Inserting Block **")
              (progn
                (foreach att (vlax-safearray->list
                               (vlax-variant-value
                                 (vla-getAttributes bObj)))
                  (cond ((eq "COORD" (vla-get-TagString att))
                         (vla-put-TextString att
                           (strcat
                             (rtos (car pt) 3 2) (chr 44)
                             (rtos (cadr pt) 3 2) (chr 44)
                             (rtos (caddr pt) 3 2))))
                        ((eq "TAP_VAL" (vla-get-TagString att))
                         (vla-put-rotation att 0.0)
                         (vla-put-TextString att aVal))))
                (command "_.break" (list ent pt) "_F" pt1 pt2)))))))
 (mapcar 'setvar vl ov)
 (princ))

Posted

Lee,

 

It works perfectly!

 

Thank you very much!

Posted
Lee,

 

It works perfectly!

 

Thank you very much!

 

No problem - I should think that now you could customise it for just about any block! :)

  • 9 months later...
Posted
Not sure if this would be of any use Alan:

 

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] trim_Obj [b][color=RED]([/color][/b]Obj [b][color=BLUE]/[/color][/b] MiP MaP pt ss Objlst x lst[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]vla-getBoundingBox[/color][/b] Obj [b][color=DARKRED]'[/color][/b]MiP [b][color=DARKRED]'[/color][/b]MaP[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-safearray->list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] MiP MaP[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_C"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]ssdel[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-vla-object->ename[/color][/b] Obj[b][color=RED])[/color][/b] ss[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]sslength[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Objlst [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b]
                    [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]listp[/color][/b]
                      [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]vla-move[/color][/b] x
             [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#009900]1[/color][/b]e99[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]vla-move[/color][/b] x
             [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#009900]-1[/color][/b]e99[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] Objlst [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] Objlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt
             [b][color=RED]([/color][/b]vlax-list->3D-point
               [b][color=RED]([/color][/b][b][color=BLUE]vlax-invoke[/color][/b] Obj
                 [b][color=DARKRED]'[/color][/b]IntersectWith x [b][color=Blue]acExtendNone[/color][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst
           [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-vla-object->ename[/color][/b] x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] Objlst [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] Objlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.break"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] [b][color=#ff00ff]"_F"[/color][/b] [b][color=#ff00ff]"_non"[/color][/b]
                    [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#ff00ff]"_non"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     
[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] vlax-list->3D-point [b][color=RED]([/color][/b]lst[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] lst
   [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]caddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b]vlax-list->3D-point [b][color=RED]([/color][/b][b][color=BLUE]cdddr[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:test [b][color=RED]([/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b]trim_obj [b][color=RED]([/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entsel[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
           

[ATTACH]13205[/ATTACH] [ATTACH]13208[/ATTACH]

 

Has some obvious limitations.

 

 

Lee

 

Hi Lee,

i need this code to work the same way it appears in the pictures you attached, like, i pick a block then any polyline or line inside the block will be erased.

i don't seem to get same results. is there anything i can do to fix this

 

Thanks,

Posted

I wrote the code a while back, perhaps use Extrim from the Express Tools :)

Posted
I wrote the code a while back, perhaps use Extrim from the Express Tools :)

 

in fact what i need is making a bend where 2 pipes intersect. im thiking of a lisp routine that prompt the user to select the two lines then draw an arc in the intersection. am i asking for too much ?

Posted
in fact what i need is making a bend where 2 pipes intersect. im thiking of a lisp routine that prompt the user to select the two lines then draw an arc in the intersection. am i asking for too much ?

Fillet with radius.

Posted
Fillet with radius.

 

sorry i wasn't clear enough, the pipes not connected, i just need the bend to show that they are one above another.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...