tianmiao1989 发表于 2024-2-3 22:44:17

动态块中点参数赋值问题

本帖最后由 tianmiao1989 于 2024-2-3 22:45 编辑

一个属性块,设置了点参数

var props = mycad.GetDynProperties(blockId);//获取动态块的所有属性
                foreach (DynamicBlockReferenceProperty prop in props)
                {

                  mycad.caddisplay("\n" + prop.PropertyName + ": " + prop.PropertyTypeCode + "\n");

                }
               

               
                string value = "-3749";
                foreach (DynamicBlockReferenceProperty prop in props)
                {

                  //如果动态属性的名称与输入的名称相同且为可读
                  if (prop.ReadOnly == false && prop.PropertyName == "位置1 X")
                  {
                        editor.WriteMessage(prop.PropertyName);
                        //decimal xValue = Convert.ToDecimal(value);
                        
                        prop.Value = value;
                        //判断动态属性的类型并通过转换类型设置正确的动态属性值

                        break;
                  }
                }

想修改“位置1 X”的值,“位置1 X”读出来的prop.PropertyTypeCode 是1,prop.value 用了string、double、object等几个数据类型进行赋值,都出现了Autodesk.AutoCAD.Runtime.Exception: "eInvalidInput" 异常 ,请教各位大神,改如何修改?

你有种再说一遍 发表于 2024-2-3 23:39:44

value是负数?

tianmiao1989 发表于 2024-2-4 20:46:37

难道不能是负数么?

你有种再说一遍 发表于 2024-2-4 21:59:32

tianmiao1989 发表于 2024-2-4 20:46
难道不能是负数么?

先读再+1设置看看,你这个代码看不出问题
https://www.cnblogs.com/JJBox/p/12371467.html
我也差不多这样做?忘记提权?事务问题?还是触发到其他错误了?

tianmiao1989 发表于 2024-2-4 22:22:45

还是不行,这个事比较奇怪了,可能点参数的数据类型不太一样,后面用别的思路解决了

weimeng555 发表于 2024-5-22 01:44:36

tianmiao1989 发表于 2024-2-4 22:22
还是不行,这个事比较奇怪了,可能点参数的数据类型不太一样,后面用别的思路解决了

你好,想问下最后怎么解决的,能否分享一下经验呢,刚好也遇到你提的问题

你有种再说一遍 发表于 2024-6-4 16:01:11

weimeng555 发表于 2024-5-22 01:44
你好,想问下最后怎么解决的,能否分享一下经验呢,刚好也遇到你提的问题

看看ifox的?
页: [1]
查看完整版本: 动态块中点参数赋值问题