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

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

Интересная задачка по автоматическому построению графика (схемы)

Ответ
Поиск в этой теме
Непрочитано 18.11.2012, 06:48 #1
Интересная задачка по автоматическому построению графика (схемы)
rus_75
 
Регистрация: 09.10.2010
Сообщений: 2

Доброго времени суток!
Прошу помочь решить следующую задачку:
1. Имеем объекты - трубопроводы : линейно-протяженный объект №1, линейно-протяженный объект №2, линейно-протяженный объект №3 и др.
2. Трубопроводы пересекают различные преграды – реки, болота, дороги и др.
3. На трубопроводах установлено различное оборудование (КИП, УКЗ, БДР и др.)
4. У каждого оборудования имеются свойства (Наименование, условно-графические обозначения, измеренные на этом оборудовании значения напряжения и др.)
5. Необходимо в МАСШТАБЕ построить примитивную линейную технологическую схему.
6. На схеме необходимо отразить:
a. Одну, Две или Три нитки трубопроводов;
b. Расстановку УГО оборудования и преград на каждой нитке;
c. График контрольных значений (для визуального контроля измеренных значений) для каждой нитки;
d. График измеренных значений для каждой нитки.
7. Сложность реализации этого в Excel:
a. Самое главное – невозможность АВТОМАТИЧЕСКОГО построения на графике линий ниток трубопровода, АВТОМАТИЧЕСКОЙ расстановки условно-графических обозначений (вообще проблема нарисовать средствами Excel эти УГО и заставить график нанести это по указанному километру установки на Диаграмму) имея заполненную таблицу с данными.
b. Построение графика в Масштабе – это можно сделать только выбрав вид Диаграммы - ТОЧЕЧНАЯ.
c. Ограничение в длину 256 ячейками – на трубопроводе, например, может располагаться более 500 КИПов. – но это можно обойти разбив трубопровод на участки и разместить в разных листах одного файла Excel.
8. Самый главный вопрос – можно ли имея таблицу в Excel, строить эту схему с наложенными графиками контрольных и измеренных значений в AUTOCAD.
9. Как «прикрутить» изображение УГО каждому виду преграды и оборудования.

Вложения
Тип файла: rar Таблица.rar (7.0 Кб, 82 просмотров)

Просмотров: 5145
 
Непрочитано 18.11.2012, 09:59
#2
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Никакого отношения такие "задачки" к Excel не имеют.
Решать надо в любой настоящей среде программирования с помощью базы данных. Может и база данных формата Access (mdb) подойти (но не сама программа MS Access) для хранения неограниченных объемов данных.

База данных должна содержать несколько связанных таблиц, например для выбора УГО. Непременно должны быть и координаты узлов объектов, иначе никаких схем (да еще в масштабе, да еще с пересечениями, да еще с расстановкой УГО) не получить.

95% объема такой программы будет работа с базой данных. И 90% работы - продумывание правильной концепции. А уже последующее построение схемы в AutoCAD (при известных координатах) достаточно простое. Тем более - формирование любых графиков, которые легко автоматически "рисуются" по информации из БД при построении отчетов с использованием соответствующих компонентов.
ShaggyDoc вне форума  
 
Непрочитано 18.11.2012, 11:35
#3
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


Все элементарно делается в Access с VBA макросами, которые все это рисуют в AutoCAD'е
trir вне форума  
 
Непрочитано 18.11.2012, 12:59
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от rus_75 Посмотреть сообщение
Самый главный вопрос – можно ли имея таблицу в Excel, строить эту схему с наложенными графиками контрольных и измеренных значений в AUTOCAD.
Можно.
По моему первое что необходимо понять - а нужен-ли в этой задаче Excel и Autocad как таковые?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 18.11.2012, 15:03
#5
rus_75


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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Можно.
По моему первое что необходимо понять - а нужен-ли в этой задаче Excel и Autocad как таковые?
Спасибо за ответы всем ответившим

А что Вы посоветуете использовать? Excel применяется как форма первичного сбора данных.
rus_75 вне форума  
 
Непрочитано 18.11.2012, 15:16
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Из excel'я их можно вытащить абсолютно куда угодно, вопрос в том где и в чем их нужно "визуализировать" и что в дальнейшем кроме непосредственно просмотра с этими графами нужно будет делать - использовать автокад, только для того чтоб через него посмотрерть - по меньшей мере затрано, как по деньгам, так и по системным ресурсам, другое дело если потом предполагается в нем с этими данными работать. А вариантов тут тьма, от графиков в екселе, до самостоятельной программы с импортом и экпортом от и во "вся", собственным просмотром, редактированием, печатью и пр.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 18.11.2012, 16:22
#7
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,596


я сейчас маюсь такой же фигнёй, только в нанокаде. но думаю, что в акаде всё тоже самое

делаю так:
в экселе необходимо с помощью формул получить код будущей программы на vbs, например:
формула в экселе
Код:
[Выделить все]
="Line " & F12+G12 & "," & 0 & "," & F12+G12 & "," & C27
на выходе получаем
Line 0,30,120,30

полный код, который я получаю в экселе:
Dim x1
Dim y1
Dim x2
Dim y2
Dim dx
Dim dy
Dim dimtext
Dim text1

ThisDrawing.Layers.Add("КЖ_арматура кжи")
ThisDrawing.Layers.Add("КЖ_размеры")
ThisDrawing.Layers.Add("КЖ_0")

