我看到有一种方法可以从模型中获取单元SUModelGetUnits。但没有方法来设置模型/文件的单位。
那么,是否可以设置单位? 如果是,那么该方法是什么,或者是否存在任何其他间接方式 - 这样新文件将被保存为"毫米"单元?
注意:此问题已作为此主题http://sketchucation.com/forums/viewtopic.php?f=180%26amp;t=57909的一部分提前发布。 由于这是与原始主题不同的问题,我已单独添加。
答案 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的完整文档,其中包括各种选项提供程序,选项和可用值的细分。
希望这有帮助。
保