TSX idea, Template drawing

About Truespace Archives

These pages are a copy of the official truespace forums prior to their removal somewhere around 2011.

They are retained here for archive purposes only.

TSX idea, Template drawing // Feature suggestions

1  |  

Post by toqer // Nov 17, 2006, 9:56am

toqer
Total Posts: 4
Been using truespace for years, excellent product :)


I had to draw a diagram the other day using Visio. It got me to thinking how cool it would be if TS had a TSX that could simulate lines in Visio. Pick the tool, click two objects and a line is automatically drawn between the objects.


Then whenever one of the objects is moved around, all lines connected to it are automatically deformed, moved around so they stay connected to the object.


--toq

Post by hemulin // Nov 17, 2006, 10:25am

hemulin
Total Posts: 1058
pic
I have a feeling you will be able to do this in tS7 through the LE. I presume all you would have to do would be to have the co-ordinates of the face of the line (better still, the point on a face) rigged up to the co-ordinates of the object.
It would be more complicated if you wanted a curved line, though you should be able to do line with a 90* bend in it.
Of course I may be talking rubbish :rolleyes:, anybody else want to confirm or deny this? ;)

Post by splinters // Nov 17, 2006, 10:54am

splinters
Total Posts: 4148
pic
You're talking rubbish.


You might be right, what do I know...but I know for a fact-you talk rubbish....;)


EDIT: This is simply the result of spending too much time with Hemulin, too much vodkas, and a strange sense of humour...

Post by Asem // Nov 17, 2006, 11:05am

Asem
Total Posts: 255
It's possible and just on the top of my head probably will be tough (technically because of my attention span :o). I can think of two ways of doing it and hemulin's idea could work even though its more involved and one of the ways would need scripting (connections between objects) and widgets(visual and activity).

Post by Asem // Nov 17, 2006, 12:45pm

Asem
Total Posts: 255
It should be the difference of the two objects which decreases or increses depending on the position of the object. move the object left it decreases; move the object right it(the line) increases but this is assuming screen coordinates and an specified object that looks like a line based on the position of the objects which (I'm pretty sure think) would be the objects center axes at least on the player side. The math library seems only for hlsl stuff it should be basic math anyway.

Post by toqer // Nov 17, 2006, 2:28pm

toqer
Total Posts: 4
It gets a bit trickier than just connecting lines and making sure they stay connected..


You also have to do your best to reduce line crossings.

Post by Alien // Nov 17, 2006, 3:09pm

Alien
Total Posts: 1231
pic
I think something along the lines of what's been suggested could be useful, but for more than just a Visio-replacement. It could be used for things like recreating a circuit board in 3D.

Post by hemulin // Nov 17, 2006, 11:58pm

hemulin
Total Posts: 1058
pic
Being the only one in this thread that is actually sober ;).......I will try to say something sensible :rolleyes:. If object A moves to the other side of oject B the line should automatically connect to the opposite side of the object. Instead automaticall having lines avoid each other; a point could be made on the line that can be dragged.
Though i still stand by my original statement that splinters so thoughtfully backup up :cool:.....I may be talking rubbish......

Post by toqer // Nov 18, 2006, 12:55am

toqer
Total Posts: 4
Being the only one in this thread that is actually sober ;).....


