为ARCHICAD窗定义2D细节 有时候,用户们希望使用默认窗设置和一些GDL脚本语言来定义线与填充,从而自定义AC中窗的2D表达。现在我们来介绍一下如何通过ARCHICAD的模型视图选项(MVO)来控制这些表达参数。 从默认窗开始选择一个默认窗对象,设置好需要的参数,并放置在一面墙上。 编辑窗对象1、 在平面图上选中窗,按CTRL/CMD+SHIFT+O快捷键打开GDL对象编辑器。 2、 在编辑之前把新的窗对象保存在内嵌库中。 用脚本控制2D显示此步骤中需要编写一些脚本来关闭选中MVO(模型视图选项)的2D显示 1、 点击“样板”按钮来打开主脚本 2、 在主脚本中添加以下高亮的行: 主脚本释义Constants(常量)能够使赋予它的值在整个脚本保持不变。在后面的代码中通常使用常量名代替直接使用数字,这样做既简单又直接,方便改变数值。 定义一个本地变量(lsg_2DDetail),为其赋值为0。 调出LIBRARYGLOBAL函数,跳过MVO对象名(LG_DWSymbSettings.gsm—在加载进来的ARCHICAD库中可以找到),控制MVO的2D细节变量设置的参数 (iWindowMVODetlevel2D—在MVO对象中可以找到)以及在前面步骤中定义过的常量参数。 Success是另一个本地变量,可以接受函数的获得返回值(如果函数中有错误可以在返回值中找到)。在函数被成功调用后,iWindowMVODetlevel2D的变量值将会被储存在lsg_2DDetail中。 如果视图不是2D(GLOB_SCRIPT_TYPE<>2),那么脚本就会执行原来的下一步—直接显示默认物体。 如果视图是2D,但是模型视图选项是SIMPLE1或者MIDDLE2,那么脚本依然会执行原来的下一步。 如果视图是2D,而且模型视图选项是SIMPLE2或MIDDLE1或DETAILED,那么脚本不再继续执行,开始使用用户定义的2D表达。这个步骤是为了控制窗对象的2D符号的显示。 <>的意思是不等于。 &的意思是前后两个条件必须同时满足,会执行下一步。 or的意思是其中有一个条件满足,将会执行下一步。 结束if语句—否则脚本会出现错误。 为2D表达添加外轮廓线打开平面图,把模型视图选项设为SIMPLE1,用线来绘制窗户的外轮廓线。选择轮廓线,按CTRL/CMD+C复制。 转到对象窗口,点击2D符号旁边的按钮 绘制2D表达在2D符号视窗中粘贴之前复制的轮廓线,使用直线和填充工具,绘制窗的2D表达。由于需要在不同模型视图选项的基础上工作,每个表达都需要绘制在不同的图层上。例如:Simple2在图层1上,Middle1在图层2上,详图在图层3上,通用元素在图层4上。 同样可以添加热点。 为图层4填充背景。这个背景会覆盖墙上有窗的地方。 为SIMPLE2模式的2D表达添加线: 1、窗的剖面线在图层1中,当MVO的SIMPLE2选项被激活时将会在屏幕中显示; 2、墙的剖面线在图层4中,这样模型视图选项的SIMPLE2、MIDDLE1或Detailed模式被激活时将会在屏幕中显示。 1、为Middle1和Detailed添加窗剖面线(分别在图层2和图层3上)。 2、把它们一个放在另一个上面。 通过添加2D脚本调用2D表达转到对象用户界面,点击2D按钮来打开2D脚本。添加高亮显示的代码: 2D脚本释义条件语句 IF THEN ENDIF是用来检查MVO选项的; FRAGMENT2语句用来调出图层: l 如果用户选择SIMPLE 2模型视图选项,将显示图层1和图层4上的内容 l 如果用户选择MIDDLE 1模型视图选项,将显示图层2 和图层4上的内容 l 如果用户选择DETAILED模型视图选项,将显示图层3和图层4上的内容 保存和使用对象保存窗对象并使用。 注意:对于每一个类型的窗,上述操作都需要单独执行。举例说明:如果窗的宽度变化了,用户需要创建一个2D表达形式不同的另外的窗对象。
|