Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

Only Write Certain Parameters To A CSV File

isocam
Collaborator

Only Write Certain Parameters To A CSV File

isocam
Collaborator
Collaborator

Can anybody help?

 

I have the following script that outputs Parameters to a CSV File.

 

#Author-Darren James Smith
#Description-Export Parameters To File

import adsk.core, adsk.fusion, adsk.cam, traceback, csv, subprocess

def run(context):
ui = None
try:
app = adsk.core.Application.get()

ui = app.userInterface

filename = "C:\Windows\Temp\Parameters.txt"

writeParametersToFile(filename)

#subprocess.run('C:\Program Files\PMM\Configure.exe')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))


def writeParametersToFile(filePath):
app = adsk.core.Application.get()

design = app.activeProduct

with open(filePath, 'w', newline='') as csvFile:
csvWriter = csv.writer(csvFile, dialect=csv.excel)

for param in design.allParameters:
try:
paramUnit = param.unit
except:
paramUnit = ""

csvWriter.writerow([param.name, param.expression])

 

I have a set of 25 parameters but I only want to save certain parameters to the CSV file.

 

The parameters that I want to save are:

 

CentreX

 

CentreY

 

DimensionA

 

DimensionB

 

DimensionC

 

Can anybody modify the script, above, to only output the parameters that I want?

Many thanks in advance!!!!

 

Darren

0 Likes
Reply
247 Views
1 Reply
Reply (1)

pludikar
Collaborator
Collaborator

Hi @isocam 

 

This should do what you want

 

#Author-Darren James Smith
#Description-Export Parameters To File

import adsk.core, adsk.fusion, adsk.cam, traceback, csv, subprocess

parameters = ['CentreX', 'CentreY', 'DimensionA', 'DimensionB', 'DimensionC']


def run(context):
    ui = None
    try:
        app = adsk.core.Application.get()

        ui = app.userInterface

        filename = "C:\Windows\Temp\Parameters.txt"

        writeParametersToFile(filename)

    #subprocess.run('C:\Program Files\PMM\Configure.exe')
    except:
        if ui:
            ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))


def writeParametersToFile(filePath):
    app = adsk.core.Application.get()

    design = app.activeProduct

    with open(filePath, 'w+', newline='') as csvFile:
        csvWriter = csv.writer(csvFile, dialect=csv.excel)

        for param in design.allParameters:
            try:
                paramUnit = param.unit
            except:
                paramUnit = ""
        
            if param.name in parameters:
                csvWriter.writerow([param.name, param.expression])

 

 

Peter 

I'm not an expert, but I know enough to be very, very dangerous.

Life long R&D Engineer (retired after 30+ years in Military Communications, Aerospace Robotics and Transport Automation).
0 Likes