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

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

Построение графика по Excel

Ответ
Поиск в этой теме
Непрочитано 12.07.2010, 11:01 #1
Построение графика по Excel
gizmo_zx
 
Проектировщик ЭО,ЭМ, ЭОС
 
Нижний Новгород
Регистрация: 18.07.2007
Сообщений: 256

Добрый день.

Есть программка
"Программка для построения графиков по данным из екселя." 2008
http://dwg.ru/dnl/?id=4177&page=1

все устраивает, но надо шкалу логарифмическую по X.

Может, у кого завалялось, что-нибудь...
есть еще такая тема...
http://forum.dwg.ru/showthread.php?t=39092
В лиспе не силен... но подозреваю она тоже логарифмическую шкалу не дает

Количество графиков изменяемое (от 1 до 20).

Вложения
Тип файла: zip карта селективности1.zip (27.8 Кб, 354 просмотров)

Просмотров: 12176
 
Непрочитано 15.07.2010, 20:33
#2
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 813


Цитата:
Сообщение от gizmo_zx Посмотреть сообщение
Добрый день.

Есть программка
"Программка для построения графиков по данным из екселя." 2008
http://dwg.ru/dnl/?id=4177&page=1

все устраивает, но надо шкалу логарифмическую по X.

Может, у кого завалялось, что-нибудь...
есть еще такая тема...
http://forum.dwg.ru/showthread.php?t=39092
В лиспе не силен... но подозреваю она тоже логарифмическую шкалу не дает

