WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
not to scale же - можешь от балды рисовать в чем угодно )))
Абсолютным чувством вкуса обладал только Прокруст
У всех остальных людей оно относительное
Прям именно такой сложности можно в Corel нарисовать. Но быстро это получится если ты уже в кореле начально-нормально разбираешься, с нуля там свихнуться можно.
Бывает надо сложней, с кучей стрелочек, когда специфицируются разные задержки, временные интервалы, гистерезисы...
Думал есть некий не шибко сложный софт, который заточен на подобную графику.
Хотелось не только возить мышой, но и задавать аналитический или текстово. Типа matplotlib в пайтоне, только с опцией дорисовать мышкой.
WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
Схематические графики, скорее всего, были целиком нарисованы в CorelDraw или аналоге.
Графики, которые основаны на реальных данных, можно сперва строить в Origin, потом экспортировать в CorelDraw, и поверх дорисовывать необходимые элементы.
В этой схеме есть свои дебильные факапы (в старых ориджинах можно было тупо делать copy page, и потом вставлять ее в corel, но теперь это частно корежит шрифты, и необходимо делать экспорт pdf -> импорт pdf), но никакой альтерантивы я не вижу. Написать корректный промпт для chatgpt или прописать мат функции, которые будут описывают форму каждой кривой, будет занимать не меньше времени, чем рисовка в origin + coreldraw
А Gnuplot - это примитивная программа рисовки данных. Он гораздо менее гибок, чем ориджин (даже если сравнивать только функции построения графиков, а не всё то, что может делать Origin)
На счет нормальных людей не знаю, сам подобное рисую в Visio.
Очень может быть что и этот график нарисован там же.
Вот в Visio оно и есть: разные стрелки, толщины, стили линии. Изогнутые линии. Все рисуется довольно просто и интуитивно, особенно в старых версиях 00-х годов.
В pdf-ке из этой темы графики рисовал в нем.
Последний раз редактировалось buratino; 08.11.2025 в 11:31.
Спасибо за советы, я хотел нечто иное.
Я не хочу рисовать это всё с нуля, особенно, когда надо внести изменения.
Поясню идею, в механических кадах я могу задать параметризованую модель и поменяв несколько параметров модель перестроится самостоятельно.
Я хочу аналогичное в графике. В гнуплот оно реально получается, просто муторно.
Я же программер, это неизлечимый диагноз.
WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
Посмотрите тему о рисовании графиков и программировании
https://www.cqham.ru/forum/showthrea...=1#post2066210
Сергей
Так это уже две программы получается? Если мышку правилом не привязать, то экспорт.
p.s
https://stackoverflow.com/questions/...ltage-as-input
https://www.cadforum.cz/en/how-to-co...tocad-tip12641
Я почти все рисунки рисую в RuSplan. И схемы, и картинки. Простой векторный редактор.
- Что значит маловато шлюпок?! Не разводите панику, это непотопляемый корабль!
Томас Эндрюс, конструктор "Титаника"
«Не торопитесь соглашаться или опровергать. Не так уж важно, что утверждает или отрицает автор. Важно то, что он направляет Ваше внимание по определенному руслу». Павел Сергеевич Таранов.
Ворд + вайбкодинг на python+matplotlib дает нужный результат. Почти вайбкодинг, некоторые вещи в коде быстрей поправить руками, нежели заставить бота адекватно написать.
Возможно Visio с VBA будут не хуже, но у меня лапки.
WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
Дык ктож заставляет жестко следовать измам?
В Visio можно создать фигуру где её геометрия связана, например, с Excel.
И в тоже время таскать мышкой, менять цвет, толщину, масштаб, видимость и др.
Вот, что говорит AI
Для Visio Pro такую задачу решают через **ShapeSheet** и **Data Linking**. Ниже — рабочий подход, который позволяет построить полилинию, координаты вершин которой читаются из Excel.
---
## 1. Подготовьте данные в Excel
Таблица должна содержать столбцы, например:
| X | Y |
| -- | -- |
| 10 | 10 |
| 40 | 25 |
| 80 | 15 |
| … | … |
Важно: каждая строка — одна вершина полилинии.
---
## 2. Импорт данных в Visio (Data Linking)
1. **Data → Link Data to Shapes**
2. Выберите Excel-файл.
3. Укажите диапазон.
4. В результате получите «внешние данные» (External Data Window).
На этом этапе строчки Excel ещё не знают, какой они задают сегмент линии — это мы сделаем вручную.
---
## 3. Создайте базовую фигуру-полилинию
1. Нарисуйте обычную **Polyline** с нужным количеством точек (столько, сколько строк в Excel, либо чуть больше).
2. Выделите фигуру → **Разработчик → Показать ShapeSheet**.
---
## 4. Привязка координат вершин к данным Excel
В ShapeSheet нужна секция **Geometry1** → **Rows** (MoveTo, LineTo).
Например, если у вас 3 точки:
* Row1: MoveTo
* Row2: LineTo
* Row3: LineTo
Каждая строка имеет клетки: `X`, `Y`.
Теперь нужно связать каждую строку данных Excel с конкретной вершиной полилинии:
### Вариант A — прямое связывание по индексу
1. Привяжите строку Excel к фигуре: правый клик → **Link to Selected Shapes**.
Это создаст клетки `Prop.*` или `Row_xxx.*` в разделе **Shape Data**.
2. Далее в Geometry:
```
Geometry1.X1 = Prop.Row1_X
Geometry1.Y1 = Prop.Row1_Y
Geometry1.X2 = Prop.Row2_X
Geometry1.Y2 = Prop.Row2_Y
...
```
Visio позволяет ссылаться на данные как:
```
=GETVAL("X",INDEX(1))
```
— но это удобно только если вы связываете Excel-таблицу через **Multiple Shapes Mapping**.
### Вариант B — по одной строке Excel на одну вершину
Более надёжный вариант:
1. В External Data окне выделите строку Excel.
2. Перетащите её прямо на фигуру.
Visio создаст **Shape Data** вида:
* Row_1.X
* Row_1.Y
3. Затем вручную установите формулы:
```
Geometry1.X1 = Sheet.User.Row_1_X
Geometry1.Y1 = Sheet.User.Row_1_Y
Geometry1.X2 = Sheet.User.Row_2_X
Geometry1.Y2 = Sheet.User.Row_2_Y
...
```
Где `Row_1_X` — это фактическое имя поля (посмотрите в Shape Data).
---
## 5. Автоматизация через User-секции (рекомендуется)
Чтобы избежать хаоса:
1. Добавьте в ShapeSheet → **Insert Section → User**.
2. Создайте переменные:
```
User.P1X = Prop.X1
User.P1Y = Prop.Y1
User.P2X = Prop.X2
User.P2Y = Prop.Y2
...
```
3. В Geometry ссылайтесь только на User.*:
```
Geometry1.X1 = User.P1X
Geometry1.Y1 = User.P1Y
Geometry1.X2 = User.P2X
Geometry1.Y2 = User.P2Y
```
Так проще поддерживать.
---
## 6. Динамическое изменение числа точек
Visio не умеет автоматически добавлять Geometry-строки по считываемым данным — это делают макросом.
Пример VBA:
```vba
Sub BuildPolylineFromExcelData()
Dim shp As Shape
Set shp = ActivePage.Shapes("Polyline")
Dim rs As DataRecordset
Set rs = ActiveDocument.DataRecordsets(1)
Dim rowID As Long
Dim x As Double, y As Double
Dim i As Integer
* Очистить Geometry
shp.DeleteSection visSectionFirstComponent
shp.AddSection visSectionFirstComponent
i = 0
For Each rowID In rs.GetDataRowIDs("")
rs.GetRowData rowID, arr
x = arr(0)
y = arr(1)
If i = 0 Then
shp.AddRow visSectionFirstComponent, visRowMoveTo, visRowFirst
Else
shp.AddRow visSectionFirstComponent, visRowLineTo, visRowLast
End If
shp.CellsSRC(visSectionFirstComponent, i, visX).FormulaU = x
shp.CellsSRC(visSectionFirstComponent, i, visY).FormulaU = y
i = i + 1
Next
End Sub
```
Этот макрос строит полилинию из любого количества строк Excel.
---
## Если нужно — подготовлю:
* готовый stencil с такой фигурой,
* макрос под вашу структуру Excel,
* фигуру с параметрическими User-секциями,
* автоматическое обновление при изменении Excel.
Сформулируйте, какой именно вариант нужен: вручную в ShapeSheet, полностью автоматизировано или смешанный.[свернуть]
Все фигуры в Visio - это просто XML.
Я не хочу теперь изучать Visio, VBA и подобное - оно бесперспективно в нынешних реалиях.
Задачу уже решил, но получилось дорого, поскольку первый раз. Копание показывает два направления
1. Автоматизация в кадах есть, в том числе через пайтон. Пример для компаса https://habr.com/ru/articles/323078/ ии говорит для freecad интерфейс для пайтона гораздо нативней и интересней.
2. У пайтона конечно есть продвинутые библиотеки машинной/инженерной графики. То, что я писал свой набор функций для matplotlib - это только моя глупость, вызванная привычкой к этой библиотеке.
WBR, Michael.
Цель расчетов - понимание, а не числа (с) Хемминг.
Дык в том и прелесть вайбкодинга, что достаточно знания принципов, чтобы делать приложения.
Я на 1 из 10 знаю python и VBA, и они мне тоже на икс не упали.
Но это не мешает писать довольно сложные утилиты.
В этом случае AI выступает, как быстрый справочник и кодер.
Намедни не понравилось мне обычное логирование в python, устал выискивать нужную информацию в сплошном потоке серости.
Говорю замени на цветное, но "умное".
Бздынь - готово.
![]()
Социальные закладки