Skip to content

Bug report: Custom part SVG silently fails to render in Fritzing 1.0.7 on macOS #4316

Description

@cortinagil

Dear Fritzing team,

I am writing to report a significant issue with custom part rendering in Fritzing 1.0.7 on macOS that makes it impossible to use certain third-party parts.

The problem:
When importing a custom .fzpz part (specifically the Analog Discovery Studio part from Digilent), the part appears briefly on the breadboard canvas and then immediately disappears. No meaningful error message is shown to the user — the part simply vanishes after being dragged.

After extensive investigation, I identified several root causes:

  1. Qt SVG renderer limitations: Fritzing's Qt-based SVG renderer silently fails on SVGs containing certain elements or attributes that are valid SVG but unsupported by Qt, including:

    • CSS <style> blocks with class-based selectors (Qt ignores them, making all elements invisible)
    • linearGradient elements
    • tags
    • bare elements with no attributes
    • custom attributes such as data-* and gorn=
  2. Shape complexity limit: Qt's SVG renderer appears to have an undocumented limit on the number of shapes it can render. SVGs with more than approximately 700 shape elements cause the renderer to silently fail and the part disappears.

  3. File extraction behavior: Fritzing 1.0.7 on macOS extracts only the .fzp file from the .fzpz archive to disk, but reads SVG files directly from the original zip archive. This behavior is undocumented and different from what the Fritzing documentation implies.

The Digilent Analog Discovery Studio breadboard SVG contains approximately 6,931 shape elements (representing the breadboard holes and component details), which far exceeds the rendering limit.

System information:

  • Fritzing version: 1.0.7
  • macOS version: current
  • Part: Analog Discovery Studio by Digilent

I am happy to provide the modified .fzpz files and SVGs I produced during debugging if that would be helpful.

Thank you for your time and for maintaining Fritzing.

Best regards,
Eduardo Cortina Gil

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions