70 lines
2.0 KiB
XML
70 lines
2.0 KiB
XML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!--XSL style sheet to EESCHEMA Generic Netlist Format to PADS netlist format
|
|
Copyright (C) 2010, SoftPLC Corporation.
|
|
GPL v2.
|
|
|
|
How to use:
|
|
see eeschema.pdf, chapter 14
|
|
-->
|
|
|
|
<!DOCTYPE xsl:stylesheet [
|
|
<!ENTITY nl "
"> <!--new line CR, LF -->
|
|
]>
|
|
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
|
|
|
|
<xsl:template match="/export">
|
|
<xsl:text>*PADS-PCB*&nl;*PART*&nl;</xsl:text>
|
|
<xsl:apply-templates select="components/comp"/>
|
|
<xsl:text>&nl;*NET*&nl;</xsl:text>
|
|
<xsl:apply-templates select="nets/net"/>
|
|
<xsl:text>*END*&nl;</xsl:text>
|
|
</xsl:template>
|
|
|
|
<!-- for each component -->
|
|
<xsl:template match="comp">
|
|
<xsl:text> </xsl:text>
|
|
<xsl:value-of select="@ref"/>
|
|
<xsl:text> </xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test = "footprint != '' ">
|
|
<xsl:apply-templates select="footprint"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:text>unknown</xsl:text>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>&nl;</xsl:text>
|
|
</xsl:template>
|
|
|
|
<!-- for each net -->
|
|
<xsl:template match="net">
|
|
<!-- nets are output only if there is more than one pin in net -->
|
|
<xsl:if test="count(node)>1">
|
|
<xsl:text>*SIGNAL* </xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test = "@name != '' ">
|
|
<xsl:value-of select="@name"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:text>N-</xsl:text>
|
|
<xsl:value-of select="@code"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text>&nl;</xsl:text>
|
|
<xsl:apply-templates select="node"/>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<!-- for each node -->
|
|
<xsl:template match="node">
|
|
<xsl:text> </xsl:text>
|
|
<xsl:value-of select="@ref"/>
|
|
<xsl:text>.</xsl:text>
|
|
<xsl:value-of select="@pin"/>
|
|
<xsl:text>&nl;</xsl:text>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|