目录
- 引出
- 画玫瑰花
- 画中间的花蕾
- 画花瓣
- 在零件设计模式下,厚轮廓画曲面实体
- 进行圆周阵列,完整径向
- 对花瓣进行倒角
- 再画一层花瓣
- 画叶子
- 在新的几何体里面绘制叶子
- 叶子阵列
- 画花杆
- 使用肋条画杆子
- 将两个零件体进行合并
- 一支玫瑰花
- 画一束玫瑰花
- 先平移一下
- 复制粘贴一份
- 旋转个角度
- 进行圆形阵列
- 再画一层
- 最终的成品
- 总结
- 画吹风机
- 吹风机壳体多截面曲面
- 吹风机后壳桥接曲面
- 吹风机把手多截面曲面
- 进行曲面的修剪
- 绘制把手的后盖
- 绘制内凹的圆曲面
- 进入零件工作台,定义厚曲面
- 绘制进气凹槽
- 异形弹簧
- 新建几何体
- 草图编辑,画一条样条线
- 进行扫掠,圆心和半径
- 画出曲面上的螺旋线
- 再次选择扫掠,圆心和半径
- 其他
- 自定义信号和槽
- 1.自定义信号
- 2.自定义槽
- 3.建立连接
- 4.进行触发
- 自定义信号重载
- 带参数的
- 按钮触发
- 信号触发信号
- 拓展
- lambda表达式
- 返回值
- mutable修饰
- 案例
引出
CATIA入门操作案例——如何画一支玫瑰花送给女朋友?如何画一束玫瑰花?
画玫瑰花
画中间的花蕾
后面这里改成了实体
画花瓣
在零件设计模式下,厚轮廓画曲面实体
进行圆周阵列,完整径向
对花瓣进行倒角
再画一层花瓣
画叶子
在新的几何体里面绘制叶子
定义凹槽,反转边
叶子阵列
画花杆
使用肋条画杆子
将两个零件体进行合并
一支玫瑰花
画一束玫瑰花
先平移一下
复制粘贴一份
旋转个角度
进行圆形阵列
再画一层
最终的成品
总结
CATIA入门操作案例——如何画一支玫瑰花送给女朋友?如何画一束玫瑰花?
画吹风机
吹风机壳体多截面曲面
绘制吹风机的扫掠引导线
绘制多截面的3个扫掠轮廓
绘制多截面曲面
吹风机后壳桥接曲面
吹风机把手多截面曲面
绘制吹风机把手扫掠曲线
绘制把手多截面扫掠截面
定义多截面扫掠曲面
进行曲面的修剪
绘制把手的后盖
进行曲面的结合
绘制内凹的圆曲面
进行倒角
把绘制的所有曲面结合起来
进入零件工作台,定义厚曲面
绘制进气凹槽
其他内容
异形弹簧
新建几何体
草图编辑,画一条样条线
进行扫掠,圆心和半径
画出曲面上的螺旋线
定义直线,选择曲线的角度/法线
在曲线上创建点
支持面选择扫掠面,角度7度,终点设置大一点,选中支持面上的几何图形
再次选择扫掠,圆心和半径
双击修改,调整一下样条曲线
其他
自定义信号和槽
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();
});