Построение в ACADе графика статического зондирования
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построение в ACADе графика статического зондирования

Построение в ACADе графика статического зондирования

Ответ
Поиск в этой теме
Непрочитано 25.08.2009, 10:27 #1
Построение в ACADе графика статического зондирования
Gotch
 
Регистрация: 07.02.2007
Сообщений: 200

Друзья доброго времени суток
кто сможет помогите в решении задачи для наших геологов
задача такая
есть программа которая выдает паспорт статического зондирования в формате Эксель
файл приложен
смотрим столбци по которым будут строится графики

Первый график строится по столбцам -
Глуб_________и________qc,
_м___________________МПа

Второй график по столбцам -
Глуб________и________Fз,
_м__________________кПа


в автокаде есть небольшое начало красного цвета где в ручную все отмерялось и строилось
есть ли возможность с помощью лиспа все автоматизировать
очень нужна помощь а то очень все долго делается

что бы данные считывались с Экселя и все строилось в автокаде

Вложения
Тип файла: rar 1 Паспорт зондирования.rar (14.4 Кб, 445 просмотров)
Тип файла: rar 2 Зондировка.rar (80.3 Кб, 354 просмотров)


Последний раз редактировалось Gotch, 26.08.2009 в 08:56.
Просмотров: 6457
 
Автор темы   Непрочитано 04.09.2009, 10:14
#2
Gotch


 
Регистрация: 07.02.2007
Сообщений: 200


