## Problem Description and Formulation

The glass company needs to determine the optimal number of sliding doors and windows to produce daily in order to maximize profit, given certain constraints.

- Let \(D\) be the number of sliding doors produced per day.
- Let \(W\) be the number of windows produced per day.

The constraints are as follows:
1. \(D \geq 120\) (at least 120 sliding doors per day)
2. \(W \geq 110\) (at least 110 windows per day)
3. \(D \leq 210\) (at most 210 sliding doors per day)
4. \(W \leq 170\) (at most 170 windows per day)
5. \(D + W \geq 250\) (at least 250 products of either type per day)

The objective function to maximize profit is:
\[ \text{Maximize:} \quad 30D + 25W \]

## Gurobi Code

```python
import gurobi

def solve_glass_company_problem():
    # Create a new model
    model = gurobi.Model()

    # Define variables
    D = model.addVar(lb=120, ub=210, name="Sliding_Doors")
    W = model.addVar(lb=110, ub=170, name="Windows")

    # Objective function: Maximize profit
    model.setObjective(30*D + 25*W, gurobi.GRB.MAXIMIZE)

    # Constraint: At least 250 products per day
    model.addConstr(D + W >= 250, name="Total_Products")

    # Solve the model
    model.optimize()

    # Print solution
    if model.status == gurobi.GRB.OPTIMAL:
        print(f"Optimal solution found.")
        print(f"Sliding Doors: {D.varValue}")
        print(f"Windows: {W.varValue}")
        print(f"Max Profit: ${30*D.varValue + 25*W.varValue}")
    else:
        print("No optimal solution found.")

# Run the function
solve_glass_company_problem()
```