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

时间:2014-06-05 13:02:02

标签: ruby sketchup

我看到有一种方法可以从模型中获取单元SUModelGetUnits。但没有方法来设置模型/文件的单位。

那么,是否可以设置单位? 如果是,那么该方法是什么,或者是否存在任何其他间接方式 - 这样新文件将被保存为"毫米"单元?

注意:此问题已作为此主题http://sketchucation.com/forums/viewtopic.php?f=180%26amp;t=57909的一部分提前发布。 由于这是与原始主题不同的问题,我已单独添加。

1 个答案:

答案 0 :(得分:2)

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

Decimal的UnitsOptions / LengthFormat值为0。 UnitsOptions / LengthUnit的毫米值是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);

您可以找到选项提供程序here的完整文档,其中包括各种选项提供程序,选项和可用值的细分。

希望这有帮助。