posts - 415, comments - 576, trackbacks - 0, articles - 0

OpenCASCADE 的装置与编译

Posted on 2012-08-13 23:29 eryar 阅览(18997) 谈论(38)  修正 保藏 引证 所属分类: 2.OpenCASCADE

OpenCASCADE的装置与编译

The Installation and Compilation of OpenCASCADE

eryar@163.com

一、装置OpenCASCADE

能够从OpenCASCADE的官网上下载其装置包,能够挑选最新的版别,下载网址为:

http://www.opencascade.org/getocc/download/loadocc/ 。假如只用其库来编程现已够了,装置好下载的装置包即可。若想对其进行调试,有必要先把它编译成功。想编译经过,有必要下载第三方库,由于OpenCASCADE顶用到了第三方的东西。如:FreeImage为通用图形格局的支撑;FreeTypeFtgl为对文字烘托的支撑,包括对中文烘托的支撑;gl2ps用来将烘托的内容转换为矢量图形输出,等等。第三方库都能够从官网上供给的链接来下载,由于不同的版别或许用到的第三方库的版别也不同,有必要保持一致。下载地址为:

http://www.opencascade.org/getocc/download/3rdparty/ 。关于Windows操作体系下载各相应版别如下所示:

Products

vc8

vc9

vc10

32 bit

64 bit

32 bit

64 bit

32 bit

64 bit

Freeimage 3.14.1

zip

zip

zip

zip

zip

zip

Freetype 2.3.7

zip

zip

zip

zip

zip

zip

Ftgl 2.1.2

zip

zip

zip

zip

zip

zip

gl2ps 1.3.5

zip

zip

zip

zip

zip

zip

Qt

Qt 4.6.2

TBB

TBB 30_018oss

Tcl/Tk

ActiveTcl 8.5

有的时分编译通不过,或许报的过错便是第三方库的版别与装置好的OpenCASCADE的版别不一致形成的。把与编译东西相应版别的第三方库从头编译并放到相应的目录下就可处理问题。这也是OpenCASCADE引荐的方法,原文如下:The recommended way to do this is to download each of the third-party tools from its web site and build it using the relevant tools.

二、编译OpenCASCADE

OpenCASCADE6.5.0今后对编译环境的设置采用了批处理的方法。在装置结束后的文件目录中有个ros的文件夹,其中有几个批处理文件:env.batenv_build.batmsvc.bat。翻开这几个批处理文件,会发现它们便是在设置编译环境。前期版别是直接写到体系的环境变量中去,现在是运转批处理文件msvc.bat,依据不同的东西,输入以下参数,示例为:vc8 win32 Debug adm\win32\vc8\OCCT.sln。即运转指令切换到ros文件夹,输入下面的指令:msvc.bat vc8 win32 Debug adm\win32\vc8\OCCT.sln就能够发动整个项目,后边是一些选项设置,如运用的是VC8编译东西,渠道为win32,输出为Debug。若是运用的Visual Studio 10则输入参数vc10 win32 Debug adm\win32\vc10\OCCT.sln即可,也很便利。

编译次序也是非常重要的,有必要按如下次序进行:

1. Foundation Classes (file FoundationClasses.sln)

2. Modeling Data (file ModelingData.sln)

3. Modeling Algorithms (file ModelingAlgorithms.sln)

4. Visualization (file Visualization.sln)

5. Application Framework (file ApplicationFramework.sln)

6. Data Exchange (file DataExchange.sln)

7. Draw (file Draw.sln)

如下图明晰所示:

Compile order is important!

三、总结

编译成功后,能够为今后程序的调试打下根底;也可对OpenCASCADE有个大约知道。期望你也能编译成功。若有任何问题,可与我联络:eryar@163.com

 
视频:
OpenCASCADE Compilation   http://t.cn/RNKAMut

PDF版别:

OpenCASCADE Installation and Compilation: OpenCASCADE Installation and Compilation

Feedback

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-26 21:59 by 谢谢
你好,非常感谢,还期望大侠能够供给一下 samples 的生成方法,我的老是报错

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-27 18:18 by eryar
@谢谢
你好!

