• This forum is the machine-generated translation of www.cad3d.it/forum1 - the Italian design community. Several terms are not translated correctly.

make visible the t-mesh of a given surface t-spline

  • Thread starter Thread starter afullo
  • Start date Start date

afullo

Guest
Hello, everyone.

I am doing the master thesis in mathematics on t-spline, and as an application part I showed some uses of this recent tool in rhino. But what seemed to me to understand the software is that it allows to work with them, but it leaves a bit the mathematical aspect of the matter, focusing more than anything on the practical one, useful for those with the program must realize something concrete. in particular, to optimally connect the theory with the application, I would like to make visible or however to have information on the t-mesh of a given t-spline surface, with the set of nodes intended as pairs of parameters (http://wwwlb.aub.edu.lb/~anasri/tspline.pdf) as well as that of the control points already visible from the standard display. that you know you can do? I own rhino 4, but in case, if available, I could safely download a version of evaluation of the 5 (for the use that I carry out I do not need a commercial version, I just need proof).

thanks in advance and greetings.

fabio
 
in particular, to optimally connect the theory with the application, I would like to make visible or however to have information on the t-mesh of a given t-spline surface, with the set of nodes intended as pairs of parameters (http://wwwlb.aub.edu.lb/~anasri/tspline.pdf) as well as that of the control points already visible from the standard display. that you know you can do?
hello fabio, and congratulations on the subject of your thesis.
Unfortunately rhino (but more generally the other cad) does not provide the possibility to read the properties of geometric entities as explicit information. If you generate a simple radius 1 ball and go to the properties (f3), on its geometry, you will find this little information:
closed surface
nurbs surface (rational)
"u": closed degree = 2 cv count = 9 (1 duplicates) (0 <= u <= 30.6147)
"v": open degree = 2 cv count = 5 (0 <= v <= 15.3073)
a possibility could be to export the file to an interpretable format, i.e. it needs its specification to be accessible == documentation freely available on the network.

For example exporting the same sphere in step format I read the information about its geometry from field 97 (advanced_brep_shape_representation) up to field 178.

here part of camp 114:
b_spline_surface(2,2,((#150,#151,#152,#153,#154),(#155,#156,#157,#158,#159),
(#160,#161,#162,#163,#164),(#165,#166,#167,#168,#169),(#170,#171,#172,#173,
#174)),.unspecified.,.f.,.f.,.f.)
b_spline_surface_with_knots((3,2,3),(3,2,3),(3.06146745892072,4.59220118838108,
6.12293491784144),(0.,1.53073372946036,3.06146745892072),.unspecified.)
geometric_representation_item()
rational_b_spline_surface(((1.,0.707106781186548,1.,0.707106781186548,1.),
(0.707106781186547,0.5,0.707106781186547,0.5,0.707106781186547),(1.,0.707106781186548,
1.,0.707106781186548,1.),(0.707106781186547,0.5,0.707106781186547,0.5,0.707106781186547),
(1.,0.707106781186548,1.,0.707106781186548,1.)))
the numbers preceded by the character '#' are the references to other fields, for example the string #150 is a reference to the field 150 that is written so:
#150=cardsian_point('',(0.,0.,1.));I don't know though if the step file format is implemented to support t-splines.

another possibility could be the 3dm file format, or the rhino native; you find it specified at www.opennurbs.org. the problem is that the format is in binary code, even reading it through a hexadecimal editor would be ostic, but if you have time to compile a simple program you can extrapolate the fields of interest on a text file.
 
Hello Paul, thank you for your help.

I apologize if I didn't answer earlier, but yesterday I was gone all day, and today until now I worked on another portion of the thesis.

I tried to generate a cube in nurbs and a ballquad in t-spline, going on properties and then on details the information obtained were respectively the following, that they do not even provide that information on the parameters you wrote to me, but they merely give identifiers with which probably the compact software in a biunivocal writing to them all the information they need to constitute the surface. I searched for other property voices, but I didn't find anything. Should I go somewhere else? Where?
Code:
polysurface
Id: 69172f6e-9095-4f0c-a386-58708caed539 (4)
level name: default
rendering material:
source = from level
index = -1
user data for attribute:
id user data:b0ee2168-8ec6-42ed-a962-26deb8cc8f9a
plug-in: rhino rendering
description: rhino renderable object userdata
saved in the file: No.
copy calculation: 11
geometry:
Valid polysurfaces.
solid polysurfaces closed with 6 surfaces.
edge details:
12 borders manifold
edge tolerances: all 0.00
vertebrax tolerances: all 0.00
rendering mesh: not present
mesh analysis: Not present
Code:
surface t-spline
id: 8fcf6e25-09a8-40a-ad89-98703bd79064 (3)
level name: default
rendering material:
source = from level
index = -1
user data for attribute:
id user data:b0ee2168-8ec6-42ed-a962-26deb8cc8f9a
plug-in: rhino rendering
description: rhino renderable object userdata
saved in the file: No.
copy calculation: 1
geometry:
Valid polysurfaces.
solid polysurfaces closed with 6 surfaces.
edge details:
12 borders manifold
edge tolerances: all 0.01
vertebrax tolerances: all 0.01
rendering mesh: not present
mesh analysis: Not present
user data for geometry:
id user data:10d2cff0-8191-4cc7-afdf-d8faf16e2120
plug-in: t-splines
description: t-mesh userdata
saved in the file: Yes
copy calculation: 1
now I try to export in step and see what I can do.. .
 
I do a double post since the previous has already been long enough, I exported the ballquad in step.

in short the output was similar to your, in the case (where jumping fields is because they are similar to the previous ones, only with references to different elements):
preambolo:
Code:
iso-10303-21;
header;
/* generated by software containing st-developer
 * from step tools, inc. (www.steptools.com) 
 */
/* option: using custom schema-name function */

file_description(
/* description */ (''),
/* implementation_level */ '2;1');

file_name(
/* name */ 'rhino_sferaquad',
/* time_stamp */ '2012-03-18t23:09:46+01:00',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'st-developer v10',
/* originating_system */ '',
/* authorisation */ '');

file_schema (('config_control_design'));
endsec;

data;
from #10 to #75 are defined faces, sides, and vertices, with reference to
b-spline defined in subsequent fields, surfaces (#76-#81) and curves (#82-#93)

Code:
#10=shape_representation_relationship('','',#180,#12);
#11=manifold_solid_brep('brep_1',#13);
#12=advanced_brep_shape_representation($,(#11,#182),#179);
#13=closed_shell($,(#14,#15,#16,#17,#18,#19));
#14=advanced_face($,(#20),#76,.t.);
#20=face_outer_bound($,#26,.t.);
#26=edge_loop($,(#32,#33,#34,#35));
#32=oriented_edge($,*,*,#56,.t.);
#56=edge_curve($,#68,#69,#82,.t.);
#68=vertex_point($,#1838);
a surface. after the // my assumptions about the meaning of the various quantities.
Code:
#76=
bounded_surface()
b_spline_surface(3,(#488,#489,#490,#491,#492,#493,#494,#495,#496,#497, // 3 and 3 are the bivariate degrees
#498,#499,#500,#501,#502),(#503,#504,#505,#506,#507,#508,#509,#510,#511, // # indicates control points
#512,#513,#514,#515,#516,#517),(#518,#519,#520,#521,#522,#523,#524,#525, // grouped according to their
#526,#527,#528,#529,#530,#531,#532),(#533,#534,#535,#536,#537,#538,#539, // rectangular topology (15 x 15)
#540,#541,#543,#544,#545,#546,#547),(#548,#549,#550,#551,#552,#553,
#554,#555,#556,#557,#558,#559,#560,#561,#562),(#563,#564,#565,#566,#567,
#568,#569,#570,#571,#572,#573,#574,#575,#576,#577),(#578,#579,#580,#581,
#582,#583,#584,#585,#586,#587,#588,#589,#590,#591,#592),(#593,#594,#595,
#596,#597,#598,#599,#600,#601,#602,#603,#604,#605,#606,#607),(#608,#609,
#610,#611,#612,#613,#614,#615,#616,#617,#618,#619,#620,#621,#622),(#623,
#624,#625,#626,#627,#628,#629,#630,#631,#632,#633,#634,#635,#636,#637),(#638,
#639,#640,#641,#643,#644,#645,#646,#647,#648,#649,#650,#651,#652),(#653,
#654,#655,#656,#657,#658,#659,#660,#661,#662,#663,#664,#665,#666,#667),(#668,
#669,#670,#671,#672,#673,#674,#675,#676,#677,#678,#679,#680,#681,#682),(#683,
#684,#685,#686,#687,#688,#689,#690,#691,#692,#693,#694,#695,#696,#697),(#698,
#699,#700,#701,#702,#703,#704,#705,#706,#707,#708,#709,#710,#711,#712)
.unspecified.
b_spline_surface_with_knots(4,2,1,1,1,2,2,4),(4,2,1,1,1,2,2,4),(0., // nodes: multiplied, values
0.125,0.25,0.5,1.,1.5,1.75,1.875,2.),(0.,0.125,0.25,0.5,1.,1.5,1.75,1.875, // (molt u, molt v, vett u, vett vett v)
2.),.unspecified.)
geometric_representation_item()
rational_b_spline_surface((0.99999999999999997,0.9999999999999999998,1.00437705575538, // weights, referred to #
1.00841741491422,1.00808071831766,0.99999999999999996,1,0.999999999999999999999999999,
1.,0.9999999999999,1.00808071831764,1.00841741491421,1.00437705575539,
0.999999999999997,0.9999999999999999997),(0.99999999999999997,0.998540981414867,
1.00356264396289,1.00862409621542,1.00815637154096,1.,1.,0.99999999999999999,
1.1.00800506509431,1.00851001947661,1.00354539529799,0.998540981414868,
0.999999999999997),(1.00437705575539,1.00354539529798,1.0048159344842,1.00766503350888,
1.00684022216753,1.,0.999999999999999999,1.,1.,1.00654234156365,1.00749005056741,1.
1,048159344842,1.00356264396289,1.00437705575539),(1.00841741491421,1.00851001947661,
1.00749005056741,1.0095151017094,1.00918496219804,1,1,1,1,1,1,1,1.0090326466879,
10095151017094,1.00766503350888,1.00862409621542,1.00841741491421),(1.00808071831764,
1.00800506509431,1.00654234156365,1.0090326466879,1.00874717262042,1.,1. ,
0.99999999999999999,1.,1.00874717262042,1.0091849621980,1.00684022216754,
1.00815637154096,1.00808071831764),(0.999999999999997,0.9999999999999999998,
1.,1.,1.,1.,1.,1.,1.,0.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 ,
1.1.1.,1.,1.,1.,0.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
1.,1.,1.,1.),(0.999999999999999999999999999999999999999999997,0.9999999999999999999999998,1. ,
1.,0.999999999999996,0.99999999999999989,1.00000000000005,1.,1.,0.999999999999999999998,
1.,0.99999999999999997.1.,1.,1.,1.,1.,1.,0.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999.1.,1.,1.
1.,1.,1.,1.,1.,1.,1.,1.,1.,0.9999999999999999999999998,1.,1.
1.1.1.1.,1.,1.,1.00808071831764,1.00815637154096,1.00684022216754,1.00918496219804,
1.00874717262042,1.,0.99999999999999997,1.,1.,1.00874717262042,1.0090326466879,1.
1.00654234156365,1.00800506509431,1.008071831765),(1.00841741491421,1.00862409621542,
1.00766503350888,1.0095151017094,1.0090326466879,1,1,0.9999999999999999998,
1.,1,1.0091849621980,1.0095151017094,1.007490056741,1.0085100194766,
1.00841741491422),(1.00437705575539,1.00356264396289,1.0048159344842,1.00749005056741,
1.00654234156365,1.,1.,1.,1.,1.00684022216754,1.00766503350888,1.0048159344842,
1.003545395298,1.00437705575539),(0.999999999999997,0.998540981414865,1.00354539529798,0.99999999999999999999999,0.998540981414865,1.00354539529798
1.00851001947662,1.00800506509431,0.99999999999999998,1,0.99999999999999999999996
1.1.00815637154096,1.00862409621542,1.00356264396289,0.998540981414865,
0.99999999999999998),(0.999999999999997,0.999999999999998,1.00437705575538,
1.00841741491422,1.00808071831766,0.99999999999999996,1,0.999999999999999999999999999,
1.,0.9999999999999,1.00808071831764,1.00841741491421,1.00437705575539,
0.99999999999999997,0.9999999999999999999999999)
representation_item($)
surface()
);
A curve. after the // my assumptions about the meaning of the various quantities.
Code:
#82=(
bounded_curve()
b_spline_curve(3,(#188,#189,#190,#191,#192,#193,#194,#195,#196,#197,#198, // isocurva: (grado,(punti),?)
#199,#200,#201,#202,#203,#204,#205,#206,#207,#208,#209,#210,#211,#212),.unspecified., 
.f.,.f.)
b_spline_curve_with_knots((4,3,3,3,3,3,3,3,4),(0.,0.125,0.25,0.5,1.,1.5, // nodi: ((molteplicita,valori),?)
1.75,1.875,2.),.unspecified.)
curve()
geometric_representation_item()
rational_b_spline_curve((1.,0.999999999999999,1.00437705575539,1.0063972353348,
1.00841741491421,1.00808071831764,1.00538714554509,0.999999999999997,0.999999999999998,
0.999999999999999,1.,1.,1.,0.999999999999999,1.,1.,1.,0.999999999999999,
1.00538714554509,1.00808071831764,1.00841741491421,1.0063972353348,1.00437705575539,
0.999999999999998,1.))
representation_item($)
);
from #94 to #186 are all technical fields related to software; from #187 to #1846 are all control points. Can it be as I suppose?

I wonder only if he actually exported the t-spline or exported its conversion to nurbs polysurfaces. I should try to convert it into polysurfaces and export it as such to check whether output is different or coincides, but unfortunately with only 25 saves available (place the evaluation version of the plugin) it touches me razionare. . .
 
from #94 to #186 are all technical fields related to software; from #187 to #1846 are all control points. Can it be as I suppose?
I think so, I should take a look at the whole file but the first fields are related to the file information, then follow those on the model geometry. between the Cartesian points you have to see which points of control are and which are knots. in the specification of the step format are surely certain references.
I wonder only if he actually exported the t-spline or exported its conversion to nurbs polysurfaces. I should try to convert it into polysurfaces and export it as such to check whether output is different or coincides, but unfortunately with only 25 saves available (place the evaluation version of the plugin) it touches me razionare. . .
or import what you saved and see if the model you load coincides with the t-spline you exported or if it was converted to nurbs. In fact, with the 25 demo saves you will make all your export experiences. Now unfortunately I must run from a customer.. .
 
or import what you saved and see if the model you load coincides with the t-spline you exported or if it was converted to nurbs
I tried how I told you and unfortunately the result is the same, so it does first conversion to nurbs. It wasn't a wasted attempt because I'd still devote a page, but I'd rather study the properties like t-spline rather than those like nurbs.

now I have tried to convert to other formats and to open them with gedit (the note block of ubuntu, work on rhino under windows from the laptop and pass the files through dropbox here on the desktop under ubuntu), but in different or the generated file is binary, or even if it is ascii is lost the structure of spline (for example converting to mesh polygonal) or you get a similar output to the previous one where the structure is not a format that seemed to me explicitly tied to t-spline is the .tsm, so I asked for help qui, if you know anything about his interpretation. . :smile:
 
a format that seemed to me explicitly tied to t-spline is the .tsm, so I asked for help qui, if you know anything about his interpretation. . :smile:
Unfortunately I do not know the .tsm format, from a fast search I have seen that they speak qui, perhaps you can shed some light on the notation, but it is not what you would say a reference document.
 
Unfortunately I do not know the .tsm format, from a fast search I have seen that they speak qui, perhaps you can shed some light on the notation, but it is not what you would say a reference document.
after my request they published the specifications for good, I would have hoped to see more things (such as the knots of the t-mesh with its nodal coordinates) but nevertheless I am satisfied. :finger:

I've finished the thesis, 11 am presenting it, thank you again for your availability. :smile:
 

Forum statistics

Threads
44,997
Messages
339,767
Members
4
Latest member
ibt

Members online

No members online now.
Back
Top