iCAx开思网

标题: 用GRIP如何实现选择一个实体,然后开始编辑其表达式的值 [打印本页]

作者: sumojinli    时间: 2009-11-7 15:55
标题: 用GRIP如何实现选择一个实体,然后开始编辑其表达式的值
用GRIP如何实现选择一个实体,然后开始编辑其表达式的值,并更新PART
作者: hello_icax    时间: 2009-11-9 10:41
你的描述比较粗糙。
或者是我的理解有问题。
如果给你一个任意的带参实体。你并不知道它包含哪些参数。
以及哪个参数的修改对应的是怎样的变化效果。
所以,即使可以用程序改变这些变量的值,也没有多大意义。

我的理解是,你希望编辑的这个实体是事先确定的。
也因此,实体上的某个参数对应的变量名也是确定的。
这样的话就可以通过修改表达式来实现实体参数的变化。
如:有个立方体,长宽高分别是:
        p9=100;p10=100;p11=100.
那么你可以用如下命令改变其值:
        EXPEDT/'p9=200'
        RPAINT    $$刷新界面。

不知道是否是你关心的问题。
如有误解,请勿见怪!
作者: sumojinli    时间: 2009-11-9 20:04
2楼的朋友,我你可帮助我做一例子吗?
需要实现的结果如下:
首先我导入一个有表达式的实体,然后再选择这个实体,来修改其表达式的值,最后更新这个所选的实体.
作者: hello_icax    时间: 2009-11-10 10:34
有两个问题:
1.如何查询用户选定的对象所关联的变量? 这点我也不知道,有待摸索.
2.对于编程者来说,事先并知道用户选择的是怎样的对象.该对象包含哪些的变量,
   其中哪个变量的值被修改是有意义的.是会得到预先想要的效果的.所以,这样的
   程序好像没有太大的用处!
   反之,如果事先(程序编制时)就已知选择的对象包含怎样的变量的话,第1个问题就
   不存在了.可以在程序内直接修改这个已知的变量.

不知道,您主要的目的是什么?
作者: sumojinli    时间: 2009-11-10 12:36
感谢楼上的热心;      
         因为我在实际应用中,将一个带有表达式的实体导入到当前模块,但是发现其表达式的名字会变,如1,当我导入后发现变为了P1'0, 这样一来我就需要手动一个个去修改,感到很不方便,不知楼上的朋友有什么办法让导入之后的实体,其表达式的名称不变,或帮助讲解一下你是如何来调用带有表达式的实体
作者: hello_icax    时间: 2009-11-10 13:49
其实,导入后变量名是不可能不变的。否则的话,同一个变量名就应用于
多个实体了,怎么可能!但可以使不同的变量等于相同的值、变量、或表达式。

这个问题本人也遇到过,一直没有十分有效的方法.
我在NX7.0中看了一下。(NX6应该也是如此的。)
有5个方式将其它文件内的实体复制到当前文件内。
复制后的效果各不相同。
1)无参复制。(不是您要的效果,不多讲了)
2)“文件”-〉“导入”-〉“部件文件”。效果如您所知,所有变量加了后缀'*
3)打开原始对象,选择它,右键菜单内选择复制。然后,在目标文件内选择标准工具栏上的“粘贴”。
   粘贴时的选项由三个:1、链接原先的;2、重用原先;3、新建;

这些方法哪个更适合您,请自己摸索一下。
至于编程方面,我的想法如下:
既然已知原始对象,就可事先将所有变量及表达式保存到某个地方。
然后在目标文件内导入对象后,用程序检查每个已经保存的变量名是否出现在
当前文件的表达式列表中。
如原始对象的表达式p1
在当前文件内查找是否有变量p1'1或p1'2或p1'3等依次类推。
当然这样有一定的局限性。必须在每次导入对象后及时运行此程序。

如有必要,我们可一起进一步研究问题的具体细节。
以上仅供参考,如有错误表述,敬请批评指正!
作者: sumojinli    时间: 2009-11-10 23:06
你说的第三种方法我试过了,谢谢你的解说,但还是达不到我需要的效果.有空我再想想,




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3