有时间写一个samples 的编译阐明。
其实在samples\mfc\standard文件夹中的readme.txt中有具体阐明,细心看看就知道了。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-27 22:29 by 谢谢
非常感谢大侠回复,
经过你的方法我将结构编译成功,
samples其实我现已编译成功了,可是便是运转不了,老是报错, read me 里边的内容我也研讨了一下,总感觉 samples\mfc\standard 文件下的 msvc.bat 跳转有问题,老是报 未找到相应文件, 然后我只能手动翻开 samples\mfc\standard 文件夹下的 vs10
然后是编译报错 找不到头文件,没方法一切的都从头加载 原本的加载设置都删去,从头加载 win/vc9下的文件, 用新生成的 win/vc10 不能够经过编译,也找不到头文件,只能用vc9,最终花了好大功夫编译经过了,成果运转找不到dll文件,所以又将dll 复制到 window/system32 大费周章,过错在削减,可是最终仍是不能运转, (阐明,第一次装置好了后,直接运转deom是没有问题的,经过我的编译后,就不能运转了),期望大侠能明示, 谢谢大侠了

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-27 22:49 by eryar
@谢谢
不客气。

运转Samples的方法,OpenCASCADE也在ReadMe.md文件中进行了阐明:
2. Launching Open CASCADE Technology samples:
---------------------------------

To run the Open CASCADE Technology samples:

execute run.bat [vc8|vc9|vc10] [win32|win64] [Release|Debug] [SampleName]

To run the Animation sample:

execute run.bat vc8 win32 Debug Animation

由于OpenCASCADE的samples用到OpenCASCADE其他相关的dll,从而或许依靠一些第三方库,所以Samples程序只要能找到一切依靠的dll就可运转了,包括第三方库的dll。为了不影响机器的环境变量,用这种批处理的方法来运转比方也很便利的(这样就不需求将相关的dll复制到system32中去了)。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-29 19:41 by 谢谢
你好大侠,我的表达有问题,我的意思是 调试的时分出的问题,怎么调试samples , 谢谢

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-29 20:32 by eryar
@谢谢
将Samples编译成功后,编译方法如下:
3. Modifying and rebuilding samples:
--------------------------------------------

You can modify, compile and launch all sample projects in MS Visual 12bet at once:

execute msvc.bat [vc8|vc9|vc10] [win32|win64] [Release|Debug]

To run all sample projects in MS Visual 12bet at once:

execute msvc.bat vc8 win32 Debug

运用编译时的批处理发动Samples项目,并将你犯错的Sample工程设置为当时Project,F5即可调试了。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-29 20:54 by 谢谢
msvc.bat vc10 win32 Debug

这个我执行了,可是找不到文件,报错
我是用的最新版的6.7.1 感觉 途径里边多了一个 //..//..//
好像是途径错了,我只好手动翻开了,

msvc.bat vc10 win32 Debug
请问大侠 为什么老是找不到途径呢

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-29 20:59 by eryar
@谢谢

途径不多,我6.7.1的Samples都能够正常编译。

是不是你的6.7.1的途径中包括了空格?

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-29 21:08 by 谢谢
ok 非常感谢你的回答,我再做一下测验吧

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-31 11:19 by 张三
把与编译东西相应版别的第三方库从头编译并放到相应的目录下就可
是什么意思呢?

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-10-31 12:43 by eryar
@张三
便是OpenCASCADE编译时设置的第三方库地点的include/lib/bin相应的目录中。
假如用的批处理,编译好的lib/dll输出到批处理里边对应的目录。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-11-01 19:31 by 欧帅
帅eryar,我知道@谢谢是什么意思了,他的问题我也遇到了。我也是用VC10,而6.7.1默许面向VC9。
下载VC10的第三方类库设置好途径今后,七个类库能够经过编译,但想要运转比方(run.bat),有必要先编译比方,即先运转mfc比方下的msvc,冲击翻开后提示“无法翻开如下文件(接着是空白),无法加载文件”,由于看到的是空白,我也知道它指的的是短少什么文件,从而无法加载对应的ALL-vc10.sln。我检查了env.bat和对应的msvc.bat,看着没有问题,不知道是不是@谢谢说的无法正确衔接途径。
请问你遇到这个问题了吗?

