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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как конвертировать 3D-грань в (плоскую) поверхность на VBA (_convtosurface)?

Как конвертировать 3D-грань в (плоскую) поверхность на VBA (_convtosurface)?

Закрытая тема
Поиск в этой теме
Непрочитано 11.10.2021, 05:01 #1
Как конвертировать 3D-грань в (плоскую) поверхность на VBA (_convtosurface)?
МишаИнженер
 
Регистрация: 14.12.2008
Сообщений: 1,079

Каким образом можно конвертировать 3D-грань в (плоскую) поверхность на VBA? Задача состоит в том чтобы запрограммировать на VBA вызов команды _convtosurface (Меню: "Редактировать" -> "3D-операции" -> "Преобразовать в поверхность").
Затем на VBA мне надо вызвать команду "Наполнить" или _SURFSCULPT (Меню: "Редактировать" -> "Редактирование поверхности" -> "Наполнить").
Как выполнить эти команды: _convtosurface и _SURFSCULPT на VBA?
Просмотров: 2637
 
Непрочитано 11.10.2021, 06:06
#2
trir


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


переходи уже на .NET - там есть BREP API

Последний раз редактировалось trir, 11.10.2021 в 09:57.
trir вне форума  
 
Автор темы   Непрочитано 12.10.2021, 05:46
#3
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,079


Цитата:
Сообщение от trir Посмотреть сообщение
переходи уже на .NET - там есть BREP API
А это на каком языке программирования?
Можно на этом языке написать DLL, а потом вызывать методы и функции из этой DLL из программы на VBA?
Поделитесь пожалуйста ссылкой для скачивания этой среды программирования в которой есть BREP API!
Чем отличается AutoCAD .NET API от BREP .NET API? И есть ли между ними отличия?
Наверное это оболочка Visual C#? Как добавить в Visual C# функции BREP .NET API?

Последний раз редактировалось МишаИнженер, 12.10.2021 в 05:54.
МишаИнженер вне форума  
 
Непрочитано 12.10.2021, 06:10
1 | #4
trir


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


надо подключить acdbmgdbrep.dll
https://www.keanw.com/2011/03/genera...-from-net.html

Цитата:
А это на каком языке программирования?
много разных

Цитата:
Можно на этом языке написать DLL, а потом вызывать методы и функции из этой DLL из программы на VBA?
можно

Последний раз редактировалось trir, 12.10.2021 в 08:17.
trir вне форума  
 
Автор темы   Непрочитано 24.10.2021, 05:32
#5
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,079


На каком Visual языке можно задать нижнюю границу массивов равной 1? Мне кажется принятие решения задавать во всех массивах нижнюю границу равной 0 является признаком деградации и лени программистов Microsoft.
Возможность назначать нижнюю границу массивов надо было оставить пользователю с помощью инструкции "Option Base 1".
Программист должен сам решать с какого числа должен начинаться массив в его программе. С 0, 5 и т.д. в зависимости от поставленных задач, уровня сложности программы и комфортных условий программирования.
Однако, по непонятным причинам, в демократической стране США решили ограничить права программистов и всех заставить использовать массивы с 0.
Это факт интеллектуального насилия кучки ленивых и деградирующих руководителей, которым запудрили мозги такие же их ленивые подчиненные!
Не хочется деградировать вместе с разработчиками. Остались в мире нормальные комплексы программирования или всех поразила эта "оптимизация" в кавычках?
МишаИнженер вне форума  
 
Непрочитано 24.10.2021, 12:16
| 1 #6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,009


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
и всех заставить использовать массивы с 0.
это непонимание базовых вещей - что первый элемент в массиве с нулевым смещением относительно указателя массива.
Сергей812 вне форума  
 
Непрочитано 24.10.2021, 19:12
#7
trir


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


Цитата:
что первый элемент в массиве с нулевым смещением относительно указателя массива.
это C-цетричное мышление, в C# никаких указателей вообще нет
trir вне форума  
 
Непрочитано 24.10.2021, 19:30
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Ну, в явном виде - возможно, и нет. А так-то - как организована передача объектов по ссылке?
Offtop: P.S. Я ничего не понимаю в C / C++ / C# и им подобным языкам, мне реально интересно. Сейчас пытаюсь немного влезьть в эту тему, тихо офигеваю от количества незнаний и непониманий базовых вещей
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.10.2021, 19:35
#9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,009


Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
это C-цетричное мышление, в C# никаких указателей вообще нет
справку иногда читать надо все-таки)
Сергей812 вне форума  
 
