Copy To Another Layer.

Comments

  • I have the latest versionof Bricscad and Bcadtools.

    I am trying to copy entities from one layer to another. However I cannot get the Copy function to do this task.

    Any ideas how do this.

    Second question relates to my poor postting. How do I edit/delete my previouse posts?

    Walter

  • As to the first: open up the layer tools, make sure the checkbox "copy/Move All" is checked. Click on the "Copy" button then select an object on the layer/layers you wish to copy from, then right click to accept the selection.  Next click on an object on the layer you want to copy to. Done!

    As to the second question - you can't delete posts, sorry.

  • Thank you Daniel for your clear instruction.

    The solution to my problem was to check "Copy/Move All.

    It's a shame that I cannot edit/delete posts. Oh well I need to be more carefull with my typing.

  • Sorry for the beginner question, but I could not figure out how to "open up the layer tools" to do the copy to layer.  The LA command brings up Drawing Explorer, which has no check box.  The BRICSCAD/Layers toolbar also has no check box.

    How do I open the layer tools?
  • Check out the free Express Tools in the Application store.
    Therein you will find (among other things) Layer Tools, including COPYTOLAYER.
    The free BCADTOOLS, also has Layer Tools.
  • Thanks Robt,  Before I saw your post I remembered another way.
    1.  Select items to copy to layer
    2.  Copy and paste back to original layer via ctrl-C ctrl-V.
    3. Selgrips P Enter
    Then the original items are selected and show9ng in the (properties bar?).  There I change the layer that I want the entities copied to.
    Eric
  • Eric, if  you do that as often as I do. you may want this custom command. It duplicates a selection set in place and leaves it selected:
    [code](defun c:UU (/ ss1)
    (setq Cmode1 (getvar "COPYMODE"))
    (setvar "COPYMODE" 1)
    (princ "Select objects to be duplicated...")
    (setq ss1 (ssget))
    (if ss1 (command "Copy" ss1 "" "0,0" "0,0"))
    (setvar "COPYMODE" Cmode1)
    (sssetfirst nil (ssget "P"))
    )[/code]

    The version above leaves the original set selected, as does your manual method. That could possibly confuse any associated hatches or dimensions. The following version, which calls a sub-routine provided by MP at The Swamp, leaves the new set selected:
    [code];function to select all new entities, by MP at The Swamp
    (defun _SSAfter ( ename / ss d e )
    (if (eq 'ename (type ename)) (progn
     (setq ss (ssadd))
     (setq e (entnext ename))
     (while e
       (if (and (setq d (entget e))
                (null (member (cdr (assoc 0 data)) '("VERTEX" "ATTRIB" "SEQEND")))  ) ; end And
           (ssadd e ss)   ) ;end 2nd If
       (setq e (entnext e))   ) ;end While
     (if (and (eq 'pickset (type ss)) (< 0 (sslength ss))) ss)
    ))) ;end progn, if, defun

    ;function to duplicate a selection set in place and highlight the new set
    (defun c:UU (/ ss1)
    (setq EntName1 (entlast))
    (setq Cmode1 (getvar "COPYMODE"))
    (setvar "COPYMODE" 1)
    (princ "Select objects to be duplicated...")
    (setq ss1 (ssget))
    (if ss1 (command "Copy" ss1 "" "0,0" "0,0"))
    (setvar "COPYMODE" Cmode1)
    (setq ss2 (_ssafter EntName1))
    (if ss2 (sssetfirst nil ss2) (sssetfirst nil ss1))
    )[/code]
  • @ Anthony: In the last code block there is a variable 'd' and a variable 'data'. This should be one variable (with a single name).
  • Thank you, Roy. I don't pretend to understand that sub-routine, which I just copied from another forum, but I'm sure you're right. It must be a clerical error. The variable called "data" isn't even declared.
    Corrected code:
    [code]
    ;function to select all new entities, by MP at The Swamp(defun _SSAfter ( ename / ss d e )(if (eq 'ename (type ename)) (progn (setq ss (ssadd)) (setq e (entnext ename)) (while e   (if (and (setq d (entget e))            (null (member (cdr (assoc 0 d)) '("VERTEX" "ATTRIB" "SEQEND")))  ) ; end And       (ssadd e ss)   ) ;end 2nd If   (setq e (entnext e))   ) ;end While (if (and (eq 'pickset (type ss)) (< 0 (sslength ss))) ss)))) ;end progn, if, defun;
    ;function to duplicate a selection set in place and highlight the new set(defun c:UU (/ ss1)(setq EntName1 (entlast))(setq Cmode1 (getvar "COPYMODE"))(setvar "COPYMODE" 1)(princ "Select objects to be duplicated...")(setq ss1 (ssget))(if ss1 (command "Copy" ss1 "" "0,0" "0,0"))(setvar "COPYMODE" Cmode1)(setq ss2 (_ssafter EntName1))(if ss2 (sssetfirst nil ss2) (sssetfirst nil ss1)))
    [/code]

This discussion has been closed.