If no pins are placed in a new cell Nazca will place two default pins, i.e. input ‘a0’ at (0, 0, 180) and output ‘b0’ at (0, 0, 0) in the cell’s coordinates, so the cell can be connected.
The pins you placed are on pins in the original cells (wg1strt and wg2strt) rather than the instances of those cells in your “pulley” cell, i.e. the result of their placement via a put(). So those pins in your example appear at the coordinates as they are in the original cell rather than their instance location in your new “pulley” cell, where you want them. The solution is as follows:
# old (incorrect) wg2strt.put() nd.Pin(name='a0', pin=wg1strt.pin['b0']).put() # new (correct) an_instance_of_the_cell_wg2strt = wg2strt.put() nd.Pin(name='a0', pin=an_instance_of_the_cell_wg2strt.pin['b0']).put()
See also this post about cells and instances