Непрочитано 24.10.2021, 21:56
#10
trir


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


Цитата:
справку иногда читать надо все-таки)
это ересь! ;=)

----- добавлено через ~1 мин. -----
Цитата:
как организована передача объектов по ссылке?
они всегда передаются по ссылке, за исключение специально оговоренных случаев
trir вне форума  
 
Автор темы   Непрочитано 25.10.2021, 03:18
#11
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,079


Все это интересно! Мне тоже кажется что по умолчанию все параметры функции передаются в функцию по ссылке: "BeRef" и только пользователь с помощью инструкции "ByVal" может передать значение в функцию по значению. Но прошу ответить на вопрос: в каком современном языке программирования нижнюю границу массивов можно назначать пользователю с 1?
В учебниках по математике не всем приходит в голову начинать числовые ряды с нуля! Почему амеры сделали массивы с нуля? Откуда и почему в их поведении появилась такая токсичность? Сколько замечательных программ мир может не увидеть из-за их ретроградного решения? Может они стали опасаться, что русские могут высадиться на Луну? Может мировой разум или Бог этого опасается? Вот и решили усложнить задачу составления программы стыковки модуля Союз с МКС. Может Луна это очень ценный объект и надо избегать лишних прогулок по ней чтобы сохранить жизнь на Земле? Тогда нас ждет Марс или Венера.
Мне кажется что местные программисты в США звонят в Microsoft и узнают у них специальный код, который позволяет им создавать массивы с 1. А для остальных лохов-пользователей один вариант: массивы с нуля.
Вот и живем мы теперь в стране где предлагают лечить болезни цветными светодиодами и обогреватель без прикрученной сетевой вилки и терморегулятора "ТеплЭко" называют космическим обогревателем.
Даже программистов в стране не хватает, потому что не каждый может справиться со стрессом, вызванным массивами начинающимися с нуля! Раньше программистам было проще когда работали инструкции Option Base 1 или ReDim Массив(1 to 500) as Double. Сейчас благодетель Бог решил усложнить жизнь людям. Получается что Бог любит смотреть на то как люди мучаются! Что делать не понятно.
Подскажите пожалуйста язык, где можно делать массивы с 1!
МишаИнженер вне форума  
 
Непрочитано 25.10.2021, 05:13
#12
Нубий-IV

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


Цитата:
Сообщение от МишаИнженер Посмотреть сообщение
где можно делать массивы с 1
Указывать индексы числами - это недоразумение, вызванное изначально неудачным названием "Computer", или "Электронно-Вычислительная Машина". Отсюда и пошла инерция мышления, заставляющая эти самые индексы непременно вычислять.

На самом деле даже задавать индексы строкой - и то гораздо удобнее. Например Array "Раз Два". Или Array "Адин-Адин". Не нужно помнить, какие там нужны скобочки - круглые или квадратные. Не нужно путаться, как записать квадратный массив - Array[,] или Array[][]. Не нужно бояться перепутать запятую и точку с запятой, что в устаревших языках может привести к катастрофическим последствиям, возможно, даже мирового масштаба.

Еще удобнее был бы голосовой ввод. Сегодня, когда голосовой ввод есть в каждом телефоне, странно выглядят языки программирования, которые не могут уточнить индекс у пользователя, а заставляют думать об этом программиста. Как будто он может заранее предусмотреть все индексы, которые могут понадобиться пользователю. Как будто программист - инопланетянин, и думает цифрами по перфокарте, вместо чтобы говорить слова.

А уж в современном мире, когда искусственный интеллект умеет даже предсказывать случайные числа, пора создать язык, который будет сам понимать, какие индексы нужны в массивах, а не выносить мозг программисту дурацкими задачками, как будто тот сидит на уроке математики в первом классе средней школы, а не занимается серьезным делом.
Нубий-IV вне форума  
 
Непрочитано 25.10.2021, 08:01
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
они всегда передаются по ссылке, за исключение специально оговоренных случаев
В лиспе, как правило, как раз наоборот

