akgbmb Posted January 3, 2017 Posted January 3, 2017 hi happy new year i m looking command for convert select line into double line. select line should be offset into both side at half of entered value & selected line should be delete. list need to following manner command: >select line: >distance between lines: Pls support me abilash Quote
Tharwat Posted January 3, 2017 Posted January 3, 2017 Try this: (defun c:Test ( / ss of in sn ) ;; Tharwat - 03.Jan.2017 ;; (if (and (setq ss (ssget "_:L" '((0 . "LINE")))) (setq of (getdist "\nSpecify offset distance :")) ) (while (setq sn (ssname ss 0)) (mapcar '(lambda (d) (vlax-invoke (vlax-ename->vla-object sn) 'offset (eval d))) '((/ of 2.) (- (/ of 2.))) ) (ssdel sn ss) (entdel sn) ) ) (princ) ) (vl-load-com) Quote
David Bethel Posted January 3, 2017 Posted January 3, 2017 In Vanilla AutoLisp : [b][color=BLACK]([/color][/b]defun c:dline [b][color=FUCHSIA]([/color][/b]/ od hd ss i en ed p1 p2 an a9 lt tk cl[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]initget 6[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq od [b][color=NAVY]([/color][/b]getdist [b][color=MAROON]([/color][/b]strcat [color=#2f4f4f]"\nOffset Distance <"[/color] [b][color=GREEN]([/color][/b]rtos [b][color=BLUE]([/color][/b]getvar [color=#2f4f4f]"OFFSETDIST"[/color][b][color=BLUE])[/color][/b] 2 2[b][color=GREEN])[/color][/b] [color=#2f4f4f]">: "[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]or od [b][color=NAVY]([/color][/b]setq od [b][color=MAROON]([/color][/b]getvar [color=#2f4f4f]"OFFSETDIST"[/color][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setq hd [b][color=NAVY]([/color][/b]* od 0.5[b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]setvar [color=#2f4f4f]"OFFSETDIST"[/color] od[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]while [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"LINE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq i 0[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b] p1 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p2 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] an [b][color=GREEN]([/color][/b]angle p1 p2[b][color=GREEN])[/color][/b] a9 [b][color=GREEN]([/color][/b]* pi 0.5[b][color=GREEN])[/color][/b] lt [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 6 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 6 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [color=#2f4f4f]"BYLAYER"[/color][b][color=GREEN])[/color][/b] tk [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 39 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 39 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] 0[b][color=GREEN])[/color][/b] cl [b][color=GREEN]([/color][/b]if [b][color=BLUE]([/color][/b]assoc 62 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cdr [b][color=RED]([/color][/b]assoc 62 ed[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] 256[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]assoc 0 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 6 lt[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 10 [b][color=RED]([/color][/b]polar p1 [b][color=PURPLE]([/color][/b]+ an a9[b][color=PURPLE])[/color][/b] hd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 11 [b][color=RED]([/color][/b]polar p2 [b][color=PURPLE]([/color][/b]+ an a9[b][color=PURPLE])[/color][/b] hd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 39 tk[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 62 cl[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 210 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]assoc 0 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 6 lt[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 10 [b][color=RED]([/color][/b]polar p1 [b][color=PURPLE]([/color][/b]- an a9[b][color=PURPLE])[/color][/b] hd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 11 [b][color=RED]([/color][/b]polar p2 [b][color=PURPLE]([/color][/b]- an a9[b][color=PURPLE])[/color][/b] hd[b][color=RED])[/color][/b][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 39 tk[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 62 cl[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 210 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entdel en[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq i [b][color=GREEN]([/color][/b]1+ i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]redraw[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] -David Quote
akgbmb Posted January 3, 2017 Author Posted January 3, 2017 thank you boss.....its real support....its working Quote
akgbmb Posted January 3, 2017 Author Posted January 3, 2017 dear David Bethel & Tharwat your lisp working. both lisp are usefull for me thank you for your support Quote
Tharwat Posted January 3, 2017 Posted January 3, 2017 Happy to help - and you are most welcome. Quote
Lee Mac Posted January 3, 2017 Posted January 3, 2017 Here's another method, compatible with UCS planes parallel to the WCS plane: [color=GREEN];; Line to Double-Line - Lee Mac[/color] ([color=BLUE]defun[/color] c:l2dl ( [color=BLUE]/[/color] dis enx hed idx lst sel tmp vec ) ([color=BLUE]if[/color] ([color=BLUE]minusp[/color] ([color=BLUE]setq[/color] dis ([color=BLUE]getvar[/color] 'offsetdist))) ([color=BLUE]setq[/color] dis 1.0)) ([color=BLUE]initget[/color] 6) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] tmp ([color=BLUE]getdist[/color] ([color=BLUE]strcat[/color] [color=MAROON]"\nSpecify line separation <"[/color] ([color=BLUE]rtos[/color] dis) [color=MAROON]">: "[/color]))) ([color=BLUE]setvar[/color] 'offsetdist ([color=BLUE]setq[/color] dis tmp)) ) ([color=BLUE]setq[/color] dis ([color=BLUE]/[/color] dis 2.0)) ([color=BLUE]if[/color] ([color=BLUE]setq[/color] sel ([color=BLUE]ssget[/color] [color=MAROON]"_:L"[/color] '((0 . [color=MAROON]"LINE"[/color])))) ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] idx ([color=BLUE]sslength[/color] sel)) ([color=BLUE]setq[/color] enx ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] sel ([color=BLUE]setq[/color] idx ([color=BLUE]1-[/color] idx)))) hed ([color=BLUE]cons[/color] '(0 . [color=MAROON]"LINE"[/color]) (LM:defaultprops enx)) lst ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( k ) ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] k enx))) '(10 11)) vec ([color=BLUE]apply[/color] '[color=BLUE]mapcar[/color] ([color=BLUE]cons[/color] '[color=BLUE]-[/color] lst)) lst ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]trans[/color] x 0 vec)) lst) ) ([color=BLUE]repeat[/color] 2 ([color=BLUE]entmake[/color] ([color=BLUE]append[/color] hed ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( a b ) ([color=BLUE]cons[/color] a ([color=BLUE]trans[/color] ([color=BLUE]cons[/color] ([color=BLUE]+[/color] dis ([color=BLUE]car[/color] b)) ([color=BLUE]cdr[/color] b)) vec 0))) '(10 11) lst))) ([color=BLUE]setq[/color] dis ([color=BLUE]-[/color] dis)) ) ([color=BLUE]entdel[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] -1 enx))) ) ) ([color=BLUE]princ[/color]) ) [color=GREEN];; Default Properties - Lee Mac[/color] [color=GREEN];; Returns a list of DXF properties for the supplied DXF data,[/color] [color=GREEN];; substituting default values for absent DXF groups[/color] ([color=BLUE]defun[/color] LM:defaultprops ( enx ) ([color=BLUE]mapcar[/color] '([color=BLUE]lambda[/color] ( x ) ([color=BLUE]cond[/color] (([color=BLUE]assoc[/color] ([color=BLUE]car[/color] x) enx)) ( x ))) '( (006 . [color=MAROON]"BYLAYER"[/color]) (008 . [color=MAROON]"0"[/color]) (039 . 0.0) (048 . 1.0) (062 . 256) (370 . -1) ) ) ) ([color=BLUE]princ[/color]) Quote
BIGAL Posted January 4, 2017 Posted January 4, 2017 This is something we do all the time for preset sizes. ; pipe offset for different size pipes ; by Alan H July 2014 (vl-load-com) (defun existLinetype (LineTypeName / item loaded) (setq doc (vla-get-activedocument (vlax-get-acad-object))) ; open database (vlax-for item (vla-get-linetypes doc) (if (= (strcase (vla-get-name item)) (strcase LineTypeName)) (setq loaded T) ) ) (if (= Loaded T) (princ "loaded") (command "-linetype" "L" LineTypeName "P:\\AUTODESK\\SUPPORTFILES\\CUSTOM.LIN" "") ) ) (existLinetype "EX_PIPE250") (defun pipeoffset (w / ang stpt pt3 pt4 obj whatis) (setq oldsnap (getvar "osmode")) (setvar "osmode" 0) (setq obj (entsel "\nPick line")) (setq objtype (vla-get-objectname (vlax-ename->vla-object (car obj)))) (if (= "AcDbLINE" objtype) (progn (alert "You have picked an object which is not a line\nTry Again") (exit) ) (princ "\nLine") ) (setq stpt (assoc 10 (entget (car obj)))) (setq stpt (list (nth 1 stpt)(nth 2 stpt))) (setq endpt (assoc 11 (entget (car obj)))) (setq endpt (list (nth 1 endpt)(nth 2 endpt))) (setq ang (angle stpt endpt)) (setq pt3 (polar stpt (+ ang (/ pi 2.0)) 1.0)) (setq pt4 (polar stpt (- ang (/ pi 2.0)) 1.0)) (command "offset" w obj pt3 "") (Command "chprop" "last" "" "LT" "EX_PIPE250" "") (command "offset" w obj pt4 "") (Command "chprop" "last" "" "LT" "EX_PIPE250" "") (command "Erase" obj "") (setvar "osmode" oldsnap) ) (defun c:P100 () (pipeoffset 0.06) ) (defun c:P150 () (pipeoffset 0.08) ) (defun c:P225 () (pipeoffset 0.152) ) (defun c:P300 () (pipeoffset 0.19) ) (defun c:P375 () (pipeoffset 0.228) ) (defun c:P450 () (pipeoffset 0.265) ) (defun c:P525 () (pipeoffset 0.308) ) (defun c:P600 () (pipeoffset 0.35) ) (defun c:P675 () (pipeoffset 0.39) ) (defun c:P750 () (pipeoffset 0.432) ) (defun c:P825 () (pipeoffset 0.473) ) (defun c:P900 () (pipeoffset 0.515) ) (defun c:P975 () (pipeoffset 0.528) ) (defun c:P1050 () (pipeoffset 0.597) ) (defun c:P1125 () (pipeoffset 0.6) ) (defun c:P1200 () (pipeoffset 0.68) ) (princ) 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.