How can I place multiple objects on a curve?

Asked by user

Hi. Inkscape can place texture on a path and it has LPE that do similar thing. It also can place objects on path as markers.

But what if I have many different objects (say, circle, box and triangle)? Can they be placed on a path simultaneously?

And what if I want to put much more different objects on a path? 100... 1000 ... billioN!!

Can Inkscape do this?

Thanks.

Question information

Language:
English Edit question
Status:
Solved
For:
Inkscape Edit question
Assignee:
No assignee Edit question
Solved by:
user
Solved:
Last query:
Last reply:
Revision history for this message
Guillermo Espertino (Gez) (gespertino-gmail) said :
#1

As far as I know it's not possible. You can use markers, but it's not exactly the same you need.
Text can be placed on curves and every character is rotated following the curve, but there isn't at the moment something that can do that with individual objects without deforming them (curve and envelope distort LPEs deform the shapes)

Revision history for this message
user (me-at-mail) said :
#2

Thank you for your answer, Guillermo. It's very noticeable.

Revision history for this message
RIco (rico-rootscore-deactivatedaccount) said :
#3

actually.. you can eventually fake it..
1. put your objects inline with the desired space between them using "Align and Distribute (Shift+Ctrl+A)
2. make sure they are all paths (Path menu>Object to path Shift+Ctrl+C)
3. select all your objects and Path menu>Union (Ctrl++) or Path menu>Combine (Ctrl+K)
4. Path Effect Editor > Pattern Along Path

you will eventually get something close to the effect you want, but as Gez said some shapes might be a bit deformed depending on your path.

Revision history for this message
user (me-at-mail) said :
#4

Thank you, Rico.

It is very useful. Especially when you break paths back (Ctrl+Shift+K) after this... And if you want to save fills of objects you can duplicate objects before combining them... so that after "pattern along path" you can copy-paste fills from duplicates. Unfortunately this can be done in years with billion of objects... oh... computers are very slow ;)

Revision history for this message
user (me-at-mail) said :
#5

Yesterday I have wrote extension for Inkscape which can place multiple objects on a path...

This have been done with it:
     http://www.hotlinkfiles.com/files/2457601_2juat/objonpath.png

If someone is interested in extension I can send it to him.

Revision history for this message
Guillermo Espertino (Gez) (gespertino-gmail) said :
#6

Hey, good work!
Good news: Alexandre Prokoudine proposed your extension to be added in the default inkscape installation.
If nobody objects, it is possible that your extension makes it for 0.47!

Revision history for this message
user (me-at-mail) said :
#7

Wow, cool! :)

But for now it has some problems.... I think that it is not my fault and I believe that we can solve them ;)

Thanks, Guillermo.

New picture of the day: http://www.hotlinkfiles.com/files/2460592_0pfdx/abs.png

Revision history for this message
DeepSpin (david-spathaky) said :
#8

I would love to have a copy of that extension. Just what I am looking for. I will try and find you....

Revision history for this message
user (me-at-mail) said :
#9

DeepSpin, you can view a topic about the extension on a Russian forum (http://linuxgraphics.ru/forum/viewthread.php?thread_id=545)
or you can just download the extension from http://www.hotlinkfiles.com/files/2460676_imfzd/placeonpath.ink_025717.7z

You should copy three files in archive to "...inkscape/share/extensions/".

Thanks you.

Revision history for this message
DeepSpin (david-spathaky) said :
#10

Thanks very much. I'm afraid i don't read Russian. Sorry.

I'm having trouble making it work. I get this error.

raceback (most recent call last):
  File "/home/dave/.inkscape/extensions/placeonpath.py", line 2, in <module>
    import inkex, simpletransformed, pathmodifier, cubicsuperpath, bezmisc, math
ImportError: No module named inkex

Do you have any ideas?

Revision history for this message
user (me-at-mail) said :
#11

Sorry for this. Try to put it into "/usr/share/inkscape/extensions/" folder.

Revision history for this message
DeepSpin (david-spathaky) said :
#12

Perfect. Thank you so much for taking the time.

All the best ~ Dave

Revision history for this message
user (me-at-mail) said :
#13

You are welcome!

Revision history for this message
cighir.victor (cighir-victor) said :
#14

Hello Dave or User!

I find your extension very appealing for me. I have written an extension that duplicates boxes and groups them with a corresponding number. I need to digitize a map. Anyway, scarse documentation left me spending a lot of time for a simple task, and now I have found that I would need something like your extension.

The link you have posted is outdated...http://www.hotlinkfiles.com/files/2460676_imfzd/placeonpath.ink_025717.7z

Could you please upload the file again ? Or if anybody else has this file, please upload it so that other users can enjoy as well

Thank you!

Revision history for this message
user (me-at-mail) said :
#15

Seems that hotlinkfiles have changed all of their link addresses. Unfortunately.

This link can help you: http://www.hotlinkfiles.com/files/2338101_wqe6m/placeonpath.ink_025717.7z

You are welcome!

Revision history for this message
cighir.victor (cighir-victor) said :
#16

Hello again. I modified your script a little. Everything that I changed is found both in the code and at the beginning of placeonpath.py as comment.

Please check out the zip file here and please delete it after downloading and using.

1. Download Link:
http://rapidshare.com/files/282107488/placeonpath-modified.7z.html
MD5: E555F6E0D3B9D29BE846AA880FBDB239

1. Delete Link:
http://rapidshare.com/files/282107488/placeonpath-modified.7z.html?killcode=17639132483588266037

Revision history for this message
user (me-at-mail) said :
#17

Hello, Victor.

I have downloaded and deleted the script.

I have no time to check it, but I believe that your modifications are useful. Thanks. I will see them later.

Revision history for this message
cighir.victor (cighir-victor) said :
#18

Hope other will help. As you said in your code : feedback!

Everybody, join the projects you find useful and help, if you don't know to code, try testing. :D Sometimes it's fun to push a program to it's limit.

1. changed your script, so now it can be installed in the user's home folder
2. added gplv2 header to your file
3. removed useless code

Tested your script with 2 straight lines at 90 degree angle. Works.

Have a great day!

Revision history for this message
Oleg Koptev (koptev-oleg) said :
#19

great effort, but guys..

host it somewhere permanently, for easy obtaining of the code.
I tell nor about me - I have a copy, but for someone else interested, since the script can be useful for many ppl.

@user - the link at your blog also dead (http://pozitiv.org.ru/2009/04/place-objects-on-path-in-inkscape.html)

Cheers, Oleg

Revision history for this message
user (me-at-mail) said :
#20

Thanks, Oleg.

Extension can be obtained from http://sites.google.com/site/placeonpath/

Two bugs fixed :)

Revision history for this message
Oleg Koptev (koptev-oleg) said :
#21

Great!

I add that site onto Inkscape wiki page about extensions. I think you won't
resist? :)

http://bit.ly/20ZOwp

best wishes!

Revision history for this message
user (me-at-mail) said :
#22

Sure, thanks! :)

Revision history for this message
su_v (suv-lp) said :
#23

@(user, Victor and Oleg) - many thanks to all of you for this extension and making it available again!
(<http://wiki.inkscape.org/wiki/index.php/Extension_repository>)

~suv