1/ui 部份

    1/增加主菜单![在这里插入图片描述](https://img-blog.csdnimg.cn/65e596109caf43a485505ab1b705ea94.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDns5bnjq8,size_18,color_FFFFFF,t_70,g_se,x_16)增加子菜单项

3/plt dxf 转换 只转换成简单连续线段
端点 0 — x y 坐标 标志 10/20
端点 1 — x y 坐标 标志 11/21

 起笔  抬笔 转换成  sec 及段结束

2/显示接口

获取当前界面  组件单元列表RS_BlockList* RS_Block::getBlockList() {
RS_Graphic* g = getGraphic();
if (g) {return g->getBlockList();
} else {return NULL;
}
}

4/端点绘线接口 镜像操作 负坐标处理

/**
* Adds a line to the current graphic document.
*/
void rsPyAddLine(double x1, double y1, double x2, double y2) {
//printf("c: addLine called\n");
//printf("c: parameter from python: %f\n", x1);RS_Graphic* graphic = RS_SIMPLEPYTHON->getGraphic();
if (graphic!=NULL) {graphic->addEntity(new RS_Line(graphic,RS_LineData(RS_Vector(x1, y1),RS_Vector(x2, y2))));
} else {std::cerr << "rsPyAddLine: No graphic object set.\n";
}
}

5/鼠标滚轮控制缩放

//将下面事件操作替换
if (scroll && scrollbars) {//scroll by scrollbars: issue #479RS_SETTINGS->beginGroup("/Defaults");bool inv_h = (RS_SETTINGS->readNumEntry("/WheelScrollInvertH", 0) == 1);bool inv_v = (RS_SETTINGS->readNumEntry("/WheelScrollInvertV", 0) == 1);RS_SETTINGS->endGroup();int delta;switch(direction){case RS2::Left:case RS2::Right:delta = (inv_h) ? -e->delta() : e->delta();hScrollBar->setValue(hScrollBar->value()+delta);break;default:delta = (inv_v) ? -e->delta() : e->delta();vScrollBar->setValue(vScrollBar->value()+delta);}//        setCurrentAction(new RS_ActionZoomScroll(direction,
//                         *container, *this));
}// zoom in / out:
else if (e->modifiers()==0) {

7/绘制工作空间大小,以指定缩放/对应屏幕像素及转换后实时中心点为原点画矩形

QRect(-50, -50, 300, 300)

8/添加图元及block 选中显示 tableview

 添加 point 映射添加选中映射选中处理代码/*** @return True if the entity is in the given range.
*/bool RS_Entity::isInWindow(RS_Vector v1,        RS_Vector v2) const
{
double right, left, top, bottom;right = std::max(v1.x, v2.x);
left = std::min(v1.x, v2.x);
top = std::max(v1.y, v2.y);
bottom = std::min(v1.y, v2.y);return (getMin().x>=left &&getMax().x<=right &&getMin().y>=bottom &&getMax().y<=top);
}获取图元id获取图元名称// There should be a better way then this...
switch(e.rtti()) {
case RS2::EntityPoint:os << (RS_Point&)e;break;case RS2::EntityLine:os << (RS_Line&)e;break;case RS2::EntityPolyline:os << (RS_Polyline&)e;break;case RS2::EntityArc:os << (RS_Arc&)e;break;添加图元参数控制

10/多点触控/键盘方向键移动

     if (e->modifiers() & Qt::ControlModifier)
{        auto value = text();        if (value.isEmpty())            value = relative_ray;        QString r_string;        switch (e->key())        {            case Qt::Key_Up:                r_string = "0," + value;                break;            case Qt::Key_Down:                r_string = "0,-" + value;                break;            case Qt::Key_Right:                r_string = value + ",0";                break;            case Qt::Key_Left:                r_string = "-" + value + ",0";                break;            default:                QLineEdit::keyPressEvent(e);                return;        }void Widget::mouseMoveEvent(QMouseEvent * event)
{qDebug()<<tr("%1,%2").arg(event->pos().x()).arg(event->pos().y());
}

11/系统坐标中点绘制随窗体自动拉伸定位框

QPainter painter(this);
static double wid = rect().width();
static double hei = rect().height();painter.setRenderHints(QPainter::Antialiasing, true);//抗锯齿double new_wid = rect().width()/wid;
double new_hei = rect().height()/hei;
painter.scale(new_wid,  new_hei);

librecad二次开发相关推荐

  1. 【ReactiveX】基于Golang pmlpml/RxGo程序包的二次开发

    基于Golang pmlpml/RxGo程序包的二次开发[阅读时间:约20分钟] 一.ReactiveX & RxGo介绍 1.ReactiveX 2.RxGo 二.系统环境&项目介绍 ...

  2. 20150411--Dede二次开发-01

    20150411--Dede二次开发-01 目录 一.目前市场流行的电子商城系统 1 二.ecshop的介绍 1 三.安装 2 四.echsop 的目录结构 5 五.分析ecshop里面程序的架构 5 ...

  3. android系统二次开发,Andorid系统二次开发界面

    Andorid系统二次开发界面 给大家介绍完外观,下面我们一起再来看下魅族MX的系统界面.本次魅族MX仍然采用的是Andorid操作系统,并且加入了二次开发界面.UI界面整体上保持了和M9的特色,不过 ...

  4. wordpress php教程 pdf,wordpress二次开发全能教程.pdf

    wordpress 二次开发全能教程 1. 根据分类来制定导航条 A. 修改页面 header.php! <?php wp_list_categories('title_li='); ?> ...

  5. Saiku二次开发获取源代码在本地编译(五)

    关于Saiku的二次开发,在本地编译然后启动自己编译好的Saiku服务 Saiku是开源的,从github上能下载源代码,本例中的saiku源码也是从github上找的,然后自己改了一些pom.xml ...

  6. catia三维轴承_浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文

    浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文 一.概述 单排四点接触球转盘轴承是一种能够同时承受较大轴向负荷.径向负荷和倾覆力矩等综合载荷,集支承.旋转.传动.固定等多种功能于一身的特殊 ...

  7. 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...

  8. 二次开发photoshop_Photoshop 101:Web开发人员简介

    二次开发photoshop 介绍 (Introduction) Often, when working as web developer, we need to integrate templates ...

  9. 基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案...

    我们通常在构架一套视频SaaS应用的过程中,将平台设计为3层:视频硬件层(视频源).视频能力平台(vPaaS).视频应用平台(vSaaS),视频硬件包括各种IPC.NVR.编码器等视频生成设备,vPa ...

最新文章

  1. python 三维画图 坐标值相等_python程序员的表白
  2. MM32F3277 MicroPython 的定时器功能
  3. KDEWin Installer 0.9.8-1发布
  4. 逆向最大匹配分词算法
  5. 为什么 wait 方法要在 synchronized 中调用?
  6. Dataset之LSUN:LSUN数据集的下载使用教程
  7. ThinkJava-复用类
  8. CDE桌面环境中自动启动应用程序图形界面
  9. WindowsFormsHost使用问题
  10. MQTT协议笔记之mqtt.io项目TCP协议支持
  11. 计算机课是一体化教学吗,计算机基础课程理实一体化教学模式
  12. 深圳出差 第一天【原创】
  13. 2018年计算机职称考试冲刺,2018年中级会计职称考试冲刺阶段学习计划
  14. 为什么 Redis 单线程能达到百万+QPS?
  15. java并发圣经,差距不止一星半点!Github星标85K的性能优化法则圣经
  16. 用代码生成Glitch Art风格的抖音字体
  17. 共享单车数据集_共享单车数据可视化分析
  18. SPSS25 软件安装教程(附带网盘资源)
  19. Refresh PDB
  20. 张三丰是小龙女的儿子的详细证明及理论依据(转)

热门文章

  1. VisualSVN Server安装失败解决
  2. 12C创建用户问题 ORA-65096
  3. 便利贴--25{uniapp移动端滑动模块-因为uniapp打包后没有window,所以要另外去做监听和触控事件的传递}
  4. 机制检验、异质性检验、调节效应
  5. FPGA自学11——以太网通信
  6. CSS(层叠样式表)知识
  7. 植物大战僵尸:寻找葵花生产速度
  8. C++:实现量化N阶导数运算测试实例
  9. 多项式求和(C语言)
  10. mysql默认编码改为gbk_查看改mysql编码方式让它支持中文(gbk或者utf8)