Heh I just got off work (http://205.188.215.229:8014/listen.pls) (winamp link, seen it in your sig :D ) After a hard night of slinging karaoke songs to hordes of drunk people, i'm enjoying a little puff puff.


Ok this is the "Aw man" part. I can't code/script to save my life, but maybe someone with the skills will do it seeing there's interest.


My reason for wanting a plugin like this was to document our audio setup at my work. Sometimes when i'm not doing karaoke, I fix networks. It'd be nice for 3D network diagrams too. Maybe it's something caligari would want to add as a feature.


--toq

Post by hemulin // Nov 18, 2006, 5:44am

hemulin
Total Posts: 1058
pic
Heh I just got off work (http://205.188.215.229:8014/listen.pls) (winamp link, seen it in your sig :D ) After a hard night of slinging karaoke songs to hordes of drunk people, i'm enjoying a little puff puff.


That's an interesting line of work ;):D

So anyway, as it appears that in this forum being drunk is good (or is required :p). I will now fade away into oblivion. :rolleyes:

Post by Alien // Nov 18, 2006, 6:12am

Alien
Total Posts: 1231
pic
...oh yes,digging deeper into the details, thats it, maybe the Stream Pipe described on page 807 of the Artist guide could be used in reference some how. So "wires" are something lke a synonym wide spread usable: wires for bits and the information they represent..., tubes for subways, waterpipes and so on..., or streets for pedestrians, cars ..., or intergalactic hyperspace tubes conecting the galaxies.
I didn't mean in the sense of actually simulating circuit functionality, though I suppose that could be another possibility. I was actually thinking of just creating visualisations of circuit boards. In my case, I'm considering making my own heatsink for an old graphics card [just for the fun of it :D], & was originally just going to model the main "landmarks" of the board, chips, capacitors, etc - things that would have to be taken into consideration when designing the heatsink. However, given that it's layout is fairly simple [at least compared to modern cards - it's a Voodoo 3 2000 PCI], I thought I'd see if I could reproduce all the detail of it. The way this links in with the topic under discussion is at present I'm thinking I'd have to do each circuit track manually, with a referance image underneath, & repeatedly doing a sweep, change angle, sweep again process. However, if there was some way to connect points/objects, as in Visio, with options to govern how the line/path/extrusion went around & snapped to objects, that would make it much easier.

Being the only one in this thread that is actually sober ;).......
It's only Emma, Toqer, & Splinters that have been PUI [Posting Under the Influence] in this thread. :)

I will try to say something sensible :rolleyes:. If object A moves to the other side of oject B the line should automatically connect to the opposite side of the object. Instead automaticall having lines avoid each other; a point could be made on the line that can be dragged.
I'm not against your suggestion, if anyone could think of a use for it, but I think numerous people could find uses for the originally described concept of wires/lines/whatever going around objects &/or keeping a set [by user] distance from other lines & objects.

Post by hemulin // Nov 18, 2006, 11:15am

hemulin
Total Posts: 1058
pic
I didn't mean in the sense of actually simulating circuit functionality, though I suppose that could be another possibility. I was actually thinking of just creating visualisations of circuit boards. In my case, I'm considering making my own heatsink for an old graphics card [just for the fun of it :D], & was originally just going to model the main "landmarks" of the board, chips, capacitors, etc - things that would have to be taken into consideration when designing the heatsink. However, given that it's layout is fairly simple [at least compared to modern cards - it's a Voodoo 3 2000 PCI], I thought I'd see if I could reproduce all the detail of it. The way this links in with the topic under discussion is at present I'm thinking I'd have to do each circuit track manually, with a referance image underneath, & repeatedly doing a sweep, change angle, sweep again process. However, if there was some way to connect points/objects, as in Visio, with options to govern how the line/path/extrusion went around & snapped to objects, that would make it much easier.I know what you mean, but surely it would be a heck of a lot easier if you were to use nurbs curves.


It's only Emma, Toqer, & Splinters that have been PUI [Posting Under the Influence] in this thread. :)Sorry Alien, I forgot.....you being an alien and all......interolerance to alcohol......:D.....(joke)


I'm not against your suggestion, if anyone could think of a use for it, but I think numerous people could find uses for the originally described concept of wires/lines/whatever going around objects &/or keeping a set [by user] distance from other lines & objects.
I am not saying my sugestion is the way to go by, and i am not saying that it is possible either.....i just spewed out what happened to be on my mind when the question was asked........
I personally don't think this sugesstion has much weight/cause, but i may be wrong. Please someone prove me wrong..........there may be someone out there that actually has free time to make a tS extension that does this....i don't know....but i do know that it's not going to be me.;)

Post by Alien // Nov 18, 2006, 2:56pm

Alien
Total Posts: 1231
pic
I know what you mean, but surely it would be a heck of a lot easier if you were to use nurbs curves.

I think I know how you mean, & perhaps for designing something from scratch, e.g. a fictional circuit board, then yes, but if I want my modelled tracks to follow the same paths as the original 1s I think the sweep, change angle, sweep method would be better.


