Thanks for the comments.
I had read Mario’s threads some little time ago when I was considering how best to do the lettering on the O&K coach (described below on this forum) and I decided then not to use the procedure of plotting points, join lines, lofting, etc. In those cases where the photo image is more or less “square on” to the camera it is quicker and much simpler to simply draw over the letters with 3d primitives – cubes and cylinders. The minor variations on the photo plane can be simply ignored and accuracy checking can be done by looking for 3-point coincidences. The final result can be cloned/scaled. This works for all fonts I have tried so far. Others, such as italic fonts, may need to be shear mapped. Minor variations between your primitive on the screen and the background image will also be found when drawing/tracing over a digitised plan copied from a paper original. The paper may not have been held flat, copier lens distortion may be present, the paper may have been subject to differential stretch, etc.
As far as deriving an x,y,z view from a perspective view (photo or drawing) is concerned it’s worth noting that Chapman’s radial diagonals (utilising Simpson’s 1750 “Method of Fluxions”) seemed true but remained a conjecture until Kolmogorov’s 1930 proof (complexity function, hypercubes) – and his other 1930 paper on intuitionist logic which gives us the Brep fail report. Brep “true” reports are non-computable since the machine cannot know the purpose of our drawing.
I have looked over a number of different approaches to the problem of deriving x,y, z views from perspective drawings. It’s a fact that FreeCAD and other programs have no difficulty in giving us a perspective view of an x,y, z drawing. This is simply done to the whole screen by method of quaternions (Hamiltonians, 4d space), and calculating quaternion values. For manipulating individual objects in rotational space, if you want to avoid the “Transform” function, you need to find the geometric centre of the object. This can be found by using the “Slicer” function on each of the x, y and z axes to locate the geometric centre. The slicer axes can then be manipulated to correspond with the “perspective image” and the cylinder positioned over this image. The attached sketch shows a cylinder that started as diam 20 height 30 and then altered to diam 8 height 40. The positioning axes are aligned to the photo image centrelines. The lesson from this is that it’s far easier to manipulate the x, y, z slicer planes (which automatically throws the object into a perspective view) than it is to directly manipulate the object in rotational space. Scaling can also be used effectively in this context. The x, y, z scaling function is located at the geometric centre of the object and uses quaternion values for calculation purposes.
Doing things in this way is not entirely useless but it also illustrates that it is probably simpler and quicker to gauge and make a straight drawing in another window, as I chose to do. Whichever way you choose to go quite a bit of semantic input is required.
Putting the issue another way, while a 3d perspective drawing in a “Hamiltonian space” can be easily converted to a 3d drawing in Euclidean space the same cannot be said of a 2d photo image. To do so requires additional axial dimensional metrics, the creation of a 3d “cloud” of points and the use of functions such as Kolmogorov complexity in a hypercube context.
For drawing more complex curvilinear objects (organic shapes) the scaling function becomes invaluable. I have found it to be useful when making some drawings of indigenous Papua New Guinea architecture, shapes similar to the original Sydney Opera house sketches. Please be assured, NormandC, that I otherwise always follow your excellent advice.
Perhaps the functionality of FreeCAD may be enhanced by increasing the scaling axes from 3 to 6 and even 9.
Again I would like to express my gratitude to FreeCAD and its commentators and maintainers for providing a wonderfully interesting desktop of ideas.
- Boiler image.jpeg (40.59 KiB) Viewed 5147 times