Consulting

Design Automation

If you belong to a typical company then you recreate an item's geometry five or more times in such areas as customer proposals or marketing specifications; conceptual design; detail design; finite element analysis; other engineering analysis; detail drafting; fabrication or assembly sketches; workcell device programming; tooling and fixture design; and training and service manuals. And if you are using Pro/ENGINEER as your primary CAD tool then your are probably not utilizing the full power of what PTC offers. In fact most Pro/E users don't even know by how much their repetitive work can be reduced by Pro/TOOLKIT - API library of functions provided by PTC. This all hurts productivity and competitiveness in today's fast paced market and in the long run costs a lot.

In this case ignorance is not a bliss.

Take www.smithbits.com for example (my full time job employer) where CAD automation has been implemented to a high degree. They automated their cutter layout design for one of their products (PDC Diamond drilling bit) with a state of the art Pro/TOOLKIT application. In a few menu picks and in a few minutes one can place, modify, move (etc) diamond cutters. The internals of that application are as complex as toolkit programming can get.

Pro/TOOLKIT programming is not just some everyday C/C++ or java programming work. There is a lot more to it such as: geometry understanding, taking care of design constraints, integration with other CAE tools, collaboration, multithreading, engineering analysis etc. It is not a job for an everyday consultant, but for somebody who has done a wide range of jobs, lectured graduate CAD courses at a University, and who has seen and done/published advanced research in Mechanical Engineering (see resume and sections bellow). It is also a job for somebody who is not afraid of all the technical/engineering aspects that come along with the product design that need to be accounted for. From what my clients tell me, I believe that I am the only person in the world that has this academic background and that has been developing Pro/TOOLKIT applications for over a decade. Now, that combination is very hard to find.

Also, browse my website and then try to find any Pro/TOOLKIT code on the web. Why isn't there any? That is what I would like to know too. I have written several articles for various publications online that contain real Pro/TOOLKIT code.

I am an independent consultant and I work with my customers from the beginning to the end every step of the way. However, I cannot consult the competitors of Smith International, Inc and I only provide consulting to US based companies.

Pro/TOOLKIT Applications

Pro/TOOLKIT is the customization toolkit for Pro/ENGINEER from Parametric Technology Corporation (PTC). It gives customers and third-parties the ability to expand Pro/ENGINEER capabilities by writing C programming language code and then integrating the resulting application into Pro/ENGINEER.

Pro/TOOLKIT provides a large library of C functions to provide the external application safe and controlled access to the Pro/ENGINEER database and applications. Pro/TOOLKIT is the PTC application programmer's interface (API). One way to measure its effectiveness is to observe its price. While the core of Pro/ENGINEER came down in price to $5K over the years, Pro/TOOLKIT remains priced at $20K. That is telling.

I have plenty of experience in a research/production environment designing Pro/TOOLKIT functions that access the solid models drawn using Pro/ENGINEER. This includes various algorithms for feature traversal, assembly tree extraction, feature relationship based on distance, internal ids extraction, reasoning about cross-sectionsof part models, surface distances along polyhedral bodies with graph theory application, server/client CAD applications, spatial transforms etc. You name it.

Note: Toolkit code can be only developed with your own license. This is PTC's policy and there is no way around it. So, typically companies proved me with a remote access to their own network or ship a laptop with a locked license to me.

Numerical Algorithms

I have a number of years of functional programming experience using C/C++, Maple, Matlab, Unix and Python for designing software in the following areas:

  1. Optimization: linear and nonlinear programming, gradient descent techniques, issues about locating global minima, genetic algorithms,
  2. simulated annealing, numerical techniques (Newton-Raphson), optimization
  3. using chaos and fractals (my own contribution)
  4. Control: classical and state space methods, adaptive control,
  5. learning based control, stability issues, control in chaotic systems
  6. Neural Networks: learning process, single and multilayer-perceptrons,
  7. back-propagation, supervised and unsupervised learning, principal
  8. components analysis, radial-basis functions
  9. Mathematics: linear algebra, complex analysis, ODE and PDE (numerical and symbolic), numerical methods, solving systems of nonlinear equations, chaos, fractals, attractors, fuzzy logic.
  10. Robotics and Mechanisms: spatial descriptions and transformations, jacobians(velocities), inverse manipulator kinematics, mechanism design, trajectory following, control of manipulators.
  11. Mechanical Systems: dynamics, kinematics, virtual work, classical and lagrangian approach, holonomic and nonholonomic constraints, hamiltonian, vibrations
  12. Computational Geometry: voronoi diagrams, triangulation, convex hulls, motion planning, application of geometry to manufacturing problems (injection molding, machining)

Tutoring

Extensive experience in teaching university graduate and undergraduate courses in the following areas: Mathematics (all levels), Analytical Dynamics, Control, Vibration, Mechanisms, Design, Statics, Dynamics, Dynamics of Machinery and Kinematics of Machinery, CAD/CAM/CAE.