With NURBS, I'd have to do the curve along the middle of the circuit track, and make sure it was along the exact middle, which it probably wouldn't be, so I'd have to go back & spend ages fiddling with stuff after I'd lofted it, plus whilst I like the idea of NURBS, I'm not sure I really want to mess with them when I already know how to do it with polys.


Whereas with the repeated sweeping method, if the cross section of the modelled track was the same width as the the 1 on the referance image underneath I could just drag each new end-face to the next corner/bend, then sweep & drag the new end face to the next corner. :)


Sorry Alien, I forgot.....you being an alien and all......interolerance to alcohol......:D.....(joke)

LOL, no - I do partake occasionally - as long as it's Harvey's Bristol Cream, I just don't enjoy getting absolutely rat-arsed. :)


I am not saying my sugestion is the way to go by, and i am not saying that it is possible either.....i just spewed out what happened to be on my mind when the question was asked........

I personally don't think this sugesstion has much weight/cause, but i may be wrong. Please someone prove me wrong..........there may be someone out there that actually has free time to make a tS extension that does this....i don't know....but i do know that it's not going to be me.;)I'm sure someone like Délé, Stan, or trueBlue will probably rustle something up eventually. :D

Post by 3dpdk // Nov 18, 2006, 11:57pm

3dpdk
Total Posts: 212
pic
Am I the ONLY tS-er, still stuck in the 6.6s, that has absolutly NO IDEA what anyone is talking about here?
??????????????:confused:???????????????????

Post by hemulin // Nov 19, 2006, 5:33am

hemulin
Total Posts: 1058
pic
Am I the ONLY tS-er, still stuck in the 6.6s, that has absolutly NO IDEA what anyone is talking about here?
??????????????:confused:???????????????????

Sorry, mate, I suppose this thread has moved into the realm of tS7, though a plugin could still be made to work in 6.6 and below (in theory)

Post by hemulin // Nov 19, 2006, 5:35am

hemulin
Total Posts: 1058
pic
I think I know how you mean, & perhaps for designing something from scratch, e.g. a fictional circuit board, then yes, but if I want my modelled tracks to follow the same paths as the original 1s I think the sweep, change angle, sweep method would be better.

With NURBS, I'd have to do the curve along the middle of the circuit track, and make sure it was along the exact middle, which it probably wouldn't be, so I'd have to go back & spend ages fiddling with stuff after I'd lofted it, plus whilst I like the idea of NURBS, I'm not sure I really want to mess with them when I already know how to do it with polys.

Whereas with the repeated sweeping method, if the cross section of the modelled track was the same width as the the 1 on the referance image underneath I could just drag each new end-face to the next corner/bend, then sweep & drag the new end face to the next corner. :)


I don't think you understand what i mean (or maybe vice-versa)....anyway, i'll post a screenshot later of what i mean.....i would have thought this would take about a 1/10th of the time it would take to sweep it all.

Post by Délé // Nov 27, 2006, 9:45am

Délé
Total Posts: 1374
pic
I'm not sure if I'm understanding this right or not. You want to quickly create a line between two objects? If that is the case, here is a possible solution. I made a simple little script called "MakeLine".

All you do is link the world matrix from the two objects you want the line to be between into the MatrixA and MatrixB inputs on the script. Then you can adjust the line thickness with the scrubber and the color by double clicking the color box. This will just create one line between two objects. So if you want multiple lines you will have to use multiple instances of the script.

Below is a scene file that demonstrates how to use the script. You can save the script to your objects library from the scene below for later use.

hth

3142

3143

Post by hemulin // Nov 27, 2006, 10:18am

hemulin
Total Posts: 1058
pic
I'm not sure if I'm understanding this right or not. You want to quickly create a line between two objects? If that is the case, here is a possible solution. I made a simple little script called "MakeLine".

All you do is link the world matrix from the two objects you want the line to be between into the MatrixA and MatrixB inputs on the script. Then you can adjust the line thickness with the scrubber and the color by double clicking the color box. This will just create one line between two objects. So if you want multiple lines you will have to use multiple instances of the script.

Below is a scene file that demonstrates how to use the script. You can save the script to your objects library from the scene below for later use.

hth

3142

3143

Nice work there Délé. I think this is basically what we were discussing. We did dwindle into having lines that auomaticaly avoid crossing each other and bend in the correct places but I think that was just talk ;).

