Scripts: dividelinks.py

File dividelinks.py, 748 bytes (added by goddard, 9 years ago)
Line 
1# Insert N markers at each selected link. Example Chimera command
2#
3# runscript dividelinks.py 4
4#
5def divide_links(links, n):
6 from VolumePath import Link
7 for link in links:
8 m1, m2 = link.marker1, link.marker2
9 mprev = m1
10 mset = m1.marker_set
11 for i in range(n):
12 f = float(i+1) / (n+1)
13 xyz = tuple((1-f)*x1+f*x2 for x1, x2 in zip(m1.xyz(), m2.xyz()))
14 m = mset.place_marker(xyz, link.rgba(), m1.radius())
15 Link(mprev, m, link.rgba(), link.radius())
16 mprev = m
17 Link(mprev, m2, link.rgba(), link.radius())
18 link.delete()
19
20n = int(arguments[0])
21from VolumePath import markerset
22links = markerset.selected_links()
23divide_links(links, n)