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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C#. nanoCAD, Autocad. Экспорт геометрии в позиционный проект Stark ES

C#. nanoCAD, Autocad. Экспорт геометрии в позиционный проект Stark ES

Ответ
Поиск в этой теме
Непрочитано 12.02.2022, 07:14 5 | #1
C#. nanoCAD, Autocad. Экспорт геометрии в позиционный проект Stark ES
Нубий-IV
 
Инженер-философ
 
Хабаровск
Регистрация: 24.04.2019
Сообщений: 1,867

Если геометрия уже начерчена в каде, задать толщины с высотами и экспортировать получается быстрее, чем заново обводить в DxfModel/Poseidon.




Код:
[Выделить все]
Загрузка в nanoCad / Autocad командой NETLOAD (выбрать файл PosExport.dll)
После загрузки станут доступны 2 новые команды:
	posExportGeometry - Экспорт геометрии
	posExportLoadings - Экспорт нагрузок

=================================
	Экспорт геометрии
=================================
Слои конвертируются в этажи

Горизонтальные замкнутые полилинии                                          - в отверстия
Горизонтальные замкнутые полилинии с глобальной толщиной                    - в плиты
Наклонные замкнутые полилинии с глобальной толщиной                         - в рампы
Горизонтальные замкнутые прямоугольные полилинии с положительной 3D-высотой - в колонны
Горизонтальные замкнутые прямоугольные полилинии с отрицательной 3D-высотой - в сваи
Горизонтальные полилинии с глобальной толщиной и положительной 3D-высотой   - в стены
Горизонтальные полилинии с глобальной толщиной и отрицательной 3D-высотой   - в балки
Горизонтальные круги с положительной 3D-высотой                             - в колонны
Горизонтальные круги с отрицательной 3D-высотой                             - в сваи
Горизонтальные отрезки с положительной 3D-высотой                           - в вертикальные отверстия
Обычные отрезки                                                             - в стержни

Экспортируется также содержимое блоков
	Элементы блока, лежащие на слое "0", перемещаются на слой родительского блока

В названии слоя в круглых скобках можно переопределить парметры объектов. Для этого нужно записать параметры в виде:

Этаж 1 (E 3.1e6  rho 3.0  nu 0.3  t 0  g -2.5  p -2  dr 0.3  ds 0.4  x 0.1  y 0.2  w 45   Ground 1)
	E, rho, nu - параметры материала
	t - толщина плиты или рампы, м. 
		Позволяет задать нулевую толщину плиты для грунта.
		Позволяет чертить плиты с толщиной 1, чтобы не загромождать чертеж.
	g - постоянная нагрузка для плит, рамп и стен, кПа
	p - временная нагрузка для плит и рамп, кПа
	dr, ds - шаг сетки по осям r,s, в метрах, 
	x, y   - координаты начала шаблона сетки, в метрах
	w - угол поворота шаблона в градусах
	Ground - тип грунтового основания для плит
		1 - плита на грунтовом основании
		2 - высокий свайный ростверк
		3 - низкий свайный ростверк

Если параметры материалов или сетки не заданы, будут приняты параметры по умолчанию.
При записи проекта скобки с параметрами будут удалены из имени этажа.

=================================
	Экспорт нагрузок
=================================
Слои конвертируются в этажи.

Точки               - в сосредоточенные нагрузки.
Отрезки             - в линейные нагрузки.
Замкнутые полилинии - в плоскостные нагрузки.

Значение нагрузки равно высоте. Если высота нулевая, значение берется из параметров слоя.

В конце имени слоя в круглых скобках можно записать параметры в виде: 
	Нагрузки. Этаж 1 (LF 2   Gen 1   Type L)
		LF	- Номер загружения
		Gen	- Подгонка сетки
		Type	- Тип нагрузки (только для объектов с ненулевой высотой):
			  L - локальная нагрузка
				- Для точек - вдоль нормали (Pt)
				- Для отрезков - вдоль нормали (Pt).
					Если отрезок наклонен к нормали - нагрузка раскладывается в две проекции (Ps и Pt)
				- Для полилиний - вдоль нормали (Pt)
			  G - глобальная нагрузка
				- Автоматически раскладывается в проекции на глобальные оси (Px, Py, Pz)
			  Если тип не указан, он определяется автоматически по направлению:
				- нагрузки, направленные вдоль мировых осей XYZ, становятся глобальными
				- нагрузки, не совпавшие с мировыми осями, становятся локальными