Post by Délé // Nov 27, 2006, 9:13pm

Délé
Total Posts: 1374
pic
Ah, I did understand. I was pretty tired when I read this and posted the script. :)


Unfortunately it looks like this will only render with the Realtime d3d and Vray though. It won't render with Lightworks or Virtualight. This has to do with the encapsulation used. Apparently it can't transfer across the bridge. I tried to find a way to get it to render with Lightworks but haven't found a solution as of yet. It's unfortunate that a simple encapsulation like this can't cross the bridge. :( I guess for most diagram images, a Realtime render would suffice though. Of course, if you happen to have Vray, a high quality render is possible too.


I made a little extension on the script. I noticed that somebody mentioned being able to set the lines a certain distance from the objects. So here I've added a scrubber that allows you to scale the line length from 0 to 100%. This way you should be able to make lines that don't actually touch or protrude into the models.


Again, the script is in the scene file below. :)


3149


3150

Post by Alien // Nov 29, 2006, 1:46am

Alien
Total Posts: 1231
pic
I'm not sure if I'm understanding this right or not. You want to quickly create a line between two objects? If that is the case, here is a possible solution. I made a simple little script called "MakeLine".

All you do is link the world matrix from the two objects you want the line to be between into the MatrixA and MatrixB inputs on the script. Then you can adjust the line thickness with the scrubber and the color by double clicking the color box. This will just create one line between two objects. So if you want multiple lines you will have to use multiple instances of the script.

Below is a scene file that demonstrates how to use the script. You can save the script to your objects library from the scene below for later use.

hth

3142

3143
I can't speak for anyone else, but that wasn't quite what I was trying to describe, though I appreciate your efforts. I was thinking more along the lines of a 3D version of the Link Editor, at least appearance-wise, with the lines connecting to objects like the linky bits do in the LE [but to a face, vert, or edge instead of a property].

Nice work there Délé. I think this is basically what we were discussing. We did dwindle into having lines that auomaticaly avoid crossing each other and bend in the correct places but I think that was just talk ;).
It is nice work, however [at least for my part] I was serious about the lines needing to avoid each other & objects they're not connecting to.

http://homepage.ntlworld.com/alien42/images_for_caligari_forum/Image7c-sample.png
[used my mum's scanner (mine's on the fritz) to scan the PCB]

Ah, I did understand. I was pretty tired when I read this and posted the script. :)

Unfortunately it looks like this will only render with the Realtime d3d and Vray though. It won't render with Lightworks or Virtualight. This has to do with the encapsulation used. Apparently it can't transfer across the bridge. I tried to find a way to get it to render with Lightworks but haven't found a solution as of yet. It's unfortunate that a simple encapsulation like this can't cross the bridge. :( I guess for most diagram images, a Realtime render would suffice though. Of course, if you happen to have Vray, a high quality render is possible too.
Toqer was the 1 wanting a diagram, I suggested the idea of broadening the concept to be used for [for example] modelling tracks on circuit boards [which would be rendered].

I made a little extension on the script. I noticed that somebody mentioned being able to set the lines a certain distance from the objects. So here I've added a scrubber that allows you to scale the line length from 0 to 100%. This way you should be able to make lines that don't actually touch or protrude into the models.
Ah, not exactly what I meant, see the image above. You see how the circuit tracks stay at least a minimum distance from each other & from objects they're not supposed to be connected to? That's what I meant. I'm beginning to think it might not be feasible to do it via script/LE, but at least it's doable manually. Thanks for trying. :)

Post by Délé // Nov 29, 2006, 3:30am

Délé
Total Posts: 1374
pic
Ah, I see. Yeah, I guess I had "diagram" in mind when I made the script. It is very basic. :)


A circuit board is a whole other ballpark. Collision avoidance of other lines and all objects in the scene. Trying to find the most logical path from one object to another. I'm sure something could be thought up, but due to the fact that there is pretty much an infinite number of paths a multi segmented line could take from pointA to pointB (especially in 3d), it seems that it wouldn't be very practical. Perhaps a more complex algorithm could give suggestions as to where a line should go, but I would think that the human element would have to come in somewhere. Even then it would be incredibly tricky to devise paths for drawn lines as things get moved around. Not entirely impossible to come up with something, but very tricky, and unlikely to be entirely automated.