код Victor'а
спасибо
Код:
[Выделить все]
(vl-load-com)
(defun c:tst ( / first_column second_column first_row last_row snp 
ms xlsappl books book sheet row cicle step col width
cell name_of_cell cellvalue lst valuelist sp_obj)
;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq first_column 2)
(setq second_column 8)
(setq first_row 30)
(setq last_row 120)
;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq snp (getvar "Osmode"))
(setvar "Osmode" 0) 
(setq ms (vla-get-modelspace (vla-get-activedocument(vlax-get-acad-object))))
(setq xlsappl (vlax-get-or-create-object "excel.application")) ;
(vlax-put-property xlsappl "visible" :vlax-false) ; 
(setq books (vlax-get-property xlsappl 'workbooks) fl (getfiled "File" "C:\\" "xls" 4)
book (vlax-invoke-method books 'open fl)
sheet (vlax-get-property book 'activesheet))
(setq row first_row valuelist nil) 
(setq cicle (- last_row first_row))
(setq step (- second_column first_column))
(repeat cicle 
(setq col (- first_column 1) lst nil)
(repeat 2
(setq name_of_cell (strcat (chr (+ col (ascii "A"))) (itoa row)))
(setq cell (vlax-variant-value (vlax-invoke-method sheet 'evaluate name_of_cell)))
(setq cellvalue (vlax-variant-value (vlax-get-property cell 'value)))
(if(= "" cellvalue)(setq cellvalue 0.0))
(setq lst (append lst (list cellvalue)))
(setq col (+ col step))
) 
(if(and (= T (numberp (car lst)))(= T (numberp (last lst))))
(progn
(setq lst (list (* 10 (last lst)) (- 0.0 (* 10 (car lst)))))
(setq valuelist (append valuelist (list lst))) 
) ;progn
) ;if
(setq row (+ row 1))
)
(setq ln (length valuelist) i 0)
(command "_pline" (nth i valuelist))
(repeat ln
(setq i (+ i 1))
(command (nth i valuelist))
)
(command "")
(setq sp_obj (entget(entlast)))
(setq width (assoc 43 sp_obj))
(setq sp_obj (subst '(43 . 0.4) width sp_obj))
(setq sp_obj (append sp_obj (list '(62 . 1))))
(entmod sp_obj)
(entupd (cdr (assoc -1 sp_obj)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;
(setq first_column 2)
(setq second_column 14)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;
(setq row first_row valuelist nil) 
(setq cicle (- last_row first_row))
(setq step (- second_column first_column))
(repeat cicle 
(setq col (- first_column 1) lst nil)
(repeat 2
(setq name_of_cell (strcat (chr (+ col (ascii "A"))) (itoa row)))
(setq cell (vlax-variant-value (vlax-invoke-method sheet 'evaluate name_of_cell)))
(setq cellvalue (vlax-variant-value (vlax-get-property cell 'value)))
(setq lst (append lst (list cellvalue)))
(setq col (+ col step))
) 
(if(and (= T (numberp (car lst)))(= T (numberp (last lst))))
(progn
(setq lst (list (/ (last lst) 10.0) (- 0.0 (* 10 (car lst)))))
(setq valuelist (append valuelist (list lst))) 
) ;progn
) ;if
(setq row (+ row 1))
)
(setq ln (length valuelist) i 0)
(command "_pline" (nth i valuelist))
(repeat ln
(setq i (+ i 1))
(command (nth i valuelist))
)
(command "")
(setq sp_obj (entget(entlast)))
(setq width (assoc 43 sp_obj))
(setq sp_obj (subst '(43 . 0.1) width sp_obj))
(setq sp_obj (append sp_obj (list '(62 . 4))))
(entmod sp_obj)
(entupd (cdr (assoc -1 sp_obj)))
(setvar "Osmode" snp)
;;;;;;;;;;;;;;;;;;;;
(vl-catch-all-apply (function (lambda () (vlax-invoke-method book "Close"))))
(vl-catch-all-apply (function (lambda () (vlax-invoke-method xlsappl "Quit"))))
(mapcar (function (lambda (x) (vl-catch-all-apply (function (lambda () 
(vlax-release-object x))))))
(list cell sheet book books xlsappl))
(gc)
(gc)
(gc)
;;;;;;;;;;;;;;;;;;;;
(princ)
)


Command: tst
_pline
Specify start point:
Current line-width is 0.4000
Specify next point or [Arc/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Command: TST Unknown command "TST". Press F1 for help.

Command: _pline
Specify start point:
Current line-width is 0.4000
Specify next point or [Arc/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Command: TST Unknown command "TST". Press F1 for help.



сделал графики вконце вижу такое сообщение -
Command: TST Unknown command "TST". Press F1 for help.
Gotch вне форума  
 
Непрочитано 06.09.2009, 09:10
#3
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


мал мал ошибка дал. Пользовался чужим кодом.
Код:
[Выделить все]
(vl-load-com)
(defun c:tst ( / first_column second_column first_row last_row snp 
ms xlsappl books book sheet row cicle step col width
cell name_of_cell cellvalue lst valuelist sp_obj)
;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq first_column 2)
(setq second_column 8)
(setq first_row 30)
(setq last_row 120)
;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq snp (getvar "Osmode"))
(setvar "Osmode" 0) 
(setq ms (vla-get-modelspace (vla-get-activedocument(vlax-get-acad-object))))
(setq xlsappl (vlax-get-or-create-object "excel.application")) ;
(vlax-put-property xlsappl "visible" :vlax-false) ; 
(setq books (vlax-get-property xlsappl 'workbooks) fl (getfiled "File" "C:\\" "xls" 4)
book (vlax-invoke-method books 'open fl)
sheet (vlax-get-property book 'activesheet))
(setq row first_row valuelist nil) 
(setq cicle (- last_row first_row))
(setq step (- second_column first_column))
(repeat cicle 
(setq col (- first_column 1) lst nil)
(repeat 2
(setq name_of_cell (strcat (chr (+ col (ascii "A"))) (itoa row)))
(setq cell (vlax-variant-value (vlax-invoke-method sheet 'evaluate name_of_cell)))
(setq cellvalue (vlax-variant-value (vlax-get-property cell 'value)))
(setq lst (append lst (list cellvalue)))
(setq col (+ col step))
) 
(if(and (= T (numberp (car lst)))(= T (numberp (last lst))))
(progn
(setq lst (list (* 10 (last lst)) (- 0.0 (* 10 (car lst)))))
(setq valuelist (append valuelist (list lst))) 
) ;progn
) ;if
(setq row (+ row 1))
)
(setq ln (-(length valuelist)1) i 0)
(vl-cmdf "_pline" (nth i valuelist))
(repeat ln
(setq i (+ i 1))
(vl-cmdf (nth i valuelist))
)
(vl-cmdf "")
(setq sp_obj (entget(entlast)))
(setq width (assoc 43 sp_obj))
(setq sp_obj (subst '(43 . 0.4) width sp_obj))
(setq sp_obj (append sp_obj (list '(62 . 1))))
(entmod sp_obj)
(entupd (cdr (assoc -1 sp_obj)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq first_column 2)
(setq second_column 14)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq row first_row valuelist nil) 
(setq cicle (- last_row first_row))
(setq step (- second_column first_column))
(repeat cicle 
(setq col (- first_column 1) lst nil)
(repeat 2
(setq name_of_cell (strcat (chr (+ col (ascii "A"))) (itoa row)))
(setq cell (vlax-variant-value (vlax-invoke-method sheet 'evaluate name_of_cell)))
(setq cellvalue (vlax-variant-value (vlax-get-property cell 'value)))
(setq lst (append lst (list cellvalue)))
(setq col (+ col step))
) 
(if(and (= T (numberp (car lst)))(= T (numberp (last lst))))
(progn
(setq lst (list (/ (last lst) 10.0) (- 0.0 (* 10 (car lst)))))
(setq valuelist (append valuelist (list lst))) 
) ;progn
) ;if
(setq row (+ row 1))
)
(setq ln (-(length valuelist)1) i 0)
(vl-cmdf "_pline" (nth i valuelist))
(repeat ln
(setq i (+ i 1))
(vl-cmdf (nth i valuelist))
)
(vl-cmdf "")
(setq sp_obj (entget(entlast)))
(setq width (assoc 43 sp_obj))
(setq sp_obj (subst '(43 . 0.1) width sp_obj))
(setq sp_obj (append sp_obj (list '(62 . 4))))
(entmod sp_obj)
(entupd (cdr (assoc -1 sp_obj)))
(setvar "Osmode" snp)
;;;;;;;;;;;;;;;;;;;;
(vl-catch-all-apply (function (lambda () (vlax-invoke-method book "Close"))))
(vl-catch-all-apply (function (lambda () (vlax-invoke-method xlsappl "Quit"))))
(mapcar (function (lambda (x) (vl-catch-all-apply (function (lambda () 
(vlax-release-object x))))))
(list cell sheet book books xlsappl))
(gc)
(gc)
(gc)
;;;;;;;;;;;;;;;;;;;;
(princ)
)
Victor вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построение в ACADе графика статического зондирования



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение календарного графика на выполнение земляных работ StudentPGS Поиск литературы, чертежей, моделей и прочих материалов 1 26.05.2009 13:52
НС сваи по результатам статического зондирования Тум-тум Основания и фундаменты 1 06.06.2008 13:50