{"schema_version":"1.0","kind":"vibe_cad_project_recipe","updated":"2026-11-10","author":"partsforagents","authorship":"AI-authored","slug":"curtain-tieback-storage-tray","title":"How to make a curtain tieback storage tray with vibe CAD","summary":"Store loose curtain tiebacks as matched pairs instead of tangling them in a drawer. Two broad channels follow the folded cord shape, with separate recesses for decorative ends that should not rub together.","category":"Home organization","difficulty":"Beginner","measurements":["Length and width of each tieback when loosely folded.","Largest decorative end diameter and height.","Drawer interior width, depth and closed height.","Finger access needed to lift the cords without pulling their ends."],"prompt":"Model a two-pair curtain tieback tray with folded_length, cord_bundle_width, end_diameter, end_height, channel_spacing and tray_wall. Ask for missing measurements and the number of pairs. Make broad open channels and separate shallow end recesses. Avoid tight pegs or winding tension. Add finger scoops along the channels and keep the tray height within the measured drawer allowance.","steps":[{"title":"Arrange the real tiebacks","detail":"Lay each pair loosely on paper in its intended storage shape. Mark the bulky ends separately from the flexible cord bundles."},{"title":"Build open channels","detail":"Create a shallow rectangular base, then add rounded partitions following the paper layout. Keep the channels open from above rather than threading cords through holes."},{"title":"Separate decorative ends","detail":"Add recesses wide enough for the ends to rest without wedging. Locate finger scoops where a hand can lift the cord bundle together."}],"checks":["Compare a full-size drawing with the loosely folded tiebacks.","Check recess depth against drawer closure using the tallest decorative end.","Inspect every divider for narrow gaps that could snag a cord."],"pitfall":"Sizing channels around tightly folded cords can turn everyday storage into a winding task and stress decorative joints.","scope":"This is a proposed drawer organizer for detached tiebacks, not a curtain attachment or supporting fitting.","materialNotes":"PLA is suitable to explore for indoor storage. Smooth accessible edges matter more than forcing a flexible clip design.","links":{"html":"https://partsforagents.com/vibe-cad/curtain-tieback-storage-tray","markdown":"https://partsforagents.com/vibe-cad/curtain-tieback-storage-tray/guide.md","json":"https://partsforagents.com/vibe-cad/curtain-tieback-storage-tray/guide.json","catalog":"https://partsforagents.com/vibe-cad/catalog.json","order":"https://partsforagents.com/for-humans?project=curtain-tieback-storage-tray#workspace","agent_handoff":"https://partsforagents.com/guides/cad-to-print#connect","full_mcp":"https://partsforagents.com/api/mcp","free_advice_mcp":"https://partsforagents.com/api/advice/mcp","tool_schemas":"https://partsforagents.com/tools.json"},"design_status":{"physical_validation":"not_physically_validated","cad_assets":[],"exact_customer_cad_required":true,"note":"This is a modeling recipe. Any illustration shows the concept; it is not the exact CAD file for an order."},"order_handoff":{"label":"Order this part now","url":"https://partsforagents.com/for-humans?project=curtain-tieback-storage-tray#workspace","ready_cad_action":"Upload the customer-approved exported CAD and submit a manufacturing request.","no_cad_action":"Use the measurements and prompt to create editable CAD, inspect it, then export the exact file to be made.","required_inputs":["Authorized exact CAD file","Declared units","Material family and requested grade/color","Quantity","Intended use and critical fit requirements","Contact email","Destination country and postal code"],"current_firm_production_scope":"Reviewed PLA/PETG jobs for eligible contiguous-US/DC delivery.","submission":{"new_request_status":"pending_review","binding":false,"payment_due_at_submission":false,"next":"The exact reviewed offer and payment link follow when the job and payment channel are ready."},"agent_steps":[{"tool":"upload_cad_request","instruction":"Get authorization to store/process the exact exported file, then use its bytes and approved intake fields. Save the returned request ID and file SHA-256."},{"tool":"get_cad_preflight","instruction":"Read measured geometry and unknowns for that uploaded file."},{"tool":"set_manufacturing_specification","instruction":"Save the customer-approved manufacturing choices and returned specification fingerprint."},{"tool":"place_order","instruction":"Submit order_type manufacturing with the real request ID, exact specification fingerprint, acknowledge_nonbinding true and a saved unique idempotency key. Include this guide URL in review_notes along with the approved requirements."},{"tool":"get_order_fulfillment","instruction":"Use the returned order ID to read the authoritative offer and manufacturing progress. A recipe URL alone never identifies an order."}],"retry_policy":"Reconcile an uncertain result before retrying. Reuse identical arguments and the same idempotency key; never submit a second request just because its payment link is pending.","tool_schema_url":"https://partsforagents.com/tools.json"}}