Тема: Как занести топосъемку с бумаги в AutoCAD?

Извиняюсь если вопрос не относится к этому разделу(направьте тогда меня культурно куда следует 8))).
Топосъемку приносят на листе бумаги (распечатка). Мы ее сканируем и заносим как подоснову в AutoCAD. Далее генпланист рисует поверх топосъемки участок и в рукопашную начинает рассчитывать координаты его углов. Есть ли довески к Автокаду которые делают это автоматически(или полуавтоматически)?

Re: Как занести топосъемку с бумаги в AutoCAD?

> Сергей
Я делаю это так:
1) Разворачиваю UCS так, чтобы ось Z развернулась на 180 градусов, тогда UCS в плане становится геодезической.
2) С помощью двух точек, координаты которых заданы на топосъемке, совмещаю координатное пространство на топографии с автокадовским.
3) С помощью лиспика отрисовки координаты в любой пользовательской UCS моментально получаю геодезическую координату в любой точке топосъемки или проектного участка.
4) Работаю в мировой системе координат, а когда нужно закоординировать какую-либо точку - перехожу в пользовательскую.

Re: Как занести топосъемку с бумаги в AutoCAD?

> Сергей
Другие коллеги чаще всего делают так:
1)Вставляют подложку в мировой системе координат, но меняя местами значения X и Y .
2) Считывают нужную координату стандартными средствами автокада, имея ввиду, что значения X и Y нужно поменять местами.

Re: Как занести топосъемку с бумаги в AutoCAD?

> Сергей
Может мой лиспик будет Вам полезен ? :
После загрузки лиспика для отрисовки координаты нужно ввести KO или NKO в командной строке. Указать точку для координирования и сторону выноса полочки.

(defun ko ()
(SETVAR "CMDECHO" 0)
(setq CURRENTUCS (getvar "UCSNAME"))
(command"UCS" "W")
(initget 1)
(setq PXY (getpoint "\n У какой точки снимем координату ?:"))
(if (/= "" CURRENTUCS) (progn (command"UCS" "R" CURRENTUCS)
(setq DATA (trans PXY 0 1)) (command"UCS" "W")) (setq DATA PXY))
(setq KULMAN (getvar "ORTHOMODE"))
(if (/= 0 KULMAN) (setvar "ORTHOMODE" 0))
(SETQ OSNAPCURC (GETVAR "OSMODE"))
(if (< (- OSNAPCURC 16384) 0) (SETVAR "OSMODE" (+ OSNAPCURC 16384)))
(initget 1)
(setq PXY_POLKA (getpoint PXY "\n В какую сторону потянем выноску ?:"))
(command"style" "symplex" "simplex.shx" HTEXT "0.8" "10" "N" "N" "N")
(setq DATATEXTX (car DATA) DATATEXTY (cadr DATA))
(setq DATAX (car PXY) DATAY (cadr PXY))
(setq VERH (list DATAX (+ DATAY (* HTEXT 0.5))))
(setq NIZ (list DATAX (- DATAY (* 1.5 HTEXT))))
(setq TOCHNO (getvar "DIMZIN"))
(setvar "DIMZIN" 1)
(setq STRING1 (strlen (setq DATATEXTX (rtos DATATEXTX 2 2))))
(setq STRING2 (strlen (setq DATATEXTY (rtos DATATEXTY 2 2))))
(setq DOBAVOK (- (max STRING1 STRING2) (min STRING1 STRING2)))
(if (< STRING1 STRING2)
(setq DATATEXTX (repeat DOBAVOK (strcat " " DATATEXTX)))
(if (> STRING1 STRING2)
(setq DATATEXTY (repeat DOBAVOK (strcat " " DATATEXTY)))))
(setq DATATEXTX (strcat "X=" DATATEXTX))
(setq DATATEXTY (strcat "Y=" DATATEXTY))
(setvar "DIMZIN" TOCHNO)
(command"text" VERH "0" DATATEXTX )
(setq DLINAVERH (nth 0 (cadr (textbox (entget (setq XOBJ (entlast)))))))
(command"text" NIZ "0" DATATEXTY )
(setq DLINANIZ (nth 0 (cadr (textbox (entget (setq YOBJ (entlast)))))))
(setq POLKA (list (+ (car PXY) (max DLINAVERH DLINANIZ)) (cadr PXY)))
(setq SPOLKA (list (- (car PXY) (* 2 HTEXT)) (cadr PXY)))
(command"line" SPOLKA POLKA "")
(setq LOBJ (entlast))
(if (>= (car PXY_POLKA) (car PXY)) (progn
(command"move" XOBJ YOBJ LOBJ "" SPOLKA PXY )
)
(progn
(command"move" XOBJ YOBJ "" POLKA SPOLKA)
(command"move" LOBJ "" SPOLKA PXY)
(command"rotate" LOBJ "" PXY "180")
)
)
(write-line "\n Куда шлепнем надпись ?")
(command"move" XOBJ YOBJ LOBJ "" PXY PAUSE)
(setq ENDVIN (cdr (assoc 10 (entget LOBJ))))
(command"line" PXY ENDVIN "")
(SETVAR "OSMODE" OSNAPCURC)
(if (/= 0 KULMAN) (setvar "ORTHOMODE" KULMAN))
(if (/= "" CURRENTUCS) (command"UCS" "R" CURRENTUCS))
(command"style" "symplex" "simplex.shx" "0" "0.8" "10" "N" "N" "N")
)
(defun NKO ()
(initget 1)
(setq TEMP (getreal "\n Введите высоту текста : "))
(while (<= TEMP 0) (progn
(alert "\n Высота текста должна быть положительной и не нулевой !!! ")
(initget 1)
(setq TEMP (getreal "\n Введите высоту текста : "))
)
)
(if (> TEMP 0) (setq HTEXT TEMP))
)
(defun C:NKO ()
(NKO)
(KO)
)
(defun C:KO ()
(if (= NIL HTEXT) (NKO))
(KO)
(princ)
)