dompie Posted November 30, 2010 Posted November 30, 2010 Hello, I've been visiting this site for years and it helped me a lot in the past but now I'm looking for something that probably needs some lisp programming or so. Is there a possibility to place ordinate dimensions in ACAD in the same easy way as you do it in Microstation? I mean placing ordinate dimensions without messing around with the UCS or things like that to move your 0,0 coord. and place a cell/block at the end of the dimension line. (like the arrow in the att) For those who don't know MS: you select ordinate dimension and enter the base value (ie 100 like in the attachement), then you just pick the basepoint, the direction of the axis you want to dimension and the location of the other points. Thanks in advance for all the help. Dompie Quote
Jack_O'neill Posted November 30, 2010 Posted November 30, 2010 Somewhere on this site or some of the other lisp repositories are a couple of routines for doing what you want. I can't remember the exact name of the routine, but it has something to do with "datum dimensions". I used it a lot years ago when most of my work was mechanical, but haven't used it much since. I'll see if I can find it, and if I do I'll post a link. You may find it before I do though, headed out the door right now. Quote
Jack_O'neill Posted November 30, 2010 Posted November 30, 2010 This is not exactly the routine I was looking for, but it might get you started. If you know lisp programming, you can probably make this do what you want with some modifications: ;TIP #960: DATUM.LSP ©1994, Kevin Kronschnabl ;; The DATUM command enters the coordinate dimensioning mode. From there you ;; can use the DATUM dimensioning subcommands to setup and create a dimension. ;; Each subcommand can be abbreviated to the capital letters shown. A space ;; or RETURN will prompt for the start and placement points of the dimension. ;; ;; Origin - Sets the origin to be dimensioned from ;; Dimension - Dimensions a point from the origin ;; Reset origin - Resets the origin back to the world coordinate system ;; ? - This help Screen ;; IMPORTANT: ;; When finished dimensioning your drawing, use reset origin to reestablish ;; the drawings original 0,0,0 point. ;;------------------------------------------------------------------------ ; Internal error handler defined locally (defun *error* (msg) (princ "error: ") (princ msg) (terpri) (princ) ) (defun err (s) ; If an error (such as CTRL-C) occurs ; while this command is active... (if (/= s "Function canceled") (if (= s "quit / exit abort") (princ) (princ (strcat "\nError: " s)) ) ) (RVAR) (princ) );defun ;;------------------------------------------------------------------------ ;get variables (defun GVAR() (setq FDIA (getvar "filedia")) ;get system settings (setq CMDE (getvar "cmdecho")) (setq MNUE (getvar "menuecho")) (setq EXPT (getvar "expert")) (setq CCLR (getvar "cecolor")) (setq CLTP (getvar "celtype")) (setq UCSO (getvar "ucsorg")) );defun ;;------------------------------------------------------------------------ ;set variables (defun SVAR() (setvar "cmdecho" 1) ;turn command echo off (setvar "menuecho" 1) ;turn menu echo off );defun ;;------------------------------------------------------------------------ ;reset variables (defun RVAR() (setvar "cmdecho" CMDE) (setvar "cmdecho" MNUE) );defun ;;------------------------------------------------------------------------ ;read help (defun DHLP(/ FILE LINE) (setq FILE (open (findfile "datum.lsp") "r") LINE (read-line FILE) );setq (repeat 24 (setq LINE (substr LINE 4 75)) (write-line LINE) (setq LINE (read-line FILE)) );repeat (close FILE) (princ) );defun ;;------------------------------------------------------------------------ ;main body (defun C:DATUM(/ QST ORG) (setvar "cmdecho" 0) (initget "ORIGIN DIM DIMENSION RESET O D R ?") (setq QST (getkword "\nSelect option - Origin/Dimension/Reset origin/?/: ")) (if (= QST "?") (progn ; (command "type" (strcat (findfile "datum.hlp") "|more")) (DHLP) (initget "ORIGIN DIM DIMENSION RESET O D R") (setq QST (getkword "\nSelect option - Origin/Dimension/Reset origin/: ")) );progn );if (if (or (= QST nil) (= QST "D") (= QST "DIM") (= QST "DIMENSION")) (progn (initget 1) (setq SPT (getpoint "\nPick starting point: ")) (initget 1) (setq EPT (getpoint "\nPick ending point: " SPT)) (command "dim" "ordinate" SPT EPT "") (command "exit") );progn );if (if (or (= QST "O") (= QST "ORIGIN")) (progn (initget 1) (setq ORG (getpoint "\nPick the Origin Point: ")) (command "ucs" "origin" ORG) );progn );if (if (or (= QST "R") (= QST "RESET")) (progn (command "ucs" "world") (princ "\nThe origin has been reset...") );progn );if (princ) ); end datum.lsp Quote
ReMark Posted December 1, 2010 Posted December 1, 2010 I stumbled across another lisp routine that will do what you want (i.e. - place elevation levels). It's called Level.lsp and can be downloaded, along with some accompanying files, at the Cadalyst website. The routine was written by Neil Foden and submitted 22-Feb-2010. Look for Tip# 3354 - Place elevation levels. www.cadalyst.com It can be found in the Cad Tips section. A more definitive link: http://cadtips.cadalyst.com/attributed-blocks/place-elevation-levels Quote
dompie Posted December 2, 2010 Author Posted December 2, 2010 Hi Guys, Thanks for your replies. I don't know anything about lisp-programming so I'll first check out the routine ReMark suggested. I'll let you know how it worked out. D Quote
Patrick Hughes Posted December 2, 2010 Posted December 2, 2010 One option is to simply go ahead and place your ordinate dimension while in the WCS 0,0. Afterwards, select your dimensions to display the grips, hot grip the dimension origin and drag them to where they need to be. 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.