Line 15,0,15,3620
Line 105,0,105,3620
Line 0,30,120,30
Line 0,510,120,510
Line 0,2850,120,2850
Line 0,3000,120,3000

DimAlignedText 0,0,120,0,0,-330,"120"
DimAlignedText 15,0,105,0,0,-200,"90"

DimAlignedText 0,0,0,3620,-360,0,"3620"
DimAlignedText 0,0,0,30,-200,-100,"30"
DimAlignedText 0,30,0,510,-200,0,"120 x 4 = 480"
DimAlignedText 0,510,0,2850,-200,0,"180 x 13 = 2340"
DimAlignedText 0,2850,0,3000,-200,0,"150"
DimAlignedText 0,3000,0,3620,-200,0,"620"

tLine 15,1810,405,2110
tLine 105,1810,405,2110
tLine 405,2110,555,2110
mytext "1",445,2130
mytext "2шт",415,2040

tLine 60,3000,360,3300
tLine 360,3300,510,3300
mytext "2",400,3320





ThisDrawing.Application.ZoomAll

Sub Line(x1,y1,x2,y2)
Dim oLine
Set oLine = ThisDrawing.ModelSpace.AddLine(CStr(x1)+","+CStr(y1)+","+CStr(0), CStr(x2)+","+CStr(y2)+","+CStr(0))
oLine.Layer = "КЖ_арматура кжи"
End Sub

Sub tLine(x1,y1,x2,y2)
Dim oLine
Set oLine = ThisDrawing.ModelSpace.AddLine(CStr(x1)+","+CStr(y1)+","+CStr(0), CStr(x2)+","+CStr(y2)+","+CStr(0))
oLine.Layer = "КЖ_0"
End Sub

Sub DimAligned(x1,y1,x2,y2,dx,dy)
Dim oDim
Set oDim = ThisDrawing.ModelSpace.AddDimAligned(CStr(x1)+","+CStr(y1)+","+CStr(0), CStr(x2)+","+CStr(y2)+","+CStr(0),CStr(dx)+","+CStr(dy))
oDim.Layer = "КЖ_размеры"
oDim.ScaleFactor = "20"
oDim.TextInside = true
End Sub

Sub DimAlignedText(x1,y1,x2,y2,dx,dy,dimtext)
Dim oDim
Set oDim = ThisDrawing.ModelSpace.AddDimAligned(CStr(x1)+","+CStr(y1)+","+CStr(0), CStr(x2)+","+CStr(y2)+","+CStr(0),CStr(dx)+","+CStr(dy))
oDim.Layer = "КЖ_размеры"
oDim.TextOverride = dimtext
oDim.ScaleFactor = "20"
oDim.TextInside = true
End Sub

Sub mytext(text1,x1,y1)
Dim txt1
Set txt1 = ThisDrawing.ModelSpace.addtext(text1,CStr(x1)+","+CStr(y1)+","+CStr(0),CStr(50))
txt1.Layer = "КЖ_0"
End Sub


дальше в экселе создаю макрос, который из определённых ячеек сохраняет "код" во внешний файл:
Код:
[Выделить все]
Sub MyOutput1()
    Open "C:\autosave\kr.vbs" For Output As #1
 
    For Each MyRange In Range("M8:M40")
        Print #1, MyRange
    Next MyRange
    
    Close #1
End Sub
кнопку запуска макроса можно вытащить в меню

дальше в нанокаде настраиваю кнопку, которая запускает скрипт. всё =)
на выходе получаю вот такой миленький каркас
(с учётом настроек текстовых и размерных стилей в шаблоне, настройке слоев)

п.с. я не программист =) точнее сказать, зарабатываю я не программированием, а проектированием ЖБК, просто пытаюсь автоматизировать рутину
__________________
.: WikiЖБК + YouTube :.

Последний раз редактировалось swell{d}, 18.11.2012 в 16:34.
swell{d} вне форума  
 
Непрочитано 18.11.2012, 19:48
#8
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


2 swell{d}
А можно посмотреть Ваш xls файлик?
Boxa вне форума  
 
Непрочитано 18.11.2012, 21:16
#9
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,596


Boxa,
xlsm - он с макросами
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 28.11.2012, 11:19
1 | #10
Сергей Дубина


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


Прикольно. ИМХО громоздко. Поделюсь своим методом, может пригодится:
1. Создается и подключается надстройка в которой дублируются нужные команды автокада. В экселе они будут видны как "пользовательские функции".
2. В экселе делается кнопка которая все это "добро" посылает в коммандную строку:
Код:
[Выделить все]
Sub draw()
Dim a As Range
Dim str As String
On Error GoTo ds

Set drw = AutoCAD.ActiveDocument
Set a = Selection
For i = 1 To a.Columns.Count
    For j = 1 To a.Rows.Count
        str = a.Cells(j, i).Value
        If Len(str) > 0 Then
            drw.SendCommand str
        End If
    Next j
Next i
ds:
End Sub
3. Создается в экселе шаблон для построения нужного изделия.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.PNG
Просмотров: 207
Размер:	37.9 Кб
ID:	91371  Нажмите на изображение для увеличения
Название: Безымянный2.PNG
Просмотров: 198
Размер:	22.3 Кб
ID:	91372  
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Интересная задачка по автоматическому построению графика (схемы)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересная задача по построению shadowxnex AutoCAD 10 08.10.2012 10:30
Интересная задачка... Построение развертки наклонного конуса Дмитррр Разное 34 11.09.2007 23:25