在ReadMe.md里边最终有一句提示:make sure your PATH environment variable contains a directory, msdev.exe is located in.

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-11-01 19:33 by 欧帅
更正
“冲击” = “双击”
“我也知道” = “我也不知道”

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-11-01 19:49 by eryar
@欧帅
OpenCASCADE6.7.1的Samples编译是有问题,我编译试过,需求修正opencascade6.7.1文件夹中的msvc.bat,修正如下内容:
rem Launch Visual Studio - either professional (devenv) or Express, as available
if exist "%DevEnvDir%\devenv.exe" (
rem start "" "%DevEnvDir%\devenv.exe" "%PRJFILE%"
start "%DevEnvDir%\devenv.exe" "%PRJFILE%"

与前期版别比较是多了个引号,将引号去掉即可。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-11-01 20:02 by 欧帅
处理。
什么都不说了,You're the most niubiable person I've ever seen.

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2014-11-01 20:11 by eryar
@欧帅
:o)

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-04-16 21:56 by 孤单剑
您好! 我装置opencascade 总是犯错 不知什么原因
编译的时分有5个项目提示 无法解析的外部变量
还有 编译完之后 draw.bat无法运转
谢谢~

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-04-16 22:04 by eryar
@孤单剑
Hi,

你好!

那便是有必要的第三方库没有正确装备导致的过错。

假如是用opencascade装置包来编译,装置完结后,依据编译器及渠道修正下custom.bat后,直接运转msvc.bat编译即可一次成功。

Best Regards,
Shing Liu

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-04-29 11:06 by 佚名
您好,我装置编译了occ6.8,但draw.exe不能发动,提示0xc000007b过错,我的电脑win8 64位,网上查了一下,或许是需求dirextx9.0,但从网上下载的directx总被360检测出有病毒,不知博主可有好的处理方法引荐,谢谢

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-04-29 21:29 by eryar
@佚名

Hi,

你好!

DRAWEXE依靠Tcl/Tk,occ的三维现在是用OpenGL显现,没有依靠DX3D的。
假如Tcl/Tk的库没有找到也或许报这种过错。

occ的做法是用批处理装备好环境变量后用draw.bat来发动Draw的,能够参阅下这种方法。

Best Regards,
Shing Liu

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-05-15 16:21 by 佚名
博主您好,好久以来一向重视您的12bet怎么样,也请教过一些问题,但有一个问题我一向无法处理,便是自界说旋转原点的问题,occ每次旋转前总统计图元的形心,主动将旋转原点定在形心处,但有时为了调查部分图形,将图形扩大后一旋转想调查的部分都飘到屏幕外,我怎么能在不改动源码的状况下设定旋转点,比方一条线,原本绕线的中点旋转,我想调查其端部区域,怎么将旋转点设在端点处,谢谢!

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-05-17 11:45 by eryar
@佚名

Hi 佚名,

你好!

occ6.8之后引入了Camera类,你能够测验下在处理鼠标事情的当地自己来调整camera,而不必occ的view中的旋转函数。

Best Regards,
Shing Liu

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-05-18 09:55 by 佚名
的确有用.曾经一向用6.3版别,刚触摸6.8,对它的新特性还不了解,谢谢博主辅导

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2015-05-18 18:42 by eryar
@佚名

有用果就好!

客气了。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-03-03 10:40 by oneOfHUSTCAD
你好,我得MFC Sample编译经过了,可是在发动起来今后总是报:“Geometry.exe 中的 0x77b915ee 处有未经处理的反常: 0x00000000: 操作成功完结。”是抛出了Standard_Failure反常,各位有没有遇到过这种状况?

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-03-03 15:07 by oneOfHUSTCAD
我知道了,"CSF_ShadersDirectory" 环境变量没设置好,导致到不到OpenGL所需求的文件夹“Shaders”

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-03-03 21:06 by eryar
@oneOfHUSTCAD
嗯,假如用装备好的环境变量来发动比方,就不会呈现这种问题了。

就像装置好的比方程序都是经过批处理文件发动的。

# re: OpenCASCADE 的装置与编译[未登录]  回复  更多谈论   

