Тема: Сетка координат
Люди, помогите, кто знает! как в 2006 акаде сделать сетку координат для карты местности? желательно автоматически, что бы не сидеть и не редактировать каждую цифрерку.
спасибо
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Отрасль → Геодезия и картография → Сетка координат
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Люди, помогите, кто знает! как в 2006 акаде сделать сетку координат для карты местности? желательно автоматически, что бы не сидеть и не редактировать каждую цифрерку.
спасибо
В ToolPack без проблем. Draw->Grid Generator
ToolPack9 можно скачать здесь:
http://dwg.ru/dwl/?id=&sort=&filtr=&page=5
http://dwg.ru/dwl/?id=&sort=&filtr=&page=6
На страничку ниже
скачала. он говорит - платить надо((( я так не играю. надеялась, что акад 2006 достаточно укомплектован что бы решить эту задачку)
> 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)
)
> Dina
Когда говорит что платить надо? При установке? Должен распространяться свободно.
> 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)
> ABoltrushko
к сожалению, не могу использовать русский лисп. у меня все по англицки) спасибо
> Игорь Богаченко
ваш лисп прекрасно работает. но он не решает моей задачи. мне нужна не сама сетка, а рамка от нее, в которой написаны XY координаты.
> Dina
Вот ToolPac так и делает. И распостраняеться он свободно. Ещё такие задачи можна решить в Geonics. Смотрите почту.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Отрасль → Геодезия и картография → Сетка координат
Форум работает на PunBB, при поддержке Informer Technologies, Inc