Для точек с нулевой высотой дополнительно:
	Нагрузки. Этаж 1 (Px 1.1   Py 1.2   Pz 1.3)
		Глобальная нагрузка
		Px, Py, Pz	- Проекции на глобальные оси
	Нагрузки. Этаж 1 (Pr 2.1   Ps 2.2   Pt 2.3)
		Локальная нагрузка
		Pr, Ps, Pt	- Проекции на локальные оси

Для отрезков с нулевой высотой дополнительно:
	Нагрузки. Этаж 1 (Px 1.1   Py 1.2   Pz 1.3)
		Равномерно распределенная глобальная нагрузка
		Px, Py, Pz	- Проекции на глобальные оси.
	Нагрузки. Этаж 1 (Pr 2.1   Ps 2.2   Pt 2.3)
		Равномерно распределенная локальная нагрузка
		Pr, Ps, Pt	- Проекции на локальные оси
	
	Нагрузки. Этаж 1 (Px1 1.1   Px2 2.1   Py1 1.2   Py2 2.2   Pz1 1.3   Pz2 2.3)
		Неравномерно распределенная глобальная нагрузка
		Px1, Py1, Pz1	- Проекции на глобальные оси в начале отрезка
		Px2, Py2, Pz2	- Проекции на глобальные оси в конце отрезка
	Нагрузки. Этаж 1 (Pr1 1.1   Pr2 2.1   Ps1 1.2   Ps2 2.2   Pt1 1.3   Pt2 2.3)
		Неравномерно распределенная локальная нагрузка
		Pr1, Ps1, Pt1	- Проекции на локальные оси в начале отрезка
		Pr2, Ps2, Pt2	- Проекции на локальные оси в конце отрезка

Для полилиний с нулевой высотой дополнительно:
	Нагрузки. Этаж 1 (Px 1.1   Py 1.2   Pz 1.3)
		Равномерно распределенная глобальная нагрузка
		Px, Py, Pz	- Проекции на глобальные оси.
	Нагрузки. Этаж 1 (Pr 2.1   Ps 2.2   Pt 2.3)
		Равномерно распределенная локальная нагрузка
		Pr, Ps, Pt	- Проекции на локальные оси

	Нагрузки. Этаж 1 (Px1 1.1   Px2 2.1   Px3 3.1   Py1 1.2   Py2 2.2   Py3 3.2   Pz1 1.3   Pz2 2.3   Pz3 3.3)
		Неравномерно распределенная глобальная нагрузка
		Px1, Py1, Pz1	- Проекции на глобальные оси в  первой точке
		Px2, Py2, Pz2	- Проекции на глобальные оси во второй точке
		Px3, Py3, Pz3	- Проекции на глобальные оси в третьей точке
	Нагрузки. Этаж 1 (Pr1 1.1   Pr2 2.1   Pr3 3.1   Ps1 1.2   Ps2 2.2   Ps3 3.2   Pt1 1.3   Pt2 2.3   Pt3 3.3)
		Неравномерно распределенная локальная нагрузка
		Pr1, Ps1, Pt1	- Проекции на локальные оси в  первой точке
		Pr2, Ps2, Pt2	- Проекции на локальные оси во второй точке
		Pr3, Ps3, Pt3	- Проекции на локальные оси в третьей точке

При записи проекта скобки с параметрами будут удалены из имени этажа
Во вложенииях:
  • Готовая программа, собранная под nanoCad 5.1 - 22.0 / Autocad 2012 - 2022
    Протестирована под nanoCad 5.1 (NET 3.5) и Autocad 2020 (NET 4.x).
    Под другие версии нанокоада и автокада только собрал, протестировать не могу.
  • Тестовые примеры
  • Исходники
    Файл проекта - под SharpDevelop / Net 3.5 / nanoCad 5.1.
    В папке Lib - пустые файлы подключаемых библиотек для уменьшения веса архива. Для сборки надо заменить их полными версиями из SDK или из папки с установленным нанокадом / автокадом.
    Файлы Build.*.cmd - для сборки без установки SharpDevelop / VisualStudio.
