Custom Command - Auto-Place Lights


Scogginator
 Share

Go to solution Solved by Alaskan_Son,

Recommended Posts

Is there a way to write a custom command to auto-place lights?

 

I've used chat GTP to write code that I'd like to utilize. I have attached a word file and pdf that I need proof read and corrected. I can have that done.

 

Below is the code, but I'm not sure if it will format correctly:

Sub PlaceLights()
    'Ask the user to select the room size and ceiling height
    Dim roomWidth As Double
    Dim roomLength As Double
    Dim roomHeight As Double
    roomWidth = InputBox("Enter the width of the room in feet:")
    roomLength = InputBox("Enter the length of the room in feet:")
    roomHeight = InputBox("Enter the height of the room in feet:")
    
    'Calculate the square footage of the room based on user input
    Dim roomArea As Double
    roomArea = roomWidth * roomLength
    
    'Determine the recommended lighting level for the room based on the ceiling height and room type
    Dim lightLevel As Double
    Select Case roomHeight
        Case Is <= 8
            lightLevel = 10
        Case Is <= 9
            lightLevel = 20
        Case Is <= 10
            lightLevel = 30
        Case Is <= 12
            lightLevel = 40
        Case Else
            MsgBox "Invalid ceiling height"
            Exit Sub
    End Select
    
    'Calculate the number of lights needed based on the room size and the recommended spacing
    Dim lightSpacing As Double
    If roomArea <= 100 Then
        lightSpacing = 48
    ElseIf roomArea <= 225 Then
        lightSpacing = 64
    ElseIf roomArea <= 400 Then
        lightSpacing = 80
    Else
        lightSpacing = 96
    End If
    Dim lightCount As Integer
    lightCount = Application.RoundUp((roomWidth + roomLength) / lightSpacing, 0)
    
    'Determine the optimal spacing for the lights based on the room size and ceiling height
    Dim xOffset As Double
    Dim yOffset As Double
    If roomWidth >= roomLength Then
        xOffset = lightSpacing
        yOffset = lightSpacing * roomLength / roomWidth
    Else
        xOffset = lightSpacing * roomWidth / roomLength
        yOffset = lightSpacing
    End If
    
    'Place the lights in a rectangular or square pattern within the room
    Dim lightType As String
    lightType = InputBox("Enter the light diameter (4 or 6):")
    Dim x As Integer
    Dim y As Integer
    Dim light As Object
    For x = 1 To lightCount
        For y = 1 To lightCount
            Set light = ActiveDocument.CreateLight("Recessed Can Light", lightType & """", "General")
            light.Move (x - 1) * xOffset, (y - 1) * yOffset, roomHeight - 48
        Next y
    Next x
    
    'Generate a report or summary of the lighting plan for the room
    Dim report As String
    report = "Room Size: " & roomWidth & " ft x " & roomLength & " ft" & vbCrLf
    report = report & "Ceiling Height: " & roomHeight & " ft" & vbCrLf
    report = report & "Recommended Light Level: " & lightLevel & " lux" & vbCrLf
    report = report & "Number of Lights: " & lightCount ^ 2 & vbCrLf
    report = report & "Light Spacing: " & lightSpacing & " in" & vbCrLf
    report = report & "Light Type: " & lightType & """ Recessed Can Light" & vbCrLf
    MsgBox report
 

 

Any help would be appreciated.

 

Thanks,

 

Jeff

Sub PlaceLights.docx Sub PlaceLights.pdf

Link to comment
Share on other sites

Sorry, but the information you've received from Chat GPT is total and complete rubbish.  It's beyond repair, completely irredeemable and I see nothing in it even remotely worth discussing.  I'd say you took a turn onto a dead end except that you didn't even turn onto as road.  Its more like you've taken a hard right directly into a brick wall.

  • Upvote 2
Link to comment
Share on other sites

2 minutes ago, Alaskan_Son said:

Sorry, but the information you've received from Chat GPT is total and complete rubbish.  It's beyond repair, completely irredeemable and I see nothing in it even remotely worth discussing.  I'd say you took a turn onto a dead end except that you didn't even turn onto as road.  Its more like you've taken a hard right directly into a brick wall.

 

But you're not the answer I'm looking for. I'm looking to answer the question if custom commands are possible in chief. 

Link to comment
Share on other sites

  • Solution
1 minute ago, Scogginator said:

 

But you're not the answer I'm looking for. I'm looking to answer the question if custom commands are possible in chief. 

 

No.  They're not.  You could use a macro recorder that will record and simulate things like mouse clicks and keystrokes, but that's nothing like the example you've described.  Chief doesn't give us any access to the internals like that.

Link to comment
Share on other sites

9 minutes ago, Alaskan_Son said:

 

No.  They're not.  You could use a macro recorder that will record and simulate things like mouse clicks and keystrokes, but that's nothing like the example you've described.  Chief doesn't give us any access to the internals like that.

Thank you. That answers it. 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share