On Nov 5, 2008, at 1:34 PM, Levente Kovacs wrote:

> On Wed, 1 Oct 2008 23:17:20 +0000 (UTC)
> Kai-Martin Knaak <[EMAIL PROTECTED]> wrote:
>
>> On Wed, 01 Oct 2008 17:35:28 +0100, Peter Clifton wrote:
>>
>>>> You have a common problem.  You need to clear the "join flag" for
>>>> all those lines.
>>>
>>> Can we get this crappy default changed?
>>
>> IMHO the join flag mess is a real pain and needs a more general fix.
>> How about resetting the join flag setting when the user quits the
>> line tool? This would avoid placing loads of tracks with accidental
>> join flag.
>>
>> A different approach would be to make the default setting of the join
>> flag a property of individual layers. This would come handy with
>> ground planes.
>
> Or let each copper object have a netname attribute, and if two of  
> the same are met
> then they could be connected (joined), if not, then not. And forget  
> about the
> join flag. Let the computer think! :-)
>

if this is put into place,  it would be nice to allow a copper object  
have multiple nets attach to it.

example

i have 2 polygons, net A and Net B,  i want to short these together,   
you use a piece of copper to short them, and it has all the attributes  
of a real part, but is multi ported, allowing for a short of two nets  
with out a DRC violation.

an attribure attached to the peice of copper, that specifies the  
netname attached,  with an optional max net connections.


CopperNet Netname[:number of connections]
CopperNet Netname2[:number of connections]
CopperNet Netname3[:number of connections]
cont.....


real example

# release: pcb 1.99w
# date:    Wed Nov  5 19:37:07 2008
# user:    hardkrash (Steven Michalske)
# host:    xxx

# To read pcb files, the pcb version (or the cvs source date) must be  
 >= the file version
FileVersion[20070407]

PCB["" 200000 200000]

Grid[1000.000000 0 0 0]
Cursor[0 0 0.000000]
PolyArea[200000000.000000]
Thermal[0.500000]
DRC[699 400 800 800 1500 1000]
Flags("nameonpcb,uniquename,clearnew,snappin")
Groups("1,c:2,s:3:4:5:6:7:8")
Styles["Signal,1000,3600,2000,1000:Power,2500,6000,3500,1000:Fat, 
4000,6000,3500,1000:Skinny,600,2402,1181,600"]

Layer(1 "component")
(
# The easy way, a single copper feature is specially taged to have  
polynet connections, and it shorts them
# the polynet flag tells the DRC checker that it has special net  
requirements. (optional)
        Line[57000 51000 80000 51000 1000 2000 ""]
#       Line[57000 51000 80000 51000 1000 2000 "polynet"]
#       (
#               CopperNet netA:1                #one connection from each net 
on that segment.
#               CopperNet netB:1
#       )
        Polygon("clearpoly")
        (
                [19000 41000] [60000 41000] [60000 64000] [19000 64000]
        )
        Polygon("clearpoly")
        (
                [72000 41000] [97000 41000] [97000 119000] [72000 119000]
        )
)


# a harder rule but useful for
Layer(2 "solder")
(
        Polygon("clearpoly")
        (
                [40000 115000] [57000 115000] [57000 135000] [40000 135000]
#               CopperNet netB                  # many connections from netB, 
only one from netC
#               CopperNet netC:1
        )
        Polygon("clearpoly")
        (
                [55000 121000] [60000 121000] [60000 128000] [55000 128000]
#               # no net names, so it gets to discover what net is it connected 
 
to,  if it spans nets, it has to consume the other nets inter net  
connections.
        )
        Polygon("clearpoly")
        (
                [59000 116000] [71000 116000] [71000 132000] [59000 132000]
#               CopperNet netB                  # many connections from netC, 
only one from netB
#               CopperNet netC:1
        )
)
Layer(3 "GND")
(
        Arc[72000 69000 10000 10000 1000 2000 -90 90 ""]
        Arc[72000 69000 10000 10000 1000 2000 -180 90 ""]
#               How to join multiple line/arc segments to allow for this as 
well....
#               Maybe copperNet should encapsulate the objects......  like  
layers.....
#
#               CopperNet
#               (
#                       NetA:0          # 0 or no :number for infinite 
connections.
#                       NetB:1
#                       Arc[72000 69000 10000 10000 1000 2000 -90 90 ""]
#                       Arc[72000 69000 10000 10000 1000 2000 -180 90 ""]
#               )


        Polygon("clearpoly")
        (
                [50000 67000] [69000 67000] [69000 88000] [50000 88000]
#               CopperNet netA
        )
        Polygon("clearpoly")
        (
                [75000 67000] [88000 67000] [88000 88000] [75000 88000]
#               CopperNet netB
        )
)
Layer(4 "power")
(
        Still Legal, although wraps around corners,  shorts can have one  
"Coastline"
        Polygon("clearpoly")
        (
                [59000 158000] [76000 158000] [76000 172000] [59000 172000]
        )
        Polygon("clearpoly")
        (
                [94000 158000] [107000 158000] [107000 172000] [94000 172000]
        )
        Polygon("clearpoly")
        (
                [98000 156000] [73000 156000] [73000 162000] [98000 162000]
        )
)
Layer(5 "signal1")
#breaks the rules.
(
        Line[153000 101000 136000 118000 1000 2000 ""]
        Line[155000 101000 131000 101000 1000 2000 ""]
        Polygon("clearpoly")
        (
                [120000 97000] [137000 97000] [137000 131000] [120000 131000]
#               CopperNet netB                  # many connections from netB, 
only one from netC
#               CopperNet netC:1
        )
        Polygon("clearpoly")
        (
                [149000 97000] [164000 97000] [164000 130000] [149000 130000]
#               CopperNet netB:1                        # many connections from 
netB, only one from netC
#               CopperNet netC
        )
)

Layer(6 "signal2")
(
)
Layer(7 "unused")
(
)
Layer(8 "unused")
(
)
Layer(9 "silk")
(
)
Layer(10 "silk")
(
        Line[73000 158000 76000 158000 1000 2000 "clearline"]
        Line[76000 158000 76000 162000 1000 2000 "clearline"]
        Line[94000 162000 94000 158000 1000 2000 "clearline"]
        Line[94000 158000 98000 158000 1000 2000 "clearline"]
        Line[57000 121000 57000 128000 1000 2000 "clearline"]
        Line[59000 121000 59000 128000 1000 2000 "clearline"]
        Line[137000 116000 137000 119000 1000 2000 "clearline"]
        Line[137000 104000 137000 106000 1000 2000 "clearline"]
        Text[113000 92000 0 56 "Breaks the rules,  to many connections" ""]
        Text[81000 168000 0 100 "AOK" ""]
        Text[67000 175000 0 100 "one coastline" ""]
)

#END PCB FILE

>> ---<(kaimartin)>---
>> -- 
>> Kai-Martin Knaak
>> http://lilalaser.de/blog
>>
>>
>>
>> _______________________________________________
>> geda-user mailing list
>> [email protected]
>> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
>>
>
>
> -- 
> Levente Kovacs
> http://logonex.eu
>
>
>
> _______________________________________________
> geda-user mailing list
> [email protected]
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user



_______________________________________________
geda-user mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

Reply via email to