如何将三角形网格导入SketchUp中的小脸?

时间:2016-04-04 14:34:20

标签: file-io import sketchup

我正在尝试从文件导入三角形网格(例如,.3ds,.dae)。但是,似乎忽略了一些面(三角形)。如果我在导入之前将模型缩放10倍,那么三角形就是圆滑的。有没有办法强制草图加载所有面,甚至是小面?

以下是以常规比例加载闭合网格(无边界)的示例。 SketchUp忽略了一些三角形,创建了孔和悬垂边缘: a few missing triangles

如果我 缩小 模型,则问题会更严重: many problems

但是,如果我 扩展 足够的模型,问题就会消失: no problems

此外,我导入后立即将光标设置为“移动模式”,因此将对象放置在我的光标随机出现的任何位置。有没有办法在没有鼠标交互的情况下将模型精确导入当前坐标系?

1 个答案:

答案 0 :(得分:0)

是的,Sketchup不能正确导入非常小的边/面是一个已知问题。您可以使用此ruby脚本自动执行升级模型的导入过程:

model = Sketchup.active_model
# Import your dwg file, true if you want the summary screen
model.import 'C:\path\to\example.dwg', false

# Reset the selected tool
model.select_tool(nil)

# Get all imported faces
faces = model.entities.grep(Sketchup::Face)

# Create a new ComponentDefinition
definition = model.definitions.add "dwg"

# Add the points of every face to the definition  
faces.each{|f| definition.entities.add_face f.vertices}

# Remove all entities
model.entities.clear!

# Create a new DefinitionInstance that is scaled by 0.5
transformation = Geom::Transformation.new(0.5)
instance = model.entities.add_instance definition, transformation

# Explode the component to work with the model
instance.explode

这会将组件添加到原点,并负责缩放导入的模型。如果您的模型是skp文件,您甚至可以将其直接加载到ComponentDefinition,但这对dwg文件不起作用。