Тема: Сетка координат

Люди, помогите, кто знает! как в 2006 акаде сделать сетку координат для карты местности? желательно автоматически, что бы не сидеть и не редактировать каждую цифрерку.
спасибо

Re: Сетка координат

В ToolPack без проблем. Draw->Grid Generator
ToolPack9 можно скачать здесь:
http://dwg.ru/dwl/?id=&sort=&filtr=&page=5

Re: Сетка координат

http://dwg.ru/dwl/?id=&sort=&filtr=&page=6
На страничку ниже

Re: Сетка координат

скачала. он говорит - платить надо((( я так не играю. надеялась, что акад 2006 достаточно укомплектован что бы решить эту задачку)

Re: Сетка координат

в любом случае - спасибо за помощь, Игорь

Re: Сетка координат

> Dina
Сделано для перевернутой системы координат
(X - на север, Y - на восток)
;-- НАНЕСЕНИЕ КООРДИНАТНОЙ СЕТКИ --
(DEFUN C:SETKA ()
; ВОЗВРАЩАЕТ: Сетка на чертеже с надписями (красный цвет, текущий слой )
  ; Сохраняем старое значение
  (SETQ _blpmode (GETVAR "BLIPMODE")
        _cmdecho (GETVAR "CMDECHO")
        _osmode (GETVAR "OSMODE"))
  ; Устанавливаем новое значение
  (SETVAR "CMDECHO" 0)
  (SETVAR "BLIPMODE" 0)
  (SETVAR "OSMODE"  0)
  (SETQ scale_dwg NIL)
  (SETQ h_txt NIL)
  (WHILE (= scale_dwg NIL )
    (initget (+ 1 2 4 )) ; Масштаб - не NIL, не 0  и положительное число
    (SETQ scale_dwg (GETINT "\nМасштаб чертежа: "))
  )
  (SETQ h_txt (* (/ scale_dwg 1000.0) 3.0) )
  (SETQ xy1 (GETPOINT "\nУкажите левый нижний угол: "))
  (SETQ xy2 (GETCORNER xy1 "\nУкажите противоположный угол: "))
  (SETQ x1 (CAR xy1) y1 (CADR xy1))  ; Координаты первого угла
  (SETQ x2 (CAR xy2) y2 (CADR xy2))  ; Координаты второго угла
  ; Определение минимальных и максимальных координат
  (SETQ minx x1 miny y1)
  (SETQ maxx x2 maxy y2)
  (SETQ s (/ scale_dwg 10) ) ; 50 или 100
  (SETQ maxx (+ maxx s) maxy (+ maxy s))
  (SETQ sx   (* (FLOAT (FIX (/ minx s))) s)
        sy   (* (FLOAT (FIX (/ miny s))) s)
        maxx (* (FLOAT (FIX (/ maxx s))) s)
        maxy (* (FLOAT (FIX (/ maxy s))) s))
  (COMMAND "_LINETYPE" "_S" "_bylayer" "")
  (COMMAND "_COLOR" "_bylayer")
  (SETQ x sx  y sy)
  (WHILE (<= y maxy)
    (SETQ tl_y  (ITOA (FIX (/ y 10))) )
    (SETQ txt_y  (STRCAT tl_y "0") )
    (COMMAND "_PLINE" (LIST (- sx h_txt) y) (LIST (+ maxx h_txt) y) "")
    (COMMAND "_TEXT""_S""GOST" "_R" (LIST (- sx h_txt) y) h_txt "0" (STRCAT txt_y "  ") )
    (COMMAND "_TEXT""_S""GOST" (LIST (+ maxx h_txt) y) h_txt "0" (STRCAT "  " txt_y) )
    (SETQ y (+ y s))
  )
  (WHILE (<= x maxx)
    (SETQ tl_x  (ITOA(FIX(/ x 10))) )
    (SETQ txt_x  (STRCAT tl_x "0") )
    (COMMAND "_PLINE" (LIST x (- sy h_txt)) (LIST x (+ maxy h_txt)) "")
    (COMMAND "_TEXT""_S""GOST" "_R" (LIST x (- sy h_txt)) h_txt "90" (STRCAT txt_x "  ") )
    (COMMAND "_TEXT""_S""GOST" (LIST x (+ maxy h_txt) ) h_txt "90" (STRCAT "  " txt_x) )
    (SETQ x (+ x s))
  )
  (COMMAND "_ZOOM" "_E")
  ; Восстанавливаем старое значение
  (SETVAR "BLIPMODE" _blpmode)
  (SETVAR "CMDECHO" _cmdecho)
  (SETVAR "OSMODE" _osmode)
  (SETQ scale_dwg NIL)
  (PRIN1)
)

Re: Сетка координат

> Dina
Когда говорит что платить надо? При установке? Должен распространяться свободно.

Re: Сетка координат

> ABoltrushko
У меня что-то Ваш код не пошёл. В своих закромах нашёл такое, уже и не помню где скачал.
;;Draw grid on layer "Ceiling_grid" (v.1) beta-version with error trapping
(defun C:GRD (/ *error* ccr clr cmn grid-err olderr osm p1 p2 p3 row)
  (setq    olderr    *error*
    *error*    grid-err
    osm    (getvar "osmode")
  )
  (setvar "cmdecho" 0)
  (command "._undo" "_g")
  (setq osm (getvar "osmode"))
  (setq clr (getvar "clayer"))
  (setq ccr (getvar "cecolor"))
  (setvar "osmode" 0)
  (defun layer_set (lyr col ltp)
    (if    (tblsearch "layer" lyr)
      (command "._-layer" "t" lyr "u" lyr "on" lyr "s" lyr "")
      (command "._-layer" "m" lyr "c" col lyr "lt" ltp lyr "")
    )
  )
  (layer_set "Ceiling_grid" "16" "Continuous")
  (initget 1)
  (setq P1 (getpoint "\cmn\tBottom left corner of grid : \n"))
  (initget 6)
  (setq cmn (getint "\n\tNumber of cells in the one column <8> : \n"))
  (if (not cmn)
    (setq cmn 8)
  )
  (initget 6)
  (setq row (getint "\n\tNumber of cells in the one row <8> : \n"))
  (if (not row)
    (setq row 8)
  )
  (setq p2 (list (+ (car P1) (* cmn 24.)) (cadr P1)))
  (setq p3 (list (car P1) (+ (cadr P1) (* row 24.))))
  (setvar "clayer" "Ceiling_grid")
  (setvar "cecolor" "bylayer")
  (command "._line" p1 p2 "")
  (command "._array" (entlast) "" "_r" (1+ row) 1 24.)
  (command "line" p1 p3 "")
  (command "._array" (entlast) "" "_r" 1 (1+ cmn) 24.)
  (command "._undo" "_e")
  (setvar "cmdecho" 1)
  (setvar "osmode" osm)
  (setvar "clayer" clr)
  (setvar "cecolor" ccr)
  (setq *error* olderr)
  (princ)
)
(defun grid-err    (s)
  (princ (strcat "\nError: " s))
  (command "._undo" "_e")
  (setvar "cmdecho" 1)
  (setvar "osmode" osm)
  (setvar "clayer" clr)
  (setvar "cecolor" ccr)
  (setq *error* olderr)
  (princ)
)
(prompt "\n\t***\tType GRD to execute...\t***\n")
(princ)
                    ; TesT : (C:GRD)

Re: Сетка координат

> ABoltrushko
к сожалению, не могу использовать русский лисп. у меня все по англицки) спасибо

Re: Сетка координат

> Игорь Богаченко
ваш лисп прекрасно работает. но он не решает моей задачи. мне нужна не сама сетка, а рамка от нее, в которой написаны XY координаты.

Re: Сетка координат

> Dina
Вот ToolPac так и делает. И распостраняеться он свободно. Ещё такие задачи можна решить в Geonics. Смотрите почту.