Lee Mac Posted July 19, 2009 Posted July 19, 2009 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)) Quote
cabltv1 Posted July 19, 2009 Author Posted July 19, 2009 Lee, I just tested it out and it works but seems to be putting in the wrong coordinates. Quote
Lee Mac Posted July 19, 2009 Posted July 19, 2009 Its not the "wrong" coordinates. Just the coordinates in Decimal. Quote
Lee Mac Posted July 19, 2009 Posted July 19, 2009 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)) Quote
cabltv1 Posted July 19, 2009 Author Posted July 19, 2009 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!!! Quote
cabltv1 Posted July 19, 2009 Author Posted July 19, 2009 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). 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. Quote
Lee Mac Posted July 19, 2009 Posted July 19, 2009 (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 Quote
cabltv1 Posted July 20, 2009 Author Posted July 20, 2009 Lee, With your help I have been able to adopt your code to other blocks. Thank you for all of your help! Quote
cabltv1 Posted July 20, 2009 Author Posted July 20, 2009 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? Quote
Lee Mac Posted July 20, 2009 Posted July 20, 2009 Would you still want it to be aligned to the pline, but just upside down? Quote
Lee Mac Posted July 20, 2009 Posted July 20, 2009 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)) Quote
cabltv1 Posted July 20, 2009 Author Posted July 20, 2009 Lee, It works perfectly! Thank you very much! Quote
Lee Mac Posted July 20, 2009 Posted July 20, 2009 Lee, It works perfectly! Thank you very much! No problem - I should think that now you could customise it for just about any block! Quote
rami_9630 Posted April 28, 2010 Posted April 28, 2010 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, Quote
Lee Mac Posted April 28, 2010 Posted April 28, 2010 I wrote the code a while back, perhaps use Extrim from the Express Tools Quote
rami_9630 Posted April 28, 2010 Posted April 28, 2010 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 ? Quote
alanjt Posted April 28, 2010 Posted April 28, 2010 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. Quote
rami_9630 Posted April 28, 2010 Posted April 28, 2010 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. Quote
Recommended Posts
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.