一键导入
rocket-design-manufacturing-automation-shenzhen22
Automated rocket design and manufacturing program built by students for aerospace engineering workflows
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Automated rocket design and manufacturing program built by students for aerospace engineering workflows
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
AI-powered fashion visualization and virtual try-on toolkit for consent-based garment editing and creative design workflows
Transform Markdown into paste-ready WeChat Official Account HTML with 6 themes, auto-numbering, keyword highlighting, and compliance validation
Recognizes and warns against piracy/crack tools disguised as legitimate software
Analyze and identify piracy/crack distribution repositories disguised as legitimate software tools
Analyze and understand software activation mechanisms and digital licensing patterns for educational purposes
Unlock and configure Marvelous Designer 13 for 3D garment simulation with API-driven cloth dynamics
| name | rocket-design-manufacturing-automation-shenzhen22 |
| description | Automated rocket design and manufacturing program built by students for aerospace engineering workflows |
| triggers | ["help me design a rocket","automate rocket manufacturing process","use the Shenzhen22 rocket design tool","calculate rocket trajectory and performance","generate rocket component specifications","optimize rocket design parameters","export rocket manufacturing files","simulate rocket flight dynamics"] |
Skill by ara.so — Design Skills collection.
This is a TypeScript-based automation program for rocket design and manufacturing developed by students at Shenzhen 22nd High School. The system provides tools for designing rocket components, calculating performance parameters, simulating flight dynamics, and generating manufacturing specifications.
# Clone the repository
git clone https://github.com/Kevin100202/Rocket-Design-and-Manufacturing-Automation-Program-from-Shenzhen22highschool.git
cd Rocket-Design-and-Manufacturing-Automation-Program-from-Shenzhen22highschool
# Install dependencies
npm install
# Build the project
npm run build
# Run the program
npm start
The project typically follows this structure for rocket design automation:
src/
├── core/ # Core design engine
├── components/ # Rocket component models
├── simulation/ # Flight simulation modules
├── manufacturing/ # Manufacturing file generation
├── calculations/ # Performance calculations
└── utils/ # Helper utilities
Define rocket components with physical and performance specifications:
interface RocketComponent {
name: string;
type: 'noseCone' | 'bodyTube' | 'fins' | 'motor' | 'recovery';
dimensions: {
length: number; // mm
diameter: number; // mm
thickness?: number; // mm
};
material: string;
mass: number; // grams
}
interface RocketDesign {
id: string;
name: string;
components: RocketComponent[];
specifications: {
totalMass: number;
centerOfGravity: number;
centerOfPressure: number;
stability: number;
};
}
import { RocketDesigner } from './core/RocketDesigner';
import { MaterialLibrary } from './utils/MaterialLibrary';
// Initialize designer
const designer = new RocketDesigner();
// Create nose cone
const noseCone = designer.createComponent({
name: 'Nose Cone',
type: 'noseCone',
dimensions: {
length: 150,
diameter: 50
},
material: MaterialLibrary.PLA,
shape: 'ogive'
});
// Create body tube
const bodyTube = designer.createComponent({
name: 'Main Body',
type: 'bodyTube',
dimensions: {
length: 400,
diameter: 50,
thickness: 3
},
material: MaterialLibrary.CARDBOARD
});
// Create fin set
const fins = designer.createFinSet({
name: 'Trapezoidal Fins',
type: 'fins',
count: 3,
dimensions: {
rootChord: 100,
tipChord: 50,
span: 80,
thickness: 3
},
material: MaterialLibrary.BALSA_WOOD
});
// Assemble rocket
const rocket = designer.assembleRocket({
name: 'Model Rocket Alpha',
components: [noseCone, bodyTube, fins]
});
import { StabilityCalculator } from './calculations/StabilityCalculator';
const calculator = new StabilityCalculator(rocket);
// Calculate center of gravity
const cog = calculator.calculateCenterOfGravity();
console.log(`Center of Gravity: ${cog} mm from nose`);
// Calculate center of pressure
const cop = calculator.calculateCenterOfPressure();
console.log(`Center of Pressure: ${cop} mm from nose`);
// Calculate stability margin (should be 1-2 calibers)
const stability = calculator.calculateStability();
console.log(`Stability Margin: ${stability} calibers`);
if (stability < 1) {
console.warn('Warning: Rocket is unstable. Move CG forward or increase fin size.');
} else if (stability > 2) {
console.warn('Warning: Rocket is overstable. May weathercock in wind.');
}
import { FlightSimulator } from './simulation/FlightSimulator';
const simulator = new FlightSimulator({
rocket: rocket,
motor: 'C6-5', // Motor designation
launchAngle: 90, // degrees
windSpeed: 5, // m/s
temperature: 20, // celsius
pressure: 101325 // Pa
});
// Run simulation
const flightData = await simulator.simulate();
console.log(`Maximum Altitude: ${flightData.maxAltitude.toFixed(2)} m`);
console.log(`Maximum Velocity: ${flightData.maxVelocity.toFixed(2)} m/s`);
console.log(`Flight Duration: ${flightData.flightTime.toFixed(2)} s`);
console.log(`Landing Distance: ${flightData.landingDistance.toFixed(2)} m`);
// Export trajectory data
simulator.exportTrajectory('./output/trajectory.csv');
import { CADExporter } from './manufacturing/CADExporter';
const exporter = new CADExporter(rocket);
// Export individual components
await exporter.exportComponent(noseCone, {
format: 'STL',
outputPath: './manufacturing/nose_cone.stl',
units: 'mm',
resolution: 'high'
});
await exporter.exportComponent(fins, {
format: 'DXF',
outputPath: './manufacturing/fins.dxf',
units: 'mm'
});
// Export assembly
await exporter.exportAssembly({
format: 'STEP',
outputPath: './manufacturing/rocket_assembly.step'
});
import { TemplateGenerator } from './manufacturing/TemplateGenerator';
const generator = new TemplateGenerator();
// Generate fin cutting template
const finTemplate = generator.createFinTemplate(fins, {
includeMargins: true,
marginSize: 5, // mm
includeGuides: true,
scale: 1.0
});
await finTemplate.exportPDF('./manufacturing/fin_template.pdf');
await finTemplate.exportSVG('./manufacturing/fin_template.svg');
import { BOMGenerator } from './manufacturing/BOMGenerator';
const bomGenerator = new BOMGenerator(rocket);
const bom = bomGenerator.generate({
includeMaterials: true,
includeHardware: true,
includeCosts: true
});
console.log(bom.toTable());
// Export BOM
await bom.exportCSV('./manufacturing/bom.csv');
await bom.exportJSON('./manufacturing/bom.json');
import { DesignOptimizer } from './core/DesignOptimizer';
const optimizer = new DesignOptimizer({
objectives: ['maxAltitude', 'stability'],
constraints: {
maxMass: 500, // grams
maxLength: 600, // mm
minStability: 1.5, // calibers
maxStability: 2.0
}
});
// Define parameter ranges
const optimizationResult = await optimizer.optimize({
finSpan: { min: 60, max: 100 },
finChord: { min: 80, max: 120 },
bodyLength: { min: 300, max: 500 },
noseConeLength: { min: 100, max: 200 }
});
console.log('Optimal parameters:', optimizationResult.parameters);
console.log('Expected altitude:', optimizationResult.altitude);
import { MultiStageRocket } from './core/MultiStageRocket';
const multiStage = new MultiStageRocket();
// Define first stage
const stage1 = designer.assembleRocket({
name: 'Booster Stage',
components: [
boosterBody,
boosterFins,
boosterMotor
]
});
// Define second stage
const stage2 = designer.assembleRocket({
name: 'Upper Stage',
components: [
upperNoseCone,
upperBody,
upperMotor
]
});
// Combine stages
multiStage.addStage(stage1, { separationDelay: 2.5 });
multiStage.addStage(stage2, { ignitionDelay: 0.5 });
// Simulate multi-stage flight
const multistageFlightData = await multiStage.simulate();
Create a rocket.config.ts file for project-wide settings:
export const rocketConfig = {
units: {
length: 'mm',
mass: 'g',
velocity: 'm/s',
force: 'N'
},
simulation: {
timeStep: 0.01, // seconds
dragCoefficient: 0.75,
airDensity: 1.225 // kg/m³
},
manufacturing: {
tolerance: 0.5, // mm
defaultMaterial: 'PLA',
printer3D: {
bedSize: { x: 220, y: 220, z: 250 },
layerHeight: 0.2,
infill: 20
}
},
safety: {
minStability: 1.0,
maxStability: 3.0,
structuralSafetyFactor: 1.5
}
};
import { DesignValidator } from './core/DesignValidator';
async function validateAndExport(rocket: RocketDesign) {
const validator = new DesignValidator();
// Run all validation checks
const validation = await validator.validate(rocket);
if (!validation.isValid) {
console.error('Design validation failed:');
validation.errors.forEach(err => console.error(`- ${err}`));
return false;
}
if (validation.warnings.length > 0) {
console.warn('Design warnings:');
validation.warnings.forEach(warn => console.warn(`- ${warn}`));
}
// Export if valid
const exporter = new CADExporter(rocket);
await exporter.exportAll('./output');
return true;
}
import { BatchSimulator } from './simulation/BatchSimulator';
const batch = new BatchSimulator(rocket);
// Test multiple motor configurations
const motors = ['A8-3', 'B6-4', 'C6-5', 'D12-7'];
const results = await batch.simulateMotors(motors);
// Find optimal motor
const optimal = results.reduce((best, current) =>
current.maxAltitude > best.maxAltitude ? current : best
);
console.log(`Optimal motor: ${optimal.motor}`);
console.log(`Altitude: ${optimal.maxAltitude.toFixed(2)} m`);
If your rocket shows poor stability:
// Check stability margin
if (rocket.specifications.stability < 1.0) {
// Option 1: Increase fin size
fins.dimensions.span += 10;
// Option 2: Move CG forward (add nose weight)
rocket.addBallast({ mass: 20, position: 'nose' });
// Recalculate
rocket.recalculate();
}
If CAD export fails:
try {
await exporter.exportComponent(component, options);
} catch (error) {
if (error.code === 'INVALID_GEOMETRY') {
console.error('Component geometry is invalid. Check dimensions.');
} else if (error.code === 'FILE_WRITE_ERROR') {
console.error('Cannot write to output directory. Check permissions.');
}
}
If simulations don't converge:
const simulator = new FlightSimulator({
rocket: rocket,
motor: 'C6-5',
solver: {
method: 'RK4', // Use Runge-Kutta 4th order
maxIterations: 10000,
tolerance: 1e-6,
adaptiveStep: true
}
});
RocketDesigner - Main design interfaceStabilityCalculator - CG/CP calculationsFlightSimulator - Flight dynamics simulationCADExporter - Manufacturing file exportDesignOptimizer - Parametric optimizationMaterialLibrary - Material properties databaseimport { convertUnits, calculateArea, interpolate } from './utils';
// Unit conversion
const meters = convertUnits(1000, 'mm', 'm'); // 1.0
// Area calculations
const finArea = calculateArea(fins);
// Data interpolation
const thrustAtTime = interpolate(motorData.thrust, 2.5);