+ Reply to Thread
Results 1 to 4 of 4
  1. #1
    Forum Newbie
    Using
    AutoCAD 2006
    Join Date
    Jan 2007
    Posts
    3

    Question double lines from single lines?

    Registered forum members do not see this ad.

    posted this in beginner's forum, before i even noticed this forum right below it. using autocad 2006.

    i drew a shell of a house with single lines. i'd like to leave six inches between the external wall and the double line leaving space between external/internal wall. is there a simple way to do this? obviously i probably should have just gone ahead and drawn a double-line, but have been taking baby steps, just trying to figure the program out some. don't mind redrawing it with double lines, but it'd be nifty if there was a function for this...

    actually, now that i think of it - one wall is cinder block, so i guess that wall would have to be set in 8 inches instead of 6, so if there is a way to transform the single line into a uniform double line, it will not work in this particular case. would i use the offset command to mirror the original lines? then i'd still have to shorten the lines by 6" on each end to make them look proper...

  2. #2
    Senior Member craigp's Avatar
    Using
    AutoCAD 2007
    Join Date
    Jun 2005
    Location
    North Lincs, England
    Posts
    346

    Default

    I would use the offset command and then stretch or reduce the sizes when needed using the blue pickboxes.
    Maybe you could post an image to give us a better idea of what you need?
    Leaving the world of AutoCAD and 3DS MAX for Solidworks

  3. #3
    Luminous Being tzframpton's Avatar
    Computer Details
    tzframpton's Computer Details
    Computer:
    HP Zbook
    Discipline
    Multi-disciplinary
    tzframpton's Discipline Details
    Occupation
    BIM Specialist
    Discipline
    Multi-disciplinary
    Details
    Full Virtual Design and Construction BIM services for the MEP engineering and construction industries.
    Using
    Revit 2019
    Join Date
    Mar 2006
    Location
    Dallas, TX - USA
    Posts
    9,135

    Default

    Quote Originally Posted by asperated View Post
    posted this in beginner's forum, before i even noticed this forum right below it. using autocad 2006.

    i drew a shell of a house with single lines. i'd like to leave six inches between the external wall and the double line leaving space between external/internal wall. is there a simple way to do this? obviously i probably should have just gone ahead and drawn a double-line, but have been taking baby steps, just trying to figure the program out some. don't mind redrawing it with double lines, but it'd be nifty if there was a function for this...

    actually, now that i think of it - one wall is cinder block, so i guess that wall would have to be set in 8 inches instead of 6, so if there is a way to transform the single line into a uniform double line, it will not work in this particular case. would i use the offset command to mirror the original lines? then i'd still have to shorten the lines by 6" on each end to make them look proper...
    use the MLINE command. i use Double Line a lot at my work, and the MLINE works wonders. to preset a few offsets, such as a 6" wall, an 8" wall, etc, use the MLSTYLE command to get a library of certain offsets going. you can even have things such as three lines offsetted, 8" and 4" with the middle line common, so in one pass you will have drawn the 8" CMU Brick for the outside retaining wall, then a 4" line for the Interior Floor Plan wall. just mess around with it until you get it.

    Note: once you've drawn the MLINE's, to edit them as normal lines, be sure to remember you have to EXPLODE the MLINE's. just in case you didn't know.
    Tannar Z. Frampton ™ | Frampton & Associates, Inc.

  4. #4
    Super Member ASMI's Avatar
    Using
    AutoCAD 2008
    Join Date
    Nov 2005
    Location
    Oceanus Procellarum, Moon
    Posts
    1,427

    Default

    Registered forum members do not see this ad.

    Recently I have written such code (for draw cables). It is possible to draw simultaneously from 2 up to 16 polylines. Additionaly for standard options [Quantity/Justification/Offset] in a command line also it is possible to enter keywords Z, T, B - to quick change justification, numbers 2 - 16 to change number of polylines or keywords like 12Z, 5T, 8B for changing quantity and justification simultaneously.

    May be it can will conveniently for drawing walls by two polylines?

    Code:
    (defun c:mpl(/ ptOpt oldQuont oldJust oldOff stPt mlName lastEnt
    		  firEnt lnSet oldEcho rLst *error*)
      (vl-load-com)
      
    (defun asmi-mlStyleCreate(Quont / dxfLst topOrd Count mlDict)
      (setq dxfLst
       (list'(0 . "MLINESTYLE")'(102 . "{ACAD_REACTORS")'(102 . "}")
        '(100 . "AcDbMlineStyle")(cons 2(strcat(itoa Quont)"_PLINES"))
        '(70 . 0)'(3 . "")'(62 . 256)'(51 . 1.5708)'(52 . 1.5708)
         (cons 71 Quont))
           Count 0.0
           topOrd(-(/ Quont 2.0) 0.5)
    	); end setq
      (repeat Quont
        (setq dxfLst(append dxfLst
    			(list(cons 49(- topOrd Count))
    			     '(62 . 256) '(6 . "BYLAYER")))
    	  Count(1+ Count)
    	  );end setq
    	 ); end repeat
        (if
         (null
          (member
    	(assoc 2 dxfLst)(dictsearch(namedobjdict)"ACAD_MLINESTYLE")))
        (progn
          (setq mlDict
    	     (cdr
    	       (assoc -1(dictsearch(namedobjdict)"ACAD_MLINESTYLE"))))
          (dictadd mlDict
    	       (cdr(assoc 2 dxfLst))(entmakex dxfLst))
          ); end progn
        ); end if
        (strcat(itoa Quont)"_PLINES")
        ); end of
    
      (defun asmi-LayersUnlock(/ restLst)
      (setq restLst '())
      (vlax-for lay(vla-get-Layers
    		 (vla-get-ActiveDocument
    		   (vlax-get-acad-object)))
        (setq restLst
    	   (append restLst
    		   (list
    		     (list
    		     lay
    		     (vla-get-Lock lay)
    		     ); end list
    		     ); end list
    		   ); end append
    	  ); end setq
        (vla-put-Lock lay :vlax-false)
        ); end vlax-for
      restLst
      ); end of asmi-LayersUnlock
    
      (defun asmi-LayersStateRestore
           (
    	StateList
    	)
      (foreach lay StateList
        (vla-put-Lock(car lay)(cadr lay))
        ); end foreach
      (princ)
      ); end of asmi-LayersStateRestore
    
    
      (defun *error*(msg)
        (if(and lastEnt(not(equal lastEnt(entlast))))
          (command "_.erase" (entlast) "")
          ); end if
        (setvar "CMDECHO" oldEcho)
        (if rLst
          (asmi-LayersStateRestore rLst)
          ); end if
        (princ msg)
        ); end of *error*
    
      (if(not mpl:quont)(setq mpl:quont 2))
      (if(not mpl:just)(setq mpl:just "Zero"))
      (if(not mpl:off)(setq mpl:off 40.0))
      (setq ptOpt T
    	oldQuont mpl:quont
    	oldJust mpl:just
    	oldOff mpl:Off
    	oldEcho(getvar "CMDECHO")
    	); end setq
      (while(and ptOpt(/= 'LIST (type ptOpt)))
      (princ
        (strcat "\n>>> Quantity = " (itoa mpl:quont)
    	    ", Justification = " mpl:just
    	    ", Offset = " (rtos mpl:off) " <<< "
    	    ); end strcat
        ); end princ
      (initget 128)
      (setq ptOpt
    	 (getpoint
    	   (strcat "\nSpecify start point or [Quantity/Justification/Offset]: ")))
        (if(=(type ptOpt) 'STR)
          (setq ptOpt(strcase ptOpt))
          ); end if
        (cond
           ((= 'LIST(type ptOpt))
           (setq stPt ptOpt)
           (princ "\nSpecify next point or [Undo]: ")
           ); end condition #1
          ((= ptOpt "Q")
           (setq mpl:quont
    	      (getint
    		(strcat "\nSpecify quantity from 2 to 16 <"(itoa mpl:quont)">: ")))
           (if(null mpl:quont)(setq mpl:quont oldQuont))
           (if(or(< mpl:quont 2)(> mpl:quont 16))
    	 (progn
    	   (setq mpl:quont oldQuont)
    	   (princ "\nOnly from 2 to 16 polylines are available. ")
    	   ); end progn
    	 ); end if
           ); end condition #2
          ((= ptOpt "J")
           (initget "Zero Top Bottom")
           (setq mpl:just
    	      (getkword
    		(strcat "\nSpecify justification [Zero/Top/Bottom] <" mpl:just ">: ")))
           (if(null mpl:just)(setq mpl:just oldJust))
           ); end condition #4
          ((= ptOpt "O")
           (initget 2)
           (setq mpl:off
    	      (getdist
    		(strcat "\nSpecify offset distance <" (rtos mpl:off) ">: ")))
           (if(null mpl:off)(setq mpl:off oldOff))
           ); end condition #5
          ((if(member ptOpt
    		  '("2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15" "16"))
           (setq mpl:quont(atoi ptOpt))
           ); end if
          ); end condition #6
          ((if(member ptOpt
    		 '("Z" "T" "B"))
    	 (setq mpl:just(cadr
    			   (assoc(strcase ptOpt)
    			   '(("Z" "Zero")("T" "Top")("B" "Bottom"))))
    	       ); end setq
    	  ); end if
    	 ); end condition #7
          ((if(member ptOpt
    		  '("2Z" "2T" "2B" "3Z" "3T" "3B" "4Z" "4T" "4B" "5Z" "5T" "5B"
    		    "6Z" "6T" "6B" "7Z" "7T" "7B" "8Z" "8T" "8B" "9Z" "9T" "9B"
    		    "10Z" "10T" "10B" "11Z" "11T" "11B" "12Z" "12T" "12B"
    		    "13Z" "13T" "13B" "14Z" "14T" "14B" "15Z" "15T" "15B"
    		    "16Z" "16T" "16B"))
    	   (setq mpl:quont
    		  (atoi(substr ptOpt 1(1-(strlen ptOpt))))
    		 mpl:just(cadr
    			   (assoc(substr(strcase ptOpt)(strlen ptOpt)1)
    			   '(("Z" "Zero")("T" "Top")("B" "Bottom"))))
    		 ); end setq
    	  ); end if
    	); end condition #8
          ((if ptOpt(princ "\nInvalid option keyword. "))
           ); end condition #9
          ); end cond
        ); end while
      (if ptOpt
        (progn
      (setq mlName(asmi-mlStyleCreate mpl:quont))
      (if(entlast)
      (setq lastEnt(entlast))
        ); end if
      (setvar "cmdecho" 0)
      (command "_.mline"
         "_ST" mlName
         "_S" mpl:off
         "_J" (strcat "_" mpl:just)
             stPt)
        (setvar "CMDECHO" 1) 
        (while(= 1(getvar "CMDACTIVE"))
        (command pause)
        ); end while
      (setvar "CMDECHO" 0)
      (if(or(not lastEnt)(not(equal lastEnt (entlast))))
        (setq lastEnt(entlast))
        (setq lastEnt nil)
        ); end if
      (if lastEnt
        (progn
        (setq rLst(asmi-LayersUnlock))
        (command "_.explode" lastEnt)
        (setq lnSet(ssadd))
        (ssadd
          (setq lastEnt
    	     (entnext lastEnt))
                     lnSet); end setq
      (while
        (setq lastEnt(entnext lastEnt))
        (if lastEnt(ssadd lastEnt lnSet))
        ); end while
      (cond
        ((or
           (and lnSet(not(getvar "PEDITACCEPT")))
           (and lnSet(=(getvar "PEDITACCEPT")0))
           ); end or
        (command "_.pedit" "_m" lnSet "" "_y" "_j" "0.0" "")
         ); end condition #1
        ((and lnSet(=(getvar "PEDITACCEPT")1))
         (command "_.pedit" "_m" lnSet "" "_j" "0.0" "")
         ); end condition #2
        ); end cond
        (asmi-LayersStateRestore rLst)
        (setvar "CMDECHO" oldEcho)
        ); end progn
       ); end if
      ); end progn
     ); end if
      (princ)
      ); end of c:mpl
    Attached Images

Similar Threads

  1. can you turn a single-line into a double-line?
    By asperated in forum AutoCAD Beginners' Area
    Replies: 1
    Last Post: 4th Jan 2007, 10:22 am
  2. set lines to UCS
    By Jeffnm in forum AutoCAD General
    Replies: 7
    Last Post: 31st Jul 2006, 03:10 pm
  3. dotted lines plotting as solid lines
    By Dave^ in forum AutoCAD Beginners' Area
    Replies: 4
    Last Post: 11th Jan 2006, 01:16 pm
  4. Drawing Double lines
    By shunter in forum AutoCAD Beginners' Area
    Replies: 1
    Last Post: 10th Nov 2005, 02:50 am
  5. Single lines into polyline?
    By Christian Syversen in forum AutoCAD General
    Replies: 3
    Last Post: 21st Nov 2003, 09:40 pm

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts