Calibrate the size of an insert image

The is a feature that I use quite a lot in F360. Insert an image, than mark 2 points and set dimension, the image will calibrate to match the dimension. Is BricsCAD has this command? If not I would like to file a feature request.

Comments

  • Anthony Apostolaros
    edited December 2017

    You can use the SCALE command with the secret "R" or "Reference" option:
    1. Select the object to be re-sized and start the SCALE command.
    2. Click on the first of the two points you mentioned.
    3. Enter "R"
    4. Click on the first point, then on the second point.
    5. Either enter the dimension you want that distance to become, or, if there's a third point that happens to be the correct distance from the first point, click on that.

    I do that a lot, so I made a custom version of the command, one which only does that particular type of reference scaling:
    (defun c:ScaleRef () (princ "Select objects to be Scaled: ") (setq ss1 (ssget)) (setq p1 (getpoint "Pick base/reference point")) (command "Scale" ss1 "" p1 "R" p1) (while (> (getvar "cmdactive") 0) (command pause)) )

    Using that custom command, skip steps 2 and 3 above.

  • I would use the _Align command.

  • Align is the way to go. Be ware that some images when scanned or printed to PDFs may be off scale Xand Y.
    In that case scale X with align. make a block of your image and insert it with scale 1 in x and whatever you need in Y.
    We do this every day.

  • Align will simultaneously straighten not aligned scans. Draw a line the measure you need and the align your file.

  • I tried the _Align command.

    Is it required to draw a line first?
    After that select points in my image and snap the the points of the line, then perform the scale?

  • @Anthony Apostolaros said:
    You can use the SCALE command with the secret "R" or "Reference" option:
    1. Select the object to be re-sized and start the SCALE command.
    2. Click on the first of the two points you mentioned.
    3. Enter "R"
    4. Click on the first point, then on the second point.
    5. Either enter the dimension you want that distance to become, or, if there's a third point that happens to be the correct distance from the first point, click on that.

    I do that a lot, so I made a custom version of the command, one which only does that particular type of reference scaling:
    (defun c:ScaleRef () (princ "Select objects to be Scaled: ") (setq ss1 (ssget)) (setq p1 (getpoint "Pick base/reference point")) (command "Scale" ss1 "" p1 "R" p1) (while (> (getvar "cmdactive") 0) (command pause)) )

    Using that custom command, skip steps 2 and 3 above.

    Wow that secret "R" helps a lot and works like F360! Many Thanks!

  • The Reference (R) option is known in BricsCAD as Base scale (B). Apparently 'R' is also accepted as an alias for 'B'.

  • @Louis Verdonck said:
    The Reference (R) option is known in BricsCAD as Base scale (B).

    Most of my custom commands were written a long time ago, when I was still using the slower, less user-friendly .dwg cad software. They all work in Bricscad, so I never looked for differences; and I long ago stopped reading command prompts. But I did look at the Scale options briefly yesterday when I was writing my reply, and I should have realized that Base is equivalent to Reference.

  • I use that one to fit images into an existing drawing:

    (defun get-bp ( / bp)
    (setq bp (getpoint "Basepoint: "))
    (list (car bp) (cadr bp))
    )

    (defun c:srb ( / bp bp2d )
    (command "_select" pause)
    (setq bp2d (get-bp))
    (while (/= "Q" (setq cmd (strcase (getstring "Command [Rotate / Scale / new Basepoint / Move / Quit]: "))))
    (cond
    ((= cmd "B")
    (setq bp2d (get-bp))
    )
    ((= cmd "M")
    (command "_move" "_p" "" bp2d pause)
    (setq bp (getvar "lastpoint"))
    (setq bp2d (list (car bp) (cadr bp)))
    )
    ((= cmd "S")
    (setq rp (getpoint "Imagepoint: "))
    (setq np (getpoint "Realpoint: "))
    (command "_scale" "_p" "" bp2d "b" bp2d (list (car rp) (cadr rp)) (list (car np) (cadr np)))
    )
    ((= cmd "R")
    (setq rp (getpoint "Imagepoint: "))
    (setq np (getpoint "Realpoint: "))
    (command "_rotate" "_p" "" bp2d "b" bp2d (list (car rp) (cadr rp)) (list (car np) (cadr np)))
    )
    )
    )
    (princ)
    )

This discussion has been closed.