I would think something like circuit boards would best be done by drawing out the paths by hand and sweeping them, or even extruding by hand.


Perhaps some tools could be devised to make the process a bit easier though.

Post by Alien // Dec 2, 2006, 10:42am

Alien
Total Posts: 1231
pic
A circuit board is a whole other ballpark. Collision avoidance of other lines and all objects in the scene.

Well, for starters [at least for what I envision], the collision avoidance would only have to be in 2 planes - sort of - anything above or below certain Z values could be ignored/exluded. Take the smaller chip on the right in my last post as an example. There's 6 tracks going under the body of the chip, most likely to connect to some of the chips legs, though also possibly to a connection point [not sure of technical term] that basically consists of 2 solder pads that surround either end of a hole that goes through the PCB, with the 2 solder pads connected through the hole by solder.


Actually saying that - I'm not 100% sure that that method is used for connecting circuits on either side of a PCB, but I think it is, & does seem a fairly logical way to do it.


Trying to find the most logical path from one object to another. I'm sure something could be thought up, but due to the fact that there is pretty much an infinite number of paths a multi segmented line could take from pointA to pointB (especially in 3d), it seems that it wouldn't be very practical.

Hmm... it's possible I may have caused a bit of misunderstanding. For starters, the track would always be flat, IOW if a cross section at 1 point had the bottom of the track object at Z=0, every other point on the track would also have it's bottom at Z=0.


What I'm trying to say is that whilst an algorithm might have to check for collision in 3D for any objects that had any part of them between [continuing the above example] Z=0 & Z+whatever [height of track plus user set variable], the actual routing of the track would only need to be in 2D. Does that make sense, or any difference?



collision wouldn't be needed & should be disabled for Snap mode [see below].



Perhaps a more complex algorithm could give suggestions as to where a line should go, but I would think that the human element would have to come in somewhere. Even then it would be incredibly tricky to devise paths for drawn lines as things get moved around. Not entirely impossible to come up with something, but very tricky, and unlikely to be entirely automated.

Yeah, I don't think fully automated is feasible either.


I would think something like circuit boards would best be done by drawing out the paths by hand and sweeping them, or even extruding by hand.

Yeah, extruding by hand was the original "manual" method I was considering.


Perhaps some tools could be devised to make the process a bit easier though.

Yeah, maybe to streamline the sweeping process, with maybe some sort of widget for the end face [with Z movement & X/Y rotation disabled] to make positioning each new track point easier.


Would probably need to have different modes or something:


Pick object to use as track section.

Put initial section in [approximate] place - would have a normal widget, but with all 3 axis enabled for movement, but only Z allowed for rotation.

Snap mode: pick a face, a widget is enabled, but with only X & Y enabled for movement, & again only Z for rotation. User would snap face to vert/edge/face of component/object.

Sweep mode - widget would switch to other end of object [with same restrictions as snap mode - X/Y movement & Z rotation only], maybe with some extra... thingy [button/blob/whatever] on the widget for sweeping [user could set default sweep amount in some sort of dialog perhaps]. User would use widget to position point 1 [if we think of the 1 snapped to an object in step 3 as point 0] at 1st track turning point, click the sweep button/blob, widget switches to new end-face & user uses widget to move end-face to next point, & so on...

Adjustment mode - user would be able to switch to this & select a cross section point [not an actual point/vert, but the whole ring of verts/edges] other than the 1st or last to adjust & would have the same widget as step 4, without the sweep button/blob.

Snap mode: user switches back to snap mode when near the object that the end [as in other end, not point 0] will join to & basically does same as step 3.



What do you think?

Post by toqer // Dec 19, 2006, 11:34pm

toqer
Total Posts: 4
Wow it's so nice to see this thread get so much attention! It's a great feeling when one of your first posts to a forum results in so many responses :)(Actually, I was on the old forum, but im glad to see caligari FINALLY got some good forum software)


So would everyone like to see this as a feature in the next version of TS? Maybe the wizards at caligari could figure out auto routing and anti line collision.


--toq
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn