nzaneb Posted August 9, 2011 Posted August 9, 2011 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 Quote
BlackBox Posted August 9, 2011 Posted August 9, 2011 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. Quote
tzframpton Posted August 9, 2011 Posted August 9, 2011 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. Quote
Jack_O'neill Posted August 9, 2011 Posted August 9, 2011 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. Quote
BlackBox Posted August 9, 2011 Posted August 9, 2011 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. Oops - I missed that part too apparently. LoL! Quote
BlackBox Posted August 9, 2011 Posted August 9, 2011 (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 August 9, 2011 by BlackBox Quote
BlackBox Posted August 9, 2011 Posted August 9, 2011 In 2012 it is the Array command. Thanks for the reminder ... 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 . Quote
nzaneb Posted August 10, 2011 Author Posted August 10, 2011 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! Quote
SLW210 Posted August 10, 2011 Posted August 10, 2011 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") ) Quote
Cad64 Posted August 10, 2011 Posted August 10, 2011 Are you sure it's MCOPY you're looking for and not COPYM? Quote
nzaneb Posted August 10, 2011 Author Posted August 10, 2011 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! Quote
rkent Posted August 10, 2011 Posted August 10, 2011 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. Quote
SLW210 Posted August 10, 2011 Posted August 10, 2011 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. Quote
BlackBox Posted August 10, 2011 Posted August 10, 2011 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. Quote
alanjt Posted August 10, 2011 Posted August 10, 2011 I use this quite a bit (modeled it after the old Land Desktop command)... ContinuousCopy.LSP 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.