Здравствуйте уважаемые коллеги. Пытаюсь начать программировать в Сапфир. Начал знакомиться с доступными материалами. К своему неудовольствию обнаружил что api библиотеки написаны на С++. Но нашел скрипты написанные на java, вот этот например "c:\Users\Public\Documents\SAPFIR\SAPFIR 2016\Service\Test\Building.htm" исследовал код, но не смог найти библиотеку, импортированную в этот скрипт. Может кто то поможет?
Программирование в Сапфир
Здравствуйте уважаемые коллеги. Пытаюсь начать программировать в Сапфир. Начал знакомиться с доступными материалами. К своему неудовольствию обнаружил что api библиотеки написаны на С++. Но нашел скрипты написанные на java, вот этот например "c:\Users\Public\Documents\SAPFIR\SAPFIR 2016\Service\Test\Building.htm" исследовал код, но не смог найти библиотеку, импортированную в этот скрипт. Может кто то поможет?
Программирование в Сапфир, Какие библиотеки за что отвечают
12.10.2016 13:37:39
|
|
|
|
12.10.2016 15:31:34
В первую очередь интересует вопрос подключения к СОМ модели Сапфира. Я хочу знать возможно ли сделать это из IronPython?
|
|
|
|
12.10.2016 17:16:09
Решение найдено
app = System.Runtime.InteropServices.Marshal.GetActiveObject("Sapfir.Application.6.0") |
|
|
|
17.10.2016 16:40:14
Вместе с САПФИР, как правило, устанавливаются файлы документации (прилагается). По Вашему вопросу см. раздел 10 (стр.127). Также могут оказаться полезными файлы "Описание функций автоматизации САПФИР.pdf" и "Схема объектов автоматизации САПФИР.pdf". Вы найдёте их в папке "Файлы документации САПФИР". |
|||
|
|
17.10.2016 17:22:47
Изменено: Khasan Mamaev - 17.10.2016 17:26:55
|
|||||
|
|
26.10.2016 21:06:33
Здравствуйте!
Создаю приложение на С++ используя ваш API, и пытаюсь получить данные об элементах модели созданной в САПФИР 2015 (Демо версия) Нарисовал стену в Сапфире и попытался прочитать ее положение в пространстве (код ниже). Кусок связанный с получением приложения, документа, проекта, этажа работает без вопросов, поэтому опускаю. Методы GetPoints() и у AutoPolyLinу и AutoLine возвращают 0. В чем может быть проблема?
Изменено: Pavel Frantov - 27.10.2016 12:13:14
|
|||
|
|
27.10.2016 12:22:20
Если использовать библиотеку SpPlugin.dll то код программы определения точек стены может быть следующий
Изменено: vibo - 27.10.2016 12:28:03
|
|||
|
|
28.10.2016 13:35:05
Может быть я не уточнил, но речь идет о доступе к Сапфиру из сторонней программы, а не о написании плагина.
Делаю все тоже самое, но через COM - не выходит! Пробовал создавать стену - также не получается задать положение ее осевой. Вот решил попробовать получить данные готовой стены - и снова не выходит. Для получения описания классов и методов C++ использую SAPFIR.tlb лежащую в папке С:\Program Files (x86)\LIRA SAPR\LIRA SAPR 2015 DEMO\Sapfir 2015 (Study version) |
|
|
|
28.10.2016 14:48:37
1. SpPlugin.dll можно подключить к другой программе и пользоваться тем сервисом что предоставляет SpPlugin.dll (массивы точек, матрицы, геометрические преобразования......)
2. Если использовать SAPFIR.tlb, то есть варианты. 2.1 если .NET Framework то подключаете SAPFIR.tlb в свойствах проекта как ссылку. Для доступа к точкам нужен массив SafeArray или JScriptArray, которые нужно подставить в VARIANT. Такая реализация для работы с массивами вариантов нужна для совместимости со скриптовыми языками (JScript, VBScript,...). Вот пример как это можно организовать:
Изменено: vibo - 31.10.2016 10:27:38
|
|||||
|
|
31.10.2016 15:57:06
Спасибо за пример!
Не хватало предварительной инициализации VARINT как массива перед вызовом GetPoints()
|
|||
|
|
11.11.2016 20:02:56
Пытаюсь что то делать в Сапфир из IronPython. Пытаюсь построить круглую колонну из примера, не получается, строит колонну квадратного сечения 3000х400х400, точки привязки работают, вот код:
Изменено: Khasan Mamaev - 11.11.2016 20:06:02
|
|||
|
|
11.11.2016 20:04:17
эту строку закомментил, потому что Питон ругается "Предупреждение:IronPythonEvaluator.EvaluateIronPythonScript операция не выполнена.
File "", line 27 Column.Parameter(param1) = elevation # // возвышение отн.уровня: ноль этажа / высота этажа ^ SyntaxError: can't assign to function call"
Изменено: Khasan Mamaev - 11.11.2016 20:08:00
|
|||
|
|
13.11.2016 23:30:33
Пример создания колонны на IronPython
|
|||
|
|
14.11.2016 06:45:47
Гениально!) Спасибо большое, получилось
|
|
|
|
27.02.2017 19:15:13
использую net Framework C#
Подключил SAPFIR.tlb как ссылку Как обратиться дальше к документу этажу и далее Спасибо |
|
|
|
27.02.2017 20:09:10
|
|||
|
|
28.02.2017 05:14:28
В руководстве написано что можно и на NetFramework. А там вроде без разницы язык. Даже на F# можно. Хотя могу ошибаться.
Второй вопрос - правильно ли я оцениваю перспективы. Сапфир будет развиваться в сторону увеличения архитектурной составляющей? Т.е. в перспективе 5-10 лет архитекторы смогут вычерчивать свои чертежи? Т.е. через 5 лет Сапфир + Лира >= Revit + Robot? |
|
|
|
28.02.2017 11:48:51
Пример кода на C#
Изменено: vibo - 28.02.2017 11:52:37
|
|||
|
|
28.02.2017 14:24:29
Спасибо
|
||||
|
|
|||
Читают тему (гостей: 1)