Offtop:
Это старая скриптовая версия, переведенная на C# из-за того, что скриптовые функции выбора игнорируют объекты на заблокированных слоях. А раз уж оно теперь на NET, заодно собрал и под автокад.
Ограничения те же: приходится экспортировать геометрию и нагрузки отдельно, а потом объединять проекты в Stark. Причина - изначально неудачное решение опознавать объекты по геометрии, а не по названиям слоев.
Планирую переделать "как надо", а эту промежуточную версию оставить "как есть". Но, если найдутся косяки - пишите, поправлю.

Миниатюры
Нажмите на изображение для увеличения
Название: 01.png
Просмотров: 326
Размер:	137.1 Кб
ID:	248111  Нажмите на изображение для увеличения
Название: 02.png
Просмотров: 321
Размер:	136.3 Кб
ID:	248112  

Вложения
Тип файла: zip PosExport.zip (313.7 Кб, 44 просмотров)
Тип файла: zip Test.zip (1.01 Мб, 50 просмотров)
Тип файла: zip Src.zip (38.2 Кб, 45 просмотров)


Последний раз редактировалось Нубий-IV, 17.06.2022 в 07:50.
Просмотров: 2711
 
Автор темы   Непрочитано 17.06.2022, 08:37 Обновление
1 | #2
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 1,867


Переделан экспорт нагрузок - добавлены наклонные и переменные нагрузки. Логика получилась несколько запутанной.
  • Точки, линии и полилинии, у которых задана высота, в 3D выглядят "почти как настоящие нагрузки" - так они и экспортируются, с направлением вдоль нормали.

    У отрезков есть тонкость - они не обязательно перпендикулярны своей нормали, нормаль перпендикулярна плоскости построения. Если после построения отрезка в горизонтальной плоскости поменять координату Z одного конца, отрезок наклонится , а нормаль останется вертикальной. Чтобы получить наклонную нагрузку, надо либо сразу строить отрезок в наклонной системе координат, либо поворачивать его через 3D-поворот.

    В любом случае направление нагрузки принимается "как видно в 3D".
    Нагрузки, совпавшие по направлению с осями координат, становятся глобальными, не совпавшие - локальными. Это позволяет простейшие нагрузки (временные, перегородки) задать высотой и слоем без лишних параметров.

    Если надо, можно указать в свойствах слоя тип (Type L) или (Type G), чтобы сделать нагрузки фиксировано локальными (давление грунта) или глобальными (снег), разложение на проекции при необходимости будет сделано автоматически.
  • Если высота не задана - то форму и расположение нагрузки в пространстве видно, а величину и направление действия - нет.
    Тогда форма и расположение берутся из объекта, а значение и направление нагрузки - из свойств слоя.
    Такой вариант нужен для задания переменных нагрузок, потому что разные высоты по точкам в автокаде не задаются.

    Можно указать как постоянную (Px 10) или (Pr 10), так и переменную нагрузку (Px1 10 Px2 20 Px3 30) или (Pr1 10 Pr2 20).

    Направление нагрузки при этом принимается как написано в слое (Px Py Pz - в глобальных осях, Pr, Ps, Pt - в локальных).
  • Для объектов с заданной высотой игнорируются нагрузки в свойствах слоя, для объектов с незаданной высотой - игнорируется тип в свойствах слоя.
    То есть объекты, которые видны как нагрузка в 3D - экспортируются "как видно", а которые видны только как контур - "как написано в слое".
Offtop:
Задолбавшись ждать, когда же перепишу все как надо, переписал по-быстрому как попало .
Заодно собрал и под все версии нанокадов, до которых смог дотянуться.
Миниатюры
Нажмите на изображение для увеличения
Название: 03.png
Просмотров: 314
Размер:	14.2 Кб
ID:	248118  
Нубий-IV вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > C#. nanoCAD, Autocad. Экспорт геометрии в позиционный проект Stark ES

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт файлов из autocad architecture в обычный autocad donna_roza Вертикальные решения на базе AutoCAD 7 27.01.2020 13:57
Проблемы в отрисовке курсора, геометрии и ручек в редакторе блоков в AutoCAD Architecture 2015 BeardMax AutoCAD 8 30.03.2016 19:26
Экспорт в pdf-файл с искаженными цветами из AutoCAD 2015 Dr.. AutoCAD 8 10.09.2014 09:08
Экспорт модели в Ansys из Autocad S_M ANSYS 22 25.01.2013 19:57
AutoCAD 2004 -> 3dMax 5.0 экспорт не работает me AutoCAD 4 03.09.2003 12:23