CBuilder 教程 1- 多输入加法器

目录

1 介绍

2 创建一个新组件

3 创建所需的参数

4 绘制图形


技术咨询、模型上机运行 请加微信号 rtdsim

1 介绍

本章将详细介绍RSCAD FX中组件构建器(CBuilder)模块的简单使用。CBuilder模块允许用户为RSCAD创建自己的组件。CBuilder FX包含一个转换实用程序,可以将在旧版本的RSCAD中创建的CBuilder组件转换为RSCAD FX。
在本教程章节中,用户将构建一个可以对两个或三个输入进行加减的加法器组件。这个加法器将能够接受实型输入。

2 创建一个新组件

  • 启动RSCAD,从启动菜单中打开“Component Builder”。
  • 在欢迎对话框中选择“New Component”。
  • 为组件类型选择“Control”

图1.1:设置初始选项菜单
CBuilder模块将如图1.2所示。


图1.2:CBuilder FX

  • 将组件保存为“tutorialc”。它的文件扩展名为.def。

创建所需的参数

所需的参数将被添加到一个新的部分中。当你编辑组件的参数时,每个部分都会作为单独的选项卡出现在Draft中。“New Section”和“New parameter”按钮在图1.3的工具栏中标识。

  • 选择参数选项卡。


图1.3:参数页签

  • 添加标题为addercontrol的新section.
    • 插入点,也就是表格中的蓝线处,会添加新的参数。点击章节标题,插入点就会被放置在该章节的末尾。点击一个已有的参数,插入点就会被直接放置在该参数的后面。在添加新参数之前,请确保
      插入点在“addercontrol”部分。

图1.4:插入点

  • 必须输入一些字段来定义每个新参数。将以下参数添加到新创建的部分。
  • 参数# 1
NamenumInputs
DescriptionNumber of Inputs
TypeINTEGER
Unit And Toggle Entries<leave blank>
Value2
Min2
Max3
  • 参数# 2
Namesign1
DescriptionSign of Input 1
TypeTOGGLE
Unit And Toggle EntriesAdd;Subtract
ValueAdd
Min0
Max1
  • 输入的切换项必须以分号“;”分隔。
    • 如果选择“Add”切换项,参数sign1将被赋值为0,如果选择“Subtract”,则赋值为1。
      输入sign2和sign3也必须作为参数添加。可以手动添加,也可以对已有的sign1参数进行复制、粘贴和修改。注意sign3是有条件启用的。
      参数# 3
Namesign2
DescriptionSign of Input 2
TypeTOGGLE
Unit And Toggle EntriesAdd;Subtract
ValueAdd
Min0
Max1
  • 参数# 4
Namesign3
DescriptionSign of Input 3
TypeTOGGLE
Unit And Toggle EntriesAdd;Subtract
ValueAdd
Min0
Max1
Enabled ConditionnumInputs>2

绘制图形

每个组件有四个部分的图形。用户可以使用图形选项卡中的下拉菜单在这些图形部分之间切换,如图1.6所示。

  1. Main
  2. Tiny
  3. Library
  4. Loadflow

注意:所有组件都应该出现这四个部分。后面的章节将不会进一步讨论Tiny和Library图形,但用户有责任确保这些部分出现并遵循本章给出的指导方针。

图1.6:图形下拉菜单

在工具栏中,“添加宏”下拉菜单中有一组基本形状,可以

使绘图过程更有效率。

图1.7:可用的宏

  1. 主要图形
    目标是绘制一个类似于图1.8的组件图标。


图1.8:完成的组件图标
存在几个snap-to选项,使绘制组件图形更容易。如图1.9。所示,有许多有用的工具栏按钮在图中选择了“Snap to Grid”选项。这将允许图形对象捕捉到网格上的点。可以使用下拉菜单设置网格点间距,小到2像素,大到32像素。用户也可以选择不snap到网格。


图1.9:网格选项

    • 首先绘制无条件图形。图形可以通过使用主窗口顶部工具栏的绘图工具来绘制。确保图形绘制在画布中心附近(由相交线表示)。


图1.10:绘制无条件图形


图1.11:无条件图形
下面的步骤请参考图1.12和图1.13。

  • 添加一个新的“If”图形条件。此条件将用于根据输入次数改变图标的外观。

图1.12:从添加条件下拉菜单中选择“If”

  • 在提供的框中输入条件sign1==0。
  • 确保插入点位于新的“sign1==0”(Add)条件内。这可以通过点击条件来完成。现在添加的任何图形都将被放置在“If”条件中。
  • 使用线条工具在圆圈内部的12点钟位置用线条画一个“+”符号来表示input1的符号。
  • 确保插入点在“sign1==0”条件内。添加一个新的' Else '
    条件。插入点现在应该在Else条件(Subtract)内。
  • 在“+”号上画一个“−”号。减号的图形现在应该出现在Else条件下。注意,每个If/Else中的图形可以通过点击If/Else旁边的三角形来显示或隐藏。
  • 将插入点移到条件之外。这可以通过单击树中不在条件内的图形对象来完成。重复上述步骤,为“sign2==0”创建条件图形,只是将图形放在圆圈的9点钟位置。
  • 将插入点移到条件之外,并添加一个新的“If condition’”。
  • 输入条件' numInputs>2 '
  • 确保插入点位于“numInputs>2”条件内,并绘制第三条输入线。
  • 确保插入点仍在' numInputs>2 '内,并添加条件
    “sign3 = = 0”。
  • 确保插入点现在位于“sign3==0”条件内,并在圆的6点钟位置添加前面步骤中描述的条件“+”和“-”图形。

