- Freecad image не работает
- Re: Верстак IMAGE не работает
- Re: Верстак IMAGE не работает
- Re: Верстак IMAGE не работает
- Re: Верстак IMAGE не работает
- Re: Верстак IMAGE не работает
- Проверяем исходный код FreeCAD и его «нехорошие» зависимости
- Что с PVS-Studio?!
- FreeCAD
- Open CASCADE library
- SALOME Smesh Module
- Заключение
- cnc-club.ru
- Освоение FreeCAD
- Освоение FreeCAD
- Урок на vk.com
- Критика FreeCAD
- Хвастовство
- Так себе
- Re: Освоение FreeCAD
- Re: Освоение FreeCAD
- Re: Освоение FreeCAD
- Re: Освоение FreeCAD
- Re: Освоение FreeCAD
- Re: Освоение FreeCAD
- Re: Освоение FreeCAD
- Re: Освоение FreeCAD
Freecad image не работает
Post by doubters » Thu Dec 26, 2019 8:24 am
Re: Верстак IMAGE не работает
Post by Voldemar_ll » Mon Jan 06, 2020 9:59 pm
OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.4 (GitTag)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 980bf9060e28555fecd9e3462f68ca74007b70f8
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Russian/Russia (ru_RU)
Не удается создать двумерное изображение в трехмерном пространстве.
ImagePlane появляется, а изображение нет.
Попытка изменить масштаб с помощью «Показать все» не помогает.
Подскажите, пожалуйста, как вылечить?
Спасибо.
Re: Верстак IMAGE не работает
Post by S_Fandiei » Sat Jan 25, 2020 8:07 am
Voldemar_ll wrote: ↑ Mon Jan 06, 2020 9:59 pm OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.4 (GitTag)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 980bf9060e28555fecd9e3462f68ca74007b70f8
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Russian/Russia (ru_RU)
Не удается создать двумерное изображение в трехмерном пространстве.
ImagePlane появляется, а изображение нет.
Попытка изменить масштаб с помощью «Показать все» не помогает.
Подскажите, пожалуйста, как вылечить?
Спасибо.
Re: Верстак IMAGE не работает
Post by svbol » Tue Jan 28, 2020 8:34 pm
Re: Верстак IMAGE не работает
Post by mikker » Tue Jan 05, 2021 4:02 pm
Не удается создать двумерное изображение в трехмерном пространстве.
ImagePlane появляется, а изображение нет. Спасибо.
OS: Windows 7
Word size of OS: 32-bit
Word size of FreeCAD: 32-bit
Version: 0.18.4 (GitTag)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 980bf9060e28555fecd9e3462f68ca74007b70f8
Python version: 2.7.14
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.2.0
Locale: Russian/RussianFederation (ru_RU)
Re: Верстак IMAGE не работает
Post by Mark77 » Tue Jan 05, 2021 9:39 pm
OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.4 (GitTag)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 980bf9060e28555fecd9e3462f68ca74007b70f8
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: Russian/Russia (ru_RU)
В 64-битной версии почти работает. Почему почти? А вот почему: Изображение импортируется, ImagePlane содержит импортированное изображение. Правда, как я понимаю, есть проблема с параметром Transparency — его изменение никак не влияет на вставленное изображение. А ведь должно, и в прошлых версиях работало. Так же не имеет эффекта изменение параметра Selection Style. И это только проверка пары параметров. Уважаемые разработчики, берите на заметку.
Источник
Проверяем исходный код FreeCAD и его «нехорошие» зависимости
Статья, которая задумывалась как обзор ошибок в открытом проекте FreeCAD, приобрела немного другой характер. Весомая часть предупреждений анализатора пришлась на используемые сторонние библиотеки. Разработка программного обеспечения с активным использованием сторонних библиотек даёт много плюсов, особенно в сфере Open Source. И ошибки в библиотеках не повод отказываться от них. Но надо понимать, что в используемом коде тоже могут жить баги. Их надо быть готовым встретить и по возможности исправить, тем самым улучшив используемые вами библиотеки.
FreeCAD — параметрический трехмерный редактор, позволяющий создавать объемные модели и чертежи их проекций. Разработчик FreeCAD Юрген Ригель, работающий в корпорации DaimlerChrysler, позиционирует свою программу как первый бесплатный инструмент проектирования механики. В среде специалистов ряда отраслей известна проблема создания полноценной САПР в рамках Open Source, и этот проект является кандидатом на такую «полноценность». Проверим же исходный код с помощью PVS-Studio и поможем открытому проекту в этой области стать чуточку лучше. Наверняка вы сталкивались с «глюками» в различных редакторах, когда не удаётся попасть в какую-нибудь точку или выпрямить линию, которая всегда съезжает на один пиксель. Возможно, причиной всего этого являются лишь опечатки в исходном коде.
Что с PVS-Studio?!
Проект FreeCAD является кросс-платформенным, на сайте есть очень хорошая документация по сборке. Мне не составило труда получить проектные файлы для Visual Studio Community 2013 для проверки с помощью установленного плагина PVS-Studio. Но в начале проверка не задалась…
Причиной внутренней ошибки в анализаторе стало наличие бинарной последовательности в текстовом препроцессированном файле с расширением *.i. Анализатор умеет обрабатывать такие ситуации, но тут произошло что-то новое. Проблема в одной из строчек в параметрах компиляции исходных файлов:
Флаг компиляции /FI (Name Forced Include File), как и директива #include, служат для включения текстовых заголовочных файлов. Но здесь пытаются включить файл, содержащий информацию в бинарном виде. Это каким-то чудом компилируется. Возможно, в Visual C++ такой файл просто игнорируется.
Если попытаться не компилировать, а именно препроцессировать файлы, то Visual C++ сообщает об ошибке. А вот используемый в PVS-Studio по умолчанию Clang, недолго думая, включил *.i файл бинарный файл. PVS-Studio не ожидал такого подвоха и сошёл с ума.
Чтобы было понятней, о чем идёт речь, вот фрагмент препроцессирпованного с помощью Clang файла:
Проект был аккуратно проверен без этого флага, но хочу обратить внимание разработчиков, что у них здесь ошибка.
FreeCAD
Первые примеры ошибок из проекта получены по известной всем причине.
V501 There are identical sub-expressions ‘surfaceTwo->IsVRational()’ to the left and to the right of the ‘!=’ operator. modelrefine.cpp 780
По левую сторону оператора неравенства обнаружилась не та переменная «surfaceTwo» вместо «surfaceOne» из-за маленькой опечатки. Осталось посоветовать автору в следующий раз делать copy-paste фрагментами побольше, но и до таких примеров мы тоже дойдём =).
V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 162, 164. taskpanelview.cpp 162
Чего это мы обратили внимание на функцию, которая ещё пишется? А вот почему: с этим кодом скорее всего будет тоже самое, что и в следующих двух примерах.
V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 1465, 1467. application.cpp 1465
Будем надеется, что автор случайно не поправил одну скопированную строчку, но в итоге всё равно дописал поиск всех необходимых строк.
V517 The use of ‘if (A) <. >else if (A) <. >‘ pattern was detected. There is a probability of logical error presence. Check lines: 191, 199. blendernavigationstyle.cpp 191
А вот, на мой взгляд, серьёзная ошибка для такого приложения. При моделировании много работы выполняется с помощью навигации мышкой, а тут такой ляп: исходный код в последнем условии никогда не получает управление, потому что первое условие такое же и выполняется первым.
V523 The ‘then’ statement is equivalent to the ‘else’ statement. viewproviderfemmesh.cpp 695
Независимо от условия, всегда выполняется одно действие. Может всё-таки так задумывалось:
Почему я исправил именно последнюю строку? Возможно, вас заинтересует статья на эту тему: Эффект последней строки. Но возможно, надо исправить первую. Не знаю :).
V570 The ‘this->quat[3]’ variable is assigned to itself. rotation.cpp 260
Ещё о «последних строках». Анализатор насторожился, так как в последней строке нет знака минуса. Но тут нельзя однозначно говорить об ошибке, возможно, при реализации такого преобразования, хотели подчеркнуть, что четвёртая компонента не изменяется.
V576 Incorrect format. A different number of actual arguments is expected while calling ‘fprintf’ function. Expected: 2. Present: 3. memdebug.cpp 222
Такой код не имеет смысла. Если указатель нулевой, то можно просто печатать символ новой строки без передачи в функцию неиспользуемых параметров.
V596 The object was created but it is not being used. The ‘throw’ keyword could be missing: throw Exception(FOO); waypointpyimp.cpp 231
В коде создаётся объект типа исключения, но не используется. По всей видимости пропущено ключевое слово «throw»:
Ещё несколько таких мест:
- V596 The object was created but it is not being used. The ‘throw’ keyword could be missing: throw Exception(FOO); application.cpp 274
- V596 The object was created but it is not being used. The ‘throw’ keyword could be missing: throw Exception(FOO); fileinfo.cpp 519
- V596 The object was created but it is not being used. The ‘throw’ keyword could be missing: throw Exception(FOO); waypointpyimp.cpp 244
- V596 The object was created but it is not being used. The ‘throw’ keyword could be missing: throw Exception(FOO); sketch.cpp 185
V599 The virtual destructor is not present, although the ‘Curve’ class contains virtual functions. constraints.cpp 1442
В базовом классе «Curve» объявлены виртуальные функции, но не объявлен деструктор, который будет создан по умолчанию. И он конечно будет не виртуальным! Это означает, что объекты, наследуемые от этого класса, не будут полностью очищены при таком сценарии использования, когда указатель на дочерний объект сохраняется в указатель на базовый класс. Судя по комментарию, у базового класса наследуемых классов много, например, приведённый класс «Line» в примере.
V655 The strings were concatenated but are not utilized. Consider inspecting the expression. propertyitem.cpp 1013
Анализатор обнаружил бессмысленное сложение строк. Если приглядеться, то, возможно, тут хотели использовать оператор ‘+=’ вместо простого сложения. Тогда такой код имел бы смысл.
V595 The ‘root’ pointer was utilized before it was verified against nullptr. Check lines: 293, 294. view3dinventorexamples.cpp 293
Один пример с проверкой указателя не в том месте, другие места находятся здесь:
- V595 The ‘cam’ pointer was utilized before it was verified against nullptr. Check lines: 1049, 1056. viewprovider.cpp 1049
- V595 The ‘viewProviderRoot’ pointer was utilized before it was verified against nullptr. Check lines: 187, 188. taskcheckgeometry.cpp 187
- V595 The ‘node’ pointer was utilized before it was verified against nullptr. Check lines: 209, 210. viewproviderrobotobject.cpp 209
- V595 The ‘node’ pointer was utilized before it was verified against nullptr. Check lines: 222, 223. viewproviderrobotobject.cpp 222
- V595 The ‘node’ pointer was utilized before it was verified against nullptr. Check lines: 235, 236. viewproviderrobotobject.cpp 235
- V595 The ‘node’ pointer was utilized before it was verified against nullptr. Check lines: 248, 249. viewproviderrobotobject.cpp 248
- V595 The ‘node’ pointer was utilized before it was verified against nullptr. Check lines: 261, 262. viewproviderrobotobject.cpp 261
- V595 The ‘node’ pointer was utilized before it was verified against nullptr. Check lines: 274, 275. viewproviderrobotobject.cpp 274
- V595 The ‘owner’ pointer was utilized before it was verified against nullptr. Check lines: 991, 995. propertysheet.cpp 991
Open CASCADE library
V519 The ‘myIndex[1]’ variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 60, 61. brepmesh_pairofindex.hxx 61
В данном примере перезаписали значение элемента массива ‘myIndex’ с индексом 1. Мне кажется, хотели сделать так:
SALOME Smesh Module
V501 There are identical sub-expressions ‘0 n_’ variable is modified while being used twice between sequence points. regex_token_iterator.hpp 63
Неизвестно, какой из операндов оператора %= будет вычислен первым. Соответственно, правильно работает выражение или нет, зависит от везения.
Заключение
Пробуйте и внедряйте статические анализаторы для регулярной проверки своих проектов, а также используемых сторонних библиотек. Это сэкономит время при написании нового кода, а также при поддержке старого.
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Svyatoslav Razmyslov. Analyzing FreeCAD’s Source Code and Its „Sick“ Dependencies.
Источник
cnc-club.ru
Статьи, обзоры, цены на станки и комплектующие.
Освоение FreeCAD
Освоение FreeCAD
Сообщение torvn77 » 12 июн 2015, 19:03
Урок на vk.com
Критика FreeCAD
Хвастовство
Так себе
Re: Освоение FreeCAD
Сообщение torvn77 » 12 июн 2015, 19:15
Re: Освоение FreeCAD
Сообщение nkp » 12 июн 2015, 20:22
Re: Освоение FreeCAD
Сообщение torvn77 » 12 июн 2015, 21:11
Re: Освоение FreeCAD
Сообщение dinkata » 19 июн 2015, 07:00
Re: Освоение FreeCAD
Сообщение selenur » 19 июн 2015, 07:25
Re: Освоение FreeCAD
Сообщение torvn77 » 19 июн 2015, 12:25
Re: Освоение FreeCAD
Сообщение Predator » 19 июн 2015, 12:37
Re: Освоение FreeCAD
Сообщение going » 01 июл 2015, 01:44
Классный комбайн FreeCAD. Мне в нём рисовать больше нравится чем в SW. А ещё можно на Pyton прямо внутри FreeCAD описать математически поверхность или тело и он нарисует. Мануал хороший на Русском. Из внешней программы Python его можно вызвать как модуль и передать ему всё, что вычислил и он нарисует.
В официальной сборке CAM нет, а вот если собрать из исходников, появится интегрированный PyCAM с одноимённого проекта.
Я пока это не проверял, как работает в связке.
В последнее время очень бурно развивается. Обновления каждый месяц новинками радуют
Источник