МишаИнженер, ты что курил и где брал? Водка так цеплять не может.
Нубий-IV, работа со строками нередко одна из самых затратных, КМК.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.10.2021, 10:01
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,009


МишаИнженер, напишите свой язык программирования - где хоть дробями можете задавать индексы/идентификаторы элементов массива. Но внутри в "машинном коде" все равно будет высчитываться по какой-то формуле смещение от указателя относительно нуля - иначе затраты ресурсов на доступ к произвольному элементу массива будут неоправданно большие. Пока при существующей архитектуре железа иного быть не может - массив: непрерывный участок памяти со значениями либо ссылками на объекты в куче.
Сергей812 вне форума  
 
Непрочитано 25.10.2021, 10:18
#15
trir


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


вообще, обращаться к элементу по индексу - прошлый век!
trir вне форума  
 
Непрочитано 25.10.2021, 10:47
#16
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,009


Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
вообще, обращаться к элементу по индексу - прошлый век!
ну думающие программисты знают - что есть разные виды коллекций: с доступом по индексу, по ключу, стеки и т.д. И выбирают (или реализуют в случае отсутствия) нужный тип коллекции под конкретные задачи...
Сергей812 вне форума  
 
Автор темы   Непрочитано 25.10.2021, 11:00
#17
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,079


VBA в отношении массивов самый продвинутый и самый современный язык программирования!
Слава богу что до VBA не добрались деграданто-оптимизаторы и обнулевщики-ленивоподобные, которые уже успели испортить Visual Basic, Visual C и т.д. Очень скучно становится когда копируешь свой код из VBA в Visual Basic и во всех массивах и циклах надо менять начальные границы. От этого код становится более запутанным и непонятным. Увеличивается вероятность появления ошибки в коде! Если в результате "оптимизации" вероятность ошибок выше, зачем тогда спрашивается нужна такая "оптимизация"?
А в Visual Fortrane осталась возможность задавать вручную нижнюю границу массива равной 1?
МишаИнженер вне форума  
 
Непрочитано 25.10.2021, 11:41
| 1 #18
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Может, закончим оффтопом заниматься и разжигать холивар?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 25.10.2021, 13:26
#19
МишаИнженер


 
Регистрация: 14.12.2008
Сообщений: 1,079


Фортран рулит! https://coderlessons.com/tutorials/k...ortran-massivy
Цитата:
Массивы объявляются с атрибутом измерения .
Например, чтобы объявить одномерный массив с именем number из действительных чисел, содержащий 5 элементов, вы пишете:
real, dimension(5) :: numbers
На отдельные элементы массивов ссылаются путем указания их индексов. Первый элемент массива имеет нижний индекс один. Числа массива содержат пять действительных переменных — числа (1), числа (2), числа (3), числа (4) и числа (5).
Чтобы создать двумерный массив целых чисел 5 x 5 с именем matrix, вы пишете:
integer, dimension (5,5) :: matrix
Вы также можете объявить массив с некоторой явной нижней границей, например —
real, dimension(2:6) :: numbers
integer, dimension (-3:2,0:4) :: matrix
В Фортране по умолчанию нижняя граница массива равна 1
Вот это нормальный язык программирования!
А можно скачать фортран в Visual Studio?
МишаИнженер вне форума  
 
Непрочитано 25.10.2021, 13:32
1 | 1 #20
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


По-хорошему не получилось, буду действовать по-плохому.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как конвертировать 3D-грань в (плоскую) поверхность на VBA (_convtosurface)?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Civil 3D. Обрезать одну поверхность относительно другой dorogi-dorogi Вертикальные решения на базе AutoCAD 5 22.09.2023 11:55
Autocad Civil 3D 2017. Не отображается построенная по поллиниям поверхность, как исправить? valacuga Вертикальные решения на базе AutoCAD 5 30.12.2016 19:10
3d поверхность по точкам Lorens AutoCAD 8 25.11.2015 15:40
Как разделить поверхность в Civil 3D Matrac Вертикальные решения на базе AutoCAD 3 20.10.2014 08:25
плоское наложение растрового изображения на грань 3D тела olegan9014 Вертикальные решения на базе AutoCAD 7 01.06.2010 15:43