2016-03-31 20:07 by 小鱼
有爱好的联络我微信benzcn

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-04-07 17:57 by yyy
为什么我的draw.bat提示 tkloop: error in tk initialization. tcl reported: invalid command name "tcl_find library"

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-04-07 19:46 by eryar
@yyy
这是第三主库Tcl/Tk没有装备正确导致的。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-04-07 20:49 by yyy
@eryar
处理好了,之前把tcltk里边的两个dll复制到system32里了,删掉就好了,应该是和批处理指令里边界说的环境变量抵触了

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-04-07 22:46 by eryar
@yyy
我是不喜欢去污染system32的,最多能够把相关库的dll途径加到环境变量path中去。

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-08-22 13:18 by OCC_Study
楼主你好,我在编译的时分遇到2个问题:
1、装备好custom.bat后,经过msvc.bat发动VC,发现项目无法编译,原因是附加包括目录里边用到了宏CSF_OPT_INC,而翻开宏目录,发现该宏的值只要一个途径opencascad\inc。
为处理这个方法,我只好手动把一切项目附加包括目录中的这个宏替换成custom.bat中的那长长的一大串目录,这样编译成功了,但不知道这样处理是否正确。
2、编译成功后在VC中运转DRAWEXE,能够成功;可是我想在win32/vc10/bind下直接运转,我把一切相关的DLL复制到了该目录,却提示
"couldn't read file "ddefault": no such file or directory"
我知道这个TCL/TK环境没有装备好导致的,问题是怎么处理呢?

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2016-08-22 19:15 by eryar
@OCC_Study
Hi,

你好!

1.custom.bat便是用来装备inc和lib的,假如你现已能够编译成功了, 就没什么影响;

2. 这是DRAW 的Tcl途径没找到报错,这个途径也是经过环境变量来装备的。
主张仍是用批处理来发动DRAWEXE。

Best Regards,
Shing Liu

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2019-03-25 11:26 by birds
博主您好,
我现在运用的是OCC7.2版别的,我试着编译翻开MFC的事例,发现里边的贴图功用最终贴出来的图是黑色的(瓶子,地图,厨房被贴的当地都是黑色的),没有用果,不知道是什么原因?是我没装备好,仍是OCC这方面功用还不完善?

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2019-03-25 12:01 by eryar
@birds
Hello,

有或许是显卡支撑的欠好。
在Draw Test Harness中输入指令:
vglinfo
看看你的显卡信息。

On desktop, 3D viewer for optimal performance requires graphics processing unit (GPU) supporting OpenGL 3.3 or above. Ray tracing requires OpenGL 4.0+ or OpenGL 3.3+ with GL_ARB_texture_buffer_object_rgb32 extension. Textures within ray tracing will be available only when GL_ARB_bindless_texture extension is provided by driver.
On mobile platforms, OpenGL ES 2.0+ is required for 3D viewer (OpenGL ES 3.1+ is recommended). The ray tracing is not yet available on mobile platforms. Some old hardware might be unable to execute complex GLSL programs (e.g. with high number of light sources, clipping planes).
OCCT 3D Viewer, in general, supports wide range of graphics hardware - from very old to new. Therefore, if you observe some unexpected visual issues - first check for OpenGL driver update (or firmware update in case of mobile platforms); but beware that driver update might also come with new bugs. Don't forget to report these bugs to vendors.

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2019-03-25 15:11 by birds
博主您好,
您能帮我看下吗,这是什么问题?
Draw[1]> pload ALL
1
Draw[2]> vinit
Driver1/Viewer1/View1
Draw[3]> vglinfo
OpenGL info:
GLvendor: ATI Technologies Inc.
GLdevice: AMD Radeon(TM) R7 350X
GLversion: 4.6.13547 Compatibility Profile Context 25.20.15025.1002
GLSLversion: 4.60
Max texture size: 16384
Max combined texture units: 160
Max MSAA samples: 8
Viewport: 409x409
GPU memory: 4096 MiB
ResolutionRatio: 1

# re: OpenCASCADE 的装置与编译  回复  更多谈论   

2019-03-26 10:42 by eryar
@birds
能够按OCC文档上的阐明,先更新显卡驱动试试。