Jump to content

Recommended Posts

Posted

I'm looking for the MCOPY command from autocad 2009. I've recently upgraded to 2011, but the MCOPY command is not an included feature in 2011. It's a major time saver in my work, is there any way that I can incorporate this back into the newer version? I tried the LSP from the one thread on this forum that popped up when searching for MCOPY or dynamic multiple copy, it loaded fine into 2011, but it does not function correctly.

Is it possible to copy LSP from 2009 into 2011?

Thanks

Posted

Welcome to CADTutor!

 

MCOPY is not a core AutoCAD command (just checked in 2009)... it is a custom command that was loaded into your session (probably via ACADDOC.lsp). If your previous deployment structure (LISP folder?) is still available on the network, etc. check there for the source .LSP, .FAS, or .VLX file. Otherwise, check with your CAD Manager.

Posted

Sounds like an interesting thing to have! I'd be interested in hearing more about how it functions.

 

edit--just read Styk's link...got it already. Thanks.

Posted (edited)

Thought this would be fun, it's a slightly modified version from the one StykFace posted... tested quickly:

 

(defun c:MCOPY ( / *error* oldNomutt oldCmdecho ss i pt1 pt2)
 (princ "\rMULTIPLE COPY ")

 (defun *error*  (msg)
   (and oldNomutt (setvar 'nomutt oldNomutt))
   (and oldCmdecho (setvar 'cmdecho oldCmdecho))
   (cond ((not msg))                                                   ; Normal exit
         ((member msg '("Function cancelled" "quit / exit abort")))    ; <esc> or (quit)
         ((princ (strcat "\n** Error: " msg " ** "))))                 ; Fatal error, display it
   (princ))

 (if (and (setq ss (ssget "_:L"))
          (not (initget 6))
          (or (setq i
                     (getint
                       (cond
                         (*mcopy*
                          (strcat "\nNumber of copies <"
                                  (itoa *mcopy*)
                                  ">: "))
                         ((strcat "\nEnter number of copies to make: ")))))
              (setq i *mcopy*))
          (setq *mcopy* i)
          (setq pt1 (getpoint "\nSpecify base point: "))
          (setq pt2 (getpoint pt1 "\nSpecify second point for displacement: ")))
   ((lambda (dist ang oldNomutt oldCmdecho / dist2)
      (repeat i
        (command "._copy"
                 ss
                 ""
                 pt1
                 (polar pt1
                        ang
                        (cond (dist2 (setq dist2 (+ dist2 dist)))
                              ((setq dist2 dist))))))
      (setvar 'nomutt oldNomutt)
      (setvar 'cmdecho oldCmdecho))
     (distance pt1 pt2)
     (angle pt1 pt2)
     (setq oldNomutt (getvar 'nomutt))
     (setq oldCmdecho (getvar 'cmdecho)))
   (cond (pt1 (prompt "\n** Must specify second point ** "))
         (i (prompt "\n** Must specify base point ** "))
         (ss (prompt "\n** Must enter number of copies ** "))
         ((prompt "\n** Nothing selected ** "))))
 (princ))

Note - Added some error checking, and localized variables.

 

Edit: Looks a little clunky to me (despite the enhancements), I'll see if I can't improve more.

 

Edit: ^^ Scratch that edit... see Rkent's comments below. Try and use core commands when available.

 

Hope you like!

Edited by BlackBox
Posted

In 2012 it is the Array command.

Posted
In 2012 it is the Array command.

 

Thanks for the reminder :oops:... I forgot all about the array command (

 

Edit: Not sure when array was introduced (not that it matters), but array does work for 2009+.

 

Oh well, it was fun to code anyway :geek:.

Posted
Welcome to CADTutor!

 

MCOPY is not a core AutoCAD command (just checked in 2009)... it is a custom command that was loaded into your session (probably via ACADDOC.lsp). If your previous deployment structure (LISP folder?) is still available on the network, etc. check there for the source .LSP, .FAS, or .VLX file. Otherwise, check with your CAD Manager.

 

Thanks for the welcome! It's not a core command in 2009??? We have no one here to write LSP code.... hmmmm. Now I'm wondering how it came about.

 

http://www.cadtutor.net/forum/showthread.php?41207-Dynamic-multiple-copy

 

*EDIT* Just noticed you said you loaded one and it didn't work correctly. Probably different versions of the same type of routine.

 

Yes, I tried to load that one and it will only copy 1 instance to the second selection point. Thanks for that though. That's one of the only things around that I can find that even mentions that the command exists, lol!

 

Sounds like an interesting thing to have! I'd be interested in hearing more about how it functions.

 

edit--just read Styk's link...got it already. Thanks.

 

I use the dynamic copy to copy an object in the corner of a structure' date=' equidistantly to the next corner of choice. I select the object to be copied, tell it to select Distance, select the next corner, then tell it how many objects to space along that distance. Without the MCOPY command I will literally be spacing 500-1000 objects by hand... not the preferred method, lol. There are other ways to go about it, but none as easy as the MCOPY.

 

In 2012 it is the Array command.

 

I'm not sure if this was directed at me, but if so... I find the Array command a bit too involved. I'll need to measure the wall, determine the offset distance, then input the variables into the GUI for the array command. If anything it will be a bit easier to measure, determine the offset, and then simply copy multiple times using the previous distance. It still will require quite a bit more work than the MCOPY command. Not that I'm opposed to doing the calculations, but streamlining that process proved extremely useful in my efficiency.

 

Thanks for all the responses guys!

Posted

Sounds almost like the _MEASURE command.

 

I thought I saw something similar to MEASURE, but need not use blocks.

 

Is this the LISP you seek?

 

(defun c:mcopy ()
(setq ab (entsel))
(setq ac (getstring "Quantity total:"))
(command "array" ab "" "r" ac "1" "0")
)

Posted
Are you sure it's MCOPY you're looking for and not COPYM?

 

Thank you CAD64! That is it now. They have a dynamic option in the COPYM command... woohoo! Thanks for all the help guys!

Posted
Are you sure it's MCOPY you're looking for and not COPYM?

 

Nice one Cad64, I have never heard of copym until today, so far as I know. My memory being what it is these days I might have used it last week and already forgot about it.:?

Posted
Nice one Cad64, I have never heard of copym until today, so far as I know. My memory being what it is these days I might have used it last week and already forgot about it.:?

 

It is an Express Tool>Modify>Multiple Copy. It has the measure, array and distance option.

Posted
Nice one Cad64, I have never heard of copym until today, so far as I know.

 

1+

 

Command: copym

Initializing... [color=red]<<Hit F1>>[/color]
Select objects: *Cancel*

Awesome! So much to learn, so little time.

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...