OpenCASCADE入门(2)——openCasCade7.6.0版本的exe方式安装,vs2017环境配置,编译和使用draw

发布于:2024-06-01 ⋅ 阅读:(162) ⋅ 点赞:(0)

3rd party Components | Open CASCADE Technology

在这里插入图片描述

引出

最近关注到一款开源的三维建模引擎,openCasCade,感觉蛮厉害的样子,所以就研究了一下,发现网上的相关资料还是比较少的。我自己在安装的时候踩了不少坑,

尤其是在通过源码自编译,感兴趣的朋友可以点击下面连接:

OpenCASCADE入门——7.8.0版本通过源码自编译,生成解决方案,用draw进行简单尝试-CSDN博客

今天这篇文章带来的时exe可执行的安装方式,相比源码自编译要简单不少,另外,安装包已经放入附件,感兴趣的朋友可以免费下载安装。

OpenCASCADE入门(2)——openCasCade7.6.0版本的exe方式安装,vs2017环境配置,编译和使用draw


外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

opencascade下载安装 - 户的博客 - 博客园 (cnblogs.com)

安装好vs2017和occt7.6

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

设置环境变量

DEvEnvDir

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

启动occt和编译

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于custom.bat批处理文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

双击运行

运行会直接打开vs的界面,然后解决方案上右键,进行编译,但是我开始没有设置编译,默认填的是win32,结果失败了,后来改成64才成功。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

打开draw使用

方式一:双击draw.bat批处理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Draw[1]> pload ALL
1
Draw[2]> axo
Draw[3]> line line1 1 0 3 0 1 0
Draw[4]> fit
Draw[5]>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

vs设置启动项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Draw[1]> pload ALL
1
Draw[2]> circle c1 1 2 3 0 0 1 5
Draw[3]> axo
Draw[4]> fit
Draw[5]>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


总结

OpenCASCADE入门(2)——openCasCade7.6.0版本的exe方式安装,vs2017环境配置,编译和使用draw


其他内容

其他

自定义信号和槽

1.自定义信号

写到signals下
返回void
需要声明,不需要实现
可以有参数,可以重戟

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.自定义槽

返回void
需要声明,也需要实现
可以有参数,可以重载
写到public slot下或者public或者全局函数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.建立连接

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

// 老师饿了,学生请吃饭
connect(te,&Teacher::hungry,st,&Student::treat);

4.进行触发

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自定义信号重载

当自定义信号和槽出现重载
8.1 需要利用还数指针明确指向函数的地址·
8.2void(Teacher::tsignal )QString )=&Teacher::hungry;
8.3 QString转成char *
8.3.1.ToUtf80转为QByteArray
8.3.2.Data0转为Char *
8.4信号可以连接信号
8.5断开信号disconnect

带参数的

    void (Teacher::*teacherSignal)(QString) = &Teacher::hungry;
    void (Student::*StudentSlot)(QString) = &Student::treat;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

void Student::treat(QString foodName){
    // QString -> char * 先转成QByteArray(.toUtf8())  再转成Char* ()
    qDebug() << "请老师吃。。。" << foodName.toUtf8().data();
}

按钮触发

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    // 用一个按钮调用下课
    QPushButton *btn = new QPushButton("下课了",this);

    // 重置窗口daxiao
    this->resize(600,400);

    connect(btn,&QPushButton::clicked,this,&Widget::classIsOver);

信号触发信号

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    // 无参的信号和槽连接
    void (Teacher::*teacherSignal2)(void) = &Teacher::hungry;
    void (Student::*StudentSlot2)(void) = &Student::treat;
    connect(te,teacherSignal2,st,StudentSlot2);

    // 信号连接信号
    connect(btn,&QPushButton::clicked,te,teacherSignal2);

断开信号disconnect

拓展

1、信号是可以连接信号
2、一个信号可以连接多个槽函数
3、多个信号可以连接同一个糟函数
4、信号和槽函数的参数必须类型一一对应
5、信号和槽的参数个数是不是要一致?信号的参数个数可以多余槽函数的参数个数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

connect(信号的发送者,发送的信号signal信号),信号接受者,槽函数SLOT)
优点:参数直观
缺点:编译器不会检测爸数类型:

lambda表达式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

在这里插入图片描述

    [=](){
        btn->setText("aaa");
    }();

返回值

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    int ret = []()->int{return 1000;}();
    qDebug() << "ret = " << ret;

mutable修饰

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    QPushButton *myBtn1 = new QPushButton(this);
    QPushButton *myBtn2 = new QPushButton(this);
    myBtn1->move(100,100);
    int m = 10;
    connect(myBtn1,&QPushButton::clicked,this,
            [m]()mutable {m=100+10;qDebug()<< m;});
    connect(myBtn2,&QPushButton::clicked,this,
            [=](){qDebug()<<m;});
    qDebug() << m;

案例

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    QPushButton * btnClose = new QPushButton;
    btnClose->setText("close");
    btnClose->move(100,0);
    btnClose->setParent(this);
    connect(btnClose,&QPushButton::clicked,this,
            [=](){
        btnClose->setText("关闭");
        emit te->hungry("娃哈哈");
//        this->close();
    });

网站公告

今日签到

点亮在社区的每一天
去签到