High priority Automatically add windows and doors

This topic has been viewed 4568 times and has 1 replies
Thread status: Active
Questions about extending features and developing plug-ins [img]http://www.sweethome3d.com/images/flags/en_small.gif[/img]
Post Reply New Topic
scoop7
Posts: 1
Joined: Wed Jan 22, 2025 3:17 am
Country: 中国

Automatically add windows and doors

Post by scoop7 »

I'm working on a plugin whose purpose is to automate the creation of windows and doors based on the scripts I entered, and I've implemented the basic functionality.
But I've encountered a problem: there is a big gap between the door, window and the wall.

Image

I am using IntelliJ IDEA COMMUNITY EDITION 2024.1.4
Here's my core code:

Code: Select all

Wall wall = new Wall(x1, y1, x2, y2, width, wallHeight);
Home home = getHome();
home.addWall(wall);

UserPreferences userPreferences = getUserPreferences();
FurnitureCatalog furnitureCatalog = userPreferences.getFurnitureCatalog();
FurnitureCategory furnitureCategory = furnitureCatalog.getCategory(3);
        for (CatalogPieceOfFurniture catalogPieceOfFurniture : furnitureCategory.getFurniture()) {
            if ("门".equals(catalogPieceOfFurniture.getName())) {
                Door = new HomeDoorOrWindow((DoorOrWindow) catalogPieceOfFurniture);
                System.out.println("找到门的模型");
            } else if ("窗户".equals(catalogPieceOfFurniture.getName())) {
                Window = new HomeDoorOrWindow((DoorOrWindow) catalogPieceOfFurniture);
                System.out.println("找到窗户的模型");
            }
        }

HomeDoorOrWindow window = new HomeDoorOrWindow(Window);
window.setDepth(Depth);
window.setWidth(Width);
window.setX(X);
window.setY((Y);
window.setBoundToWall(true);
home.addPieceOfFurniture(window);
User avatar
Daniels118
Posts: 503
Joined: Wed Nov 17, 2021 9:04 pm
Country: Italy

Re: Automatically add windows and doors

Post by Daniels118 »

It looks like you have set a value too large for the door depth. How are you computing it?

Look at the source of PlanController class and search for "getWallThickness" to find out how to compute the proper depth and position for a door. The wall thickness and distance are publicly accessible.
You may also search the forum for "doorOrWindowWallThickness" to find out more about these values.
Post Reply New Topic

Who is online

Users browsing this forum: No registered users and 3 guests