ski架构

ski 架构

gui

更新 gui的操作:

// 方式一
skiCmdUtil::getMainWnd()->viewRedraw();

// 方式二
skiLayoutView* lv = (skiLayoutView*) m_action->master;
if (lv)
lv->update();

layerview 有 fit() 函数

skipper gui 的 select 是如何实现的?
skipper 是如何实现调节亮度、置灰的?

相关类

获取 mainWindow:
skiMainWnd* mw = skiCmdUtil::getMainWnd();

guObjGroup
guCanvus
guSnap

Action 里 addCartoon, canvas 里画 cartoon

lpp 相关的信息 存在 abtech 里

置灰功能的实现,其实是重绘,guPainter 设为灰色

ruler 的实现

鼠标 move 的动画,guCartoon 的 draw 函数实现
静态图形,drawruler 实现

继承关系

->: 表示派生出

QWidget -> guCanvus -> skiLayoutView

QWidget -> skiLayoutFrame

guEventService -> skiAction

guViewObject -> guCartoon

包含关系

skiLayoutView:
skiLayoutFrame

tcl

新增 tcl 命令步骤:

skixxxx_tcl 定义函数

commands_ski1.xml 里定义函数参数和返回值

cmdSKILSW::execute()

c++ 函数 注册为 tcl 函数的相关内容在 cmd 包下
cmdApp.h
cmdTclUtil.h

tcl 命令参数

约束用法

[reset]         # 可以写,也可以不写
{ av | nv }     ; # 必须写其中一个
editIndex       ; # 必须出现
[emphasizeLayer | unEmphasizeLayer] #表示可选项,但不可以同时出现

bool 参数

<emphasizeLayer>
    <desc> Emphasize Layer. </desc>
    <type> bool </type>
    <default>false</default> <!--默认值 可不写-->
</emphasizeLayer>

使用:

if (args.m_emphasizelayer) {

}

tech and display

tech file 定义layer 和 purpose 的名字和样式

tcl 或 dsp file 定义颜色名对应的颜色,样式名具体的样式

Fillstyle(填充样式)

fillstyle 是一个全局属性,用于定义图形(如多边形、矩形等)的整体填充模式,例如实心填充、空心轮廓或预定义的简单图案。

常见取值:

solid:实心填充。
outline:仅显示轮廓,无填充。
outlineStipple: 显示 outline + stipple
cross:交叉斜线。
stipple: 只显示stipple

特点:

直接控制图形的填充行为,无需额外定义图案。
适用于快速切换简单填充模式,通常用于区分不同图层或显示层级。

Fillstipple(填充点画)

fillstipple 是一个局部属性,允许用户通过自定义的点画图案(位图)来填充图形。图案通常由二进制矩阵定义(如 0x1F1F 表示交替的黑白像素)。

常见用法:

用户需提前定义点画图案(如 stipple1 = 0b0101)。
将图案名称或ID赋值给 fillstipple 属性。

特点:

提供更灵活的填充效果(如自定义纹理、密集点阵等)。
适用于需要高精度区分图形或复杂填充的场景(如特殊工艺层标记)。

LVL

调用的别的小组的工具

posted @ 2025-05-20 21:21  卑以自牧lq  阅读(18)  评论(0)    收藏  举报