qhgongyi 发表于 2017-12-1 16:28:42

为ARCHICAD窗定义2D细节

为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表达形式不同的另外的窗对象。

ヤ焱瀧菓 发表于 2017-12-7 09:40:28

这类文章少
页: [1]
查看完整版本: 为ARCHICAD窗定义2D细节