Ruby (Sketchup C API)是否将mm设置为新创建模型的单位?

Ruby (Sketchup C API)是否将mm设置为新创建模型的单位?,ruby,sketchup,Ruby,Sketchup,我发现有一种方法可以从模型中获取单位SUModelGetUnits。但没有为模型/文件设置单位的方法 那么,可以设置单位吗? 如果是,该方法是什么,或者是否有其他间接方法-例如以“毫米”单位保存新文件 注意:此问题已作为此线程的一部分在前面发布。 由于这是一个与原始线程不同的问题,我单独添加了它。是的,可以使用SketchUp C API设置单位。您只需要使用UnitsOptions选项管理器来设置LengthFormat和LengthUnit 十进制的UnitsOptions/LengthFo

我发现有一种方法可以从模型中获取单位SUModelGetUnits。但没有为模型/文件设置单位的方法

那么,可以设置单位吗? 如果是,该方法是什么,或者是否有其他间接方法-例如以“毫米”单位保存新文件

注意:此问题已作为此线程的一部分在前面发布。
由于这是一个与原始线程不同的问题,我单独添加了它。

是的,可以使用SketchUp C API设置单位。您只需要使用UnitsOptions选项管理器来设置LengthFormat和LengthUnit

十进制的UnitsOptions/LengthFormat值为0。 毫米的单位选项/长度单位值为2

下面是一些设置这些值的示例代码:

// Get the options manager
SUOptionsManagerRef options_manager = SU_INVALID;
SUModelGetOptionsManager(my_model, &options_manager);

// Get the UnitsOptions options provider
SUOptionsProviderRef options_provider = SU_INVALID;
SUOptionsManagerGetOptionsProviderByName(options_manager, "UnitsOptions", 
                                         &options_provider);

// Make a new typed value with value for mm
SUTypedValueRef typed_value = SU_INVALID;
SUTypedValueCreate(&typed_value);
SUTypedValueSetInt32(typed_value, 2);

// Set the value for LengthFormat to Decimal
SUTypedValueSetInt32(typed_value, 0);
SUOptionsProviderSetValue(options_provider, "LengthFormat", typed_value);

// Set the value for LengthUnit to mm
SUTypedValueSetInt32(typed_value, 2);
SUOptionsProviderSetValue(options_provider, "LengthUnit", typed_value);
您可以找到选项提供程序的完整文档,其中包括各种选项提供程序、选项和可用值的明细

希望这有帮助

保罗