图标现在看起来应该类似于图1.13。

图1.13:组件图标

图形选项卡中的条件图形部分将显示为:

图1.14:图形的条件部分

  1. Tiny图形
    当Draft电路的缩放级别减少到超过选定的阈值时,在RSCAD中使用Tiny图形部分。这些图形意味着组件的简化表示,目的是在查看大型网络时减少渲染图形的计算负担。应该使用最小条件图形。不鼓励使用文字,黑色应该是唯一使用的图形颜色。图1.15显示了一个例子。


图1.15:Tiny Graphics Example

  1. Library图形
    Library图形是库中显示的图形。这是组件的另一种更简单的表示。库图形需要在提供的空间中绘制。不鼓励使用条件图形。图1.16给出了一个例子


图1.16:库图形示例

  1. Loadflow图形
    本节仅适用于电力系统部件。控制元件不参与负载流,因此本节对控制元件保持空白。
  2. 添加IO点

在这个例子中,一些IO点是有条件的。

  • 选择“IO点”选项卡。
  • 使用工具栏上的“绘制节点”按钮添加3个节点。

点击该按钮两次,将允许连续绘制多个节点。将其中两个节点放置在前2个输入处,将第三个节点放置在组件的输出处。可以通过选择每个节点并编辑图形窗口下方出现的信息框来修改节点详细信息。参见图1.17。


图1.17:添加节点信息
下面列出了IO节点的信息。
IO点fInput1

NamefInput1
TypeSIGNAL INPUT
Data TypeREAL


IO点fInput2

NamefInput2
TypeSIGNAL INPUT
Data TypeREAL


IO点输出输出

NamefOutput
TypeSIGNAL OUTPUT
Data TypeREAL
  • 在IO选项卡中,创建一个' If '条件并输入' numInputs==3 '作为条件。
  • 选择条件“If numInputs==3”以确保插入点在条件内,并添加fInput3 IO点(输入到sign3)。

图1.18:添加条件图形

IO点fInput3

NamefInput3
TypeSIGNAL INPUT
Data TypeREAL

IO选项卡现在应该出现,如图1.19所示。

图1.19:在IO点选项卡中创建条件

  1. 添加模型代码
  • 选择“C File Associations”选项卡。
  • 选择要添加新关联的图标。

  • 输入模型名称,如“tutorialc”
  • 关联应该类似于图1.20。


图1.20:添加新关联

  • 输入和输出点出现在“输入”和“输出”部分,而不是“NODES”部分。这是一个控制组件,NODES部分保留给电力系统组件电气类型节点。

下一步是编写定义组件行为的c代码。选择图标开始编辑.c文件。
简单的' c '代码将两个输入加在一起并产生一个可能的输出
如下所示:
代码:
fOutput = fInput1 + fInput2;

  • 在tutorial . C中输入1.7节中列出的C代码,然后按下C文件关联选项卡中的编译图标,编译代码。

如果编译成功,该组件就可以被包含在Draft电路中了。

  • 确保保存了CBuilder组件。
  • Draft有一个内部内存,存储了在Draft会话期间使用的组件。如果在Draft打开时修改了组件图标,则必须刷新图标。从库工具栏中选择该图标,即可刷新组件。

  1. 多输入加法器的示例“c”代码

注意:由于编码问题,代码不应该被复制粘贴。用户应该在自己的编辑器中编写代码。

代码如下所示:

# include“tutorialc.h”

STATIC:

// use the mult variables to keep track of sign of input int mult1;

int mult2; int mult3;

RAM:

// the parameters sign1,sign2 and sign3 are toggles where

// 0 == plus and 1 == minus

// use the mult variables to keep track of sign of input

if (sign1 == 1)

        mult1 = −1;

else

        mult1 =1;

if (sign2 == 1)

        mult2 = −1;

else

        mult2 =1;

if (sign3 == 1)

        mult3 = −1;

else

        mult3 =1;

CODE:

if (numInputs > 2)

        fOutput = (mult1*fInput1) + (mult2*fInput2) + (mult3*fInput3);

else

        fOutput = (mult1*fInput1) + (mult2*fInput2);

技术咨询、模型上机运行 请加微信号 rtdsim

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用 JavaScript 编写的杀死幽灵游戏(附源代码) 杀死鬼魂游戏是使用 Vanilla JavaScript、CSS 和 HTML 画布开发的简单项目。这款游戏很有趣。玩家必须触摸/杀死游荡的鬼魂才能得分。您必须将鼠标悬停在鬼魂上 - 尽量得分。鬼魂在眨眼间不断从一个地方移动到另一个地方。您必须在 1 分钟内尽可能多地杀死鬼魂。 游戏制作 这个游戏项目只是用 HTML 画布、CSS 和 JavaScript 编写的。说到这个游戏的特点,用户必须触摸/杀死游荡的幽灵才能得分。游戏会根据你杀死的幽灵数量来记录你的总分。你必须将鼠标悬停在幽灵上——尽量得分。你必须在 1 分钟内尽可能多地杀死幽灵。游戏还会显示最高排名分数,如果你成功击败它,该分数会在游戏结束屏幕上更新。 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要玩游戏,首先,单击 index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值