Количество графиков изменяемое (от 1 до 20).
Ты можешь проверить насколько правильно следующий код
создает логарифмическую шкалу на отрезке
Начерти горизонтальную линию для удобства проверки
длиной 10 единиц (слева направо)
Затем запусти следующий код:
Код:
[Выделить все]
;;try.lsp
(defun C:try  (/ ang cnt dist elist en ent logs lst num p1 p2 step)
  (setq	ent   (entsel "\n  >>  Select line >>")
	en    (car ent)
	elist (entget en)
	p1    (cdr (assoc 10 elist))
	p2    (cdr (assoc 11 elist))
	ang   (angle p1 p2)
	dist  (distance p1 p2)
	num   10
	step  (/ dist num)
	)
  (setq lst (list (log 1)))
  (setq cnt 1)
  (repeat 10
    (setq lst (cons (log (1+ cnt)) lst))
    (setq cnt (1+ cnt)))

  (setq logs (mapcar (function (lambda(x)
				 (* (/ x (apply '+ lst)) dist)))
		     lst)
	)
  (command "._line"
	   "_non"
	   p1
	   "_non"
	   (mapcar '+ p1 (list 0 40 0))
	   "")
  
  (foreach item  logs
    (command "._line"
	     "_non"
	     p1
	     "_non"
	     (mapcar '+ p1 (list 0 40 0))
	     "")
    (setq p1 (polar p1 0 item))
    )
  (princ)
  )
~'J'~
Олег (jr.) вне форума  
 
Непрочитано 15.07.2010, 22:20
#3
mnasoft

инженер
 
Регистрация: 07.07.2010
Украина
Сообщений: 2


В своё время мне пришлось строить много графиков в логарифмических и нелогарифмических координатах.
Для построения мной использовался следующий подход:
1) Примитив отрезок преобразуется в примитив шкала (отрезок с расширенными данными). Расширенные данные задают:
- какому значению соответствует начальная и конечная точка отрезка;
- признак того, какая это шкала (логарифмическая или обыкновенная);
- имя шкалы (подпись).
2) Для построения графика нужны по крайней мере 2 такие шкалы. Причем они могут располагаться как нормально (под углом 90 градусов), так и под некоторым углом(это позволяет строить графики и в косоугольных координатах).
Для построения графиков по такому алгоритму можно воспользоваться комплексом программ:
http://mnasoft.mksat.net/downloads/M...17_utils_r.msi
Этот комплекс выложен и на dwg.ru.

К командам для построения графиков относятся команды:
a1 a2 a2t a2xy_t a2xyn_t a4 a5 a6
c1 c2 c3 c4
ea
exel_read
из перечня команд
http://mnasoft.mksat.net/mnas_cad_ut...mand_list.html
mnasoft вне форума  
 
Автор темы   Непрочитано 16.07.2010, 10:51
#4
gizmo_zx

Проектировщик ЭО,ЭМ, ЭОС
 
Регистрация: 18.07.2007
Нижний Новгород
Сообщений: 256
<phrase 1= Отправить сообщение для gizmo_zx с помощью Skype™


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
Ты можешь проверить насколько правильно следующий код
создает логарифмическую шкалу на отрезке
Начерти горизонтальную линию для удобства проверки
длиной 10 единиц (слева направо)
Код отлично строит логарифмическую сетку.
Но мне надо не сетку, а шкалу X преобразовать в логарифмическую при построении графика

Тут сам накропал на VBA
Код:
[Выделить все]
Attribute VB_Name = "Module4"
Option Explicit

Sub demo()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlRange As Excel.Range
Dim file1 As String

Set xlApp = Excel.Application
xlApp.Visible = True
xlApp.Volatile

' обновление экрана Excel
'xlApp.ScreenUpdating = False
'xlApp.DisplayAlerts = False
'
file1 = Excel.Application.GetOpenFilename _
(FileFilter:="Excel Files (*.xls),*.xls", _
Title:="Select Excel files for writing", MultiSelect:=False)
'
Set xlBook = xlApp.Workbooks.Open(file1)
Set xlSheet = xlApp.Sheets.Item(1)
Set xlRange = xlSheet.Cells(1, 1)

' определение последней ячейки
Dim iClm_row, iClm_col, i, fit_i As Integer
iClm_row = xlApp.ActiveCell.SpecialCells(xlLastCell).Row
iClm_col = xlApp.ActiveCell.SpecialCells(xlLastCell).Column

    ' массивы для spline
    Dim splineObj As AcadSpline
    Dim startTan(0 To 2) As Double
    Dim endTan(0 To 2) As Double
    Dim fitPoints() As Double
    
    'определение размера массива по кол-ву строк на листе Excel
    Dim mas_raz As Integer
    mas_raz = (iClm_row * 3) - 1
    ReDim fitPoints(0 To mas_raz)


xlApp.Range("A1").Select
xlApp.Range("A1").Activate

' загрузка данных в массив из Excel
fit_i = 0
For i = 0 To iClm_row - 1

    fitPoints(fit_i) = Val(xlApp.ActiveCell.Offset(i, 0).Value)
    fit_i = fit_i + 1
    fitPoints(fit_i) = Val(xlApp.ActiveCell.Offset(i, 1).Value)
    fit_i = fit_i + 1
    fitPoints(fit_i) = 0
    fit_i = fit_i + 1

Next i

   
    
    startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0
    endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0
    ' построение сплайна
    Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)

'''
'
'''
xlApp.ScreenUpdating = True
xlBook.SaveAs file1
xlBook.Close
xlApp.DisplayAlerts = True
xlApp.Quit

DoEvents


Set xlRange = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing



End Sub
Лист excel, выглядит так, заждое число в своей яцейке

1 1
5 10
10 0
5 5

Последний раз редактировалось gizmo_zx, 16.07.2010 в 11:15. Причина: с багом справился самостоятельно
gizmo_zx вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Построение графика по Excel

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение Excel к AutoCad 2008 c помощью базы ODBC Eddicordo AutoCAD 4 03.02.2011 17:01
Autocad Architecture 2011 не воспринимает Excel. Cyprus Вертикальные решения на базе AutoCAD 3 17.05.2010 18:23
Построение в ACADе графика статического зондирования Gotch Программирование 2 06.09.2009 09:10
Построение календарного графика на выполнение земляных работ StudentPGS Поиск литературы, чертежей, моделей и прочих материалов 1 26.05.2009 13:52
Проблема вставки диаграмм в ACAD 2009 из Excel 2007 ST2 AutoCAD 1 26.05.2009 01:30