Jump to content

how can I scale an object only on one dimension?


Recommended Posts

Posted

hello

i have a picture with a diagram, and i want to scale it diferently on X and Y axe. maybe with extend? if this is the command please explain me how.

thanks

Posted

or you could insert it as a block and deform the x-y coordinates at insertion

Posted

If you know what scales it needs and you're talking about putting in a raster image, you can choose 1-Dimensional scales on the insertion prompt.

 

If it's something else, block it and change the X and Y Scales in the properties window.

Posted

Noticed that the scaleaxis.lisp has been remove, so here it is a agian - no idea who the author is and it changes everything to lines but it is a simple way to scale everything in one direction.

 

;;;SCALEAXIS.LSP

;--------------------------------------------------
; ERROR TRAPPING
;--------------------------------------------------

(defun errtrap (msg)
 (cond
   ((not msg))
   (
     (member msg '("Function cancelled" "quit / exit abort"))
     (command "undo" "")
   )
   (
     (princ (strcat "\nError: " msg))
     (command "undo" "")
   )
 );cond
);defun

;--------------------------------------------------
;  MAIN ROUTINE
;--------------------------------------------------

(defun c:scaleaxis (/ *error* *ss1 bspt ax mult refpt refdx newdx)

(command "._undo" "end" "._undo" "begin")
(setq *error* errtrap)

(setq ss1 (ssget))
(setq bspt (getpoint "\nSelect basepoint: "))
(initget "X Y Z")
(if
 (not
   (setq ax (getkword "\nSpecify axis to scale: <X> "))
 );not
 (setq ax "X")
);if

(if
 (not 
   (setq mult (getreal "\nEnter scale factor or <Reference>: "))
 );not
 (progn
   (setq refpt1 (getpoint "\nSpecify reference length: "))
   (setq refdx (getdist refpt1 "\nSpecify second point: "))
   (setq newdx (getdist refpt1 "\nSpecify new length: "))
   (setq mult (/ newdx refdx))
 );progn
);if

(setvar "expert" 2)
(setvar "explmode" 1)
(command "._-block" "SCALETEMP" bspt ss1 "")
(command "._-insert" "SCALETEMP" ax mult bspt "0")
(command "._explode" "last" "")
(command "._-purge" "blocks" "SCALETEMP" "n")
(setvar "expert" 1)

(command "._undo" "end")

(princ)
(*error* nil)
)

  • Like 1
Posted

As others have said, block it, set axis scale and then explode it if you need.

  • 1 year later...
Posted

Hi, This is my first post in your forum :-)

I see this is becoming a rather old thread, but i'd like to mention a Lisp we've called "fit.lsp". it works with autocad 2000 - 2010, and it quite neately solves the problem.

 

We wrote this little piece long ago, and I thought I'd share it

You can download it from our site. (i just got blocked by your forum saying only users with 9 posts or more can post weblinks, so here it is - in Morse Code) 3xw dot xordesign dot com and click the Toolbox.

 

maybe someone (with the magic 9) could re post a proper link?

 

I havent "kelvinated" the lisps as i dont mind you guys reading the code and are sharing under one condition: Do Not remove the credentials (please?)

 

Pleaes dont look at the rest of the site. we dont have much time to update it ..

best

STIAN

  • 1 year later...
Posted

At least with Mechanical Desktop, you can use the comand AMSCALEXY. Select the object to be scaled. Then follow the command prompts to independently enter the X and Y scaling factors. I find this so useful, I am surprised it is not included in the menus.

Posted

To keep a value just use a scaling factor of 1.

  • 1 year later...
Posted

You're lucky I'm such a pack rat.

 

FIT.lsp.txt

 

Download the file to your desktop. Right-click on it and use the RENAME command to remove this portion of the file name and you are good to go.

 

You know how to load a lisp routine in AutoCAD right?

  • 4 years later...
Posted

I have an image with a small skew, so I have rotate my image and calculated the correct x- axis scale in order to remove it.

When the scale is set to 1 (or a number bigger than 1.01 or smaller than 0.9999) the base point is in the correct position.

UzQU6k0B1klSJwhEziaOY6nKWszLWGl3sQDLd8l3Mzay5M9fc0NeVam9upZquUSZ3Qw6A2gBIgH46qPa52CQYwl4vxfdSI22b8jZN_PkDPqy3Wk5zVYTh2tQnOAWOUm4GvQm1bRpdzXhgwbIB9QdgcE8-JwXNtldp4rkObST1dGbhHg5FsobENegpaaLAhpNahJ0BS2x4YI-mwRzeG4Bo3KKdsPl5QLWgBk-FHkA6Lp56l0-8kW1AbVGgUbXSIi6jBcz48FmFJzjH2k14hZ3OjETnMAmOOpdUfAtLt1_jAIWN6WTdJkkp-QtiRZgxmbxKGYf12l5abC-NDchCuJPtjL54VLMsGt4AFPt_WAyOjgt_SG8fQpFVSj7EmhUx-KkYqAMENBXduDiQmvM-wD7ZfkeyeFFx0i7d-Iaj1XlGVMUKBfrJmSpmBQx-B_1QZEca55In3qciSuU8cu3xVzVEmYlXVMMs6xcIekGzNvN7WzVhjUXZ6Fj3POjoe0vWG833dI-PjiiKiKQxM5M-t4MXDMngJM7mhhnfKEQrrgK9rMOJttPxBR94nOYfYBI3hZ0-4puOuyLVkRDG_XkMNzrSu3uxKYCjT5CIAYbLN7u_WzjTOVS=w457-h297-no

When I set the scale to 1.001, my base point moves! (the base point is on the cross-hairs, shown with a blue dot)

06LgJIE7x2JYsrcSa5f6VdbIStoCPMfsYWIrGh-PJ2A9ElmT4ZDdbbHySsLVl0pLTAhFTzYiffTpD9WaxbxRTR0ATu33YiqzgRM4P1FgMgTi8QJTTEVu7mNqnwvpRPOWAxpezk9HZ_xxrdohYt0Yo-cV3WMW426tPduXFN-VgdB73mMFuFXtAXj5-pAhXzklmtlDEYlnAuHOYUS71_FGlGfDtzf6Gx--xOAbzopilJidw-2f0GzgyZ_B9EyhzEkmB2SA91XYVT2ZJnmfIGkvP6PEIuCXYZ9uOcnTGAGCXF1cYFYalxwCep8fDH1n-42E51Zk2dEld40-STFaNxJ9vG7cMXGN2dOk6Y_eFYgcbPEdlodgeegSARG6ZXvEHoKEXK2mGWgDBrVd9IfDbswxv9GTvCHbSowzSAgckzuEL0sdAjhZefUN5D4X0N_rcyYrXQ6Hwso_M2Qqc_2ThGjggrn2u77aVkW-yc6zDkLRLFmwulGJwOm8vuXOPpKOt3ptlcqdevt_JlBOvehJGkrNTF93mfsaM658UDr_DTPV1gsIrAE9iITrjwT27g4iDRqfCQJxgIbVJSIXChSqn0_L6b1GkwoWNTOAvgpDGCkpvWqqr766=w457-h297-no

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