
COMCADSMControllerTester new test14
CADSM.UI.COM.XynaCAD.XynaCAD test1.

CADSMTest new openAssembly.
CADSMTest new testSymbolicAssembly.
6 raisedTo: 5
StCAD.Editor open.
StCAD.CADSMEditor open.
CADSM.Modelica.Parser example1.

CADSM
c:\askoh\vw7.3.1\askoh\cadsm\vxxc1\TypeLibrary\
CADSM
Aik-Siong Koh
askoh.com
COMCADSM.reg
COMCADSM
COMCADSM.Application
C:\askoh\vw7.3.1\bin\win\visual.exe C:\askoh\vw7.3.1\askoh\cadsm\vxxc1\TypeLibrary\comcadsm.im

CADSM.UI.COM.COMCADSMTester new openAssembly.
CADSM.UI.COM.COMCADSMControllerTester new test4

Examples.COMTestDriverFramework checkCOMResources.
( COMDispatchDriver createObject: 'COMCADSM.Application') inspect.
( COMDispatchDriver createObject: 'AM_Engine.IAMRoot') inspect.
AutomationAllDataTypesTestDriver
AutomationAllDataTypes		"Domain"
AllDataTypesCOMObject	"COMObject"
IAllDataTypesDisp
IAllDataTypesDispImplementation
IAllDataTypesDispPointer
__IAllDataTypesDispVtbl
WizardAutomationAllDataTypes
	AutomationAllDataTypesTestDriver testInAutomationEditor.
C:\askoh\vw7.3.1\bin\win\visual.exe C:\askoh\vw7.3.1\askoh\cadsm\vxxc1\TypeLibrary\wizardexample.im

AutomationSmalltalkCommanderTestDriver
AutomationOnlySmalltalkCommander	"Domain"
AutomationSmalltalkCommander			"Domain"
SmalltalkCommanderCOMObject		"COMObject"
ISmalltalkCommanderDisp
ISmalltalkCommanderDispImplementation
ISmalltalkCommanderDispPointer

COMInterfacePointerClassGenerator generateInterfacePrototypeFor: #IFoo.
COMInterfaceImplementationClassGenerator generateInterfacePrototypeFor: #IFoo.
COMInterfaceClassGenerator generateInterfacePrototypeFor: #IFoo.

COMAutomationTypeAnalyzer
generateTypeLibrarySpecifications: AutomationAllDataTypes
typeLibraryEnglish
forRole: #server.

| anITypeLib |
anITypeLib := COMTypeLibrary pathName:
'DualTypeLibrary\CADSMLibraryFile.tlb'.
[ COMAutomationTypeAnalyzer
generateTypeLibrarySpecificationsFromUser: anITypeLib ]
ensure: [ anITypeLib release ].

GUID new GUID {216EB127-DB1A-40FF-AB59-2D0906406393}
'CADSM.Application' asGUID

(Differator newOnFile: 
'C:\askoh\vw7.3.1\com\examples\comauto\AllDataT\TypeLibrary\vwalldt.idl'
and: 
'C:\askoh\vw7.3.1\com\examples\comauto\AllDataT\TypeLibrary\dual_vwalldt.idl'
) open.

SourceFileManager default 
	changeSourceDirectoryFrom: '/\home\askoh\askoh\vw721\cadsm\vxx\b'
	to: '$(VISUALWORKS)\cadsm\vxx\b'

StCAD.CADSMEditor open.
(CADSM.UI.STEP.STEPParser parse: '$(VISUALWORKS)/cadsm/vxx/b/Assem1.STEP') fillInstVar cTopElement.

self showObject: aRectangle ProbeContextDepth: 5.
self showProbeContextDepth: 5.
^false
self toTranscriptShow: xxx.
false

ASKoh.WebAnalyst parseNew: 'access_log.0'.
ASKoh.WebAnalyst example2

CADSM.UI.RegistrationDialog clear; startUp.
CADSM.UI.RegistrationDialog startUp.
CADSM.UI.RegistrationDialog example4.
CADSM.Misc.DataRegistration new printString.

	JunSystem login.
	((JunOpenGL3dObject cube) paint: ColorValue pink; yourself) show
	((JunOpenGL3dObject ball) paint: ColorValue pink; yourself) show
	JunLauncher open
	JunOpenGLRotationApplicationModel example7 displayModel useDisplayList: true
	JunOpenGLRotationModel open
	JunBody cubeOrigin: -1, -1, -1 corner: 1, 1, 1
	JunOpenGL3dNurbsSurface example5Kohee.
	JunOpenGL3dNurbsSurface example5Kohc.

StCAD.Editor open.
StCAD.CADSMEditor open.
CADSM.UI.Editor open.
CADSM.UI.Editor1 open.
StCAD.StDoc.Editor open.
GFDrawingEditor open.

SmalltalkWorkbench promptThenBrowseMethodsInProtocolFrom: nil.
'koh', 'MbD', 'CAD', 'DYN', 'StMath', 'StDoc', 'StGeo', 'PDMS', 'UI', 'FEM', 'NMT', 'CADSM'

TO DO LIST:
OpenGL in Windows does not like very sharp angles.
Do the *.tlb for *.idl (auto, dual) generate the same literalSpecification?
How to have Assembly create Part and return Part interface?
How to set iid of COMObject, IDispatch, Implementor, Pointer?
BREP_WITH_VOIDS
Catch uv curves that crosses 0 or 1.
WINDOWS XP and 2000 refresh during scrolling and dragging leaves streaks. It looks like scaling and damaged rectangle problem.
Use pre, do, post as in preExecute, doExecute, postExecute.
On collision, other cvcv's may experience separation. CADSM needs to check that.
Use moving assembly frame.
Use spinors.
Do redundant constraint removal in dynamic equations to avoid bifurcation or singular positions.
Menu to change color and gravity.
Refresh treeview so that empty collections do not have the plus sign.
Make rubberbanding work in Solid view.
Bounding rectangle or box should use nil to represent undefined bounds. Using inverted bounds gives problems when using #topLeft, #intersect:, etc.
Make CADSM handle non convex polygon.
JUN: Without display list, OpenGL seems to get corrupted when the object is not in total view.******
Make all curves and surfaces from NURBS.
aSup sets the single or double link between itself and aSub.
Add cFace, cLoop, cEdge, cVertex into Model.
"Any" prefix is good for abstract classes.
aVar:, cVar: are plain accessors. 
xaVar: xcVar: check and set aVar or cVar.
txaVar: txcVar: check and set aVar or cVar and trigger other events or updates.
addVar: addcVar: to add aVar or cVar into a parent composite of cVar or ccVar.
aObject is an Object instance.
cObject is a one dimensional collection of Object instances.
ccObject is a two dimensional collection of Object instances.
aaObject is an argument or temp object.
acObject is an argument or temp collection.
Let Smalltalk control the Handles.
Gravitational field shoud be function of time for artificial g's.
Better info on FFT.
Allow different units in graphs. Store plot info for easy regraphing.
Symmetric and antisymmetric splines.
Geometric algebra derivation of MbD.
Allow definition of variables.
Allow formulas for all input. Remember old formulas.
Traces in drawing.
Vectors in drawing.
Shear and moment diagrams along an axis of a marker.
Free body diagrams.
OpenGL interface.
Joint friction. fIK(kineIJ, I or J or O or Km), Similarly with tIK().
Make rIJK(Im or O, Jm or O, Km or O), rIJK(kineIJ, I or J or O or Km). Similarly for vIJK(), omeIJK(), aIJK(), alpIJK().
Save asm as text or xml. Compress it for compactness. Then convert it into any other format (POVRay, Review etc.).
MbDSymbolicFunction is a subclass of CADFunction.
physical unit := constant * unit.
physical variable := numeric variable * unit.
force = mass * acceleration  should be represented by force_N * Newton := mass_kg * kg * acc_m_s * m /(s*s).
For simple rotation and translation, do not use MbDEndFrameqct. Use constraint G(q) = f(t) instead.
For Euler angles use Bryant angles (xyz sequence).
Plot should allow selection of subset of series.
Curve-Plane contact.
Make curve marker profile independent of face profile.
Curve marker and profile should belong to the part, not the joint.
Converge to numerical limit does not check that yNorm is small.
Single pass initialization for MbD. No need for initializeLocally and initializeGlobally.
Simplify creation of CVCV.
Make CVCV handle flat on flat, two point contact, friction.
Include more joints.
Allow general functions.
Polyline drawing. The CVCV and PTCV.
Streamline updateProjection: for efficiency.
Be independent of GFST.
Derive the jacobian and error vector symbolically to check numerical solution.
Derive MbD to accept symbolic constraint equations.
Derive parametric constraints for graphics.
Implement z-buffer graphics in Smalltalk.
Implement complete solid modeling operations.
Update the isDirty flag properly.
Allow user control of marker size and visibility.
Allow user control of visibility of parts, markers ,joints, etc.
Visible face indicator.
Non manifold topology.


Done:
Assembly markers have problems in "Previous Input State".
Add general motion rIJI1(t), rIJI2(t), rIJI3(t), bryantIJ1(t), bryantIJ2(t), bryantIJ3(t). Use MbDEndFrameqct and constraint G(q,t) = 0 for this motion only.
Static simulation should not update unless there is convergence.
Check forceTorque in motion is correct because Ie moves wrt to Im.
Plot CVCV data.
Why does CVCV produce torque? OK. Redundant constraint can removes constraints from other joints that should take the torques?
Quiescent initial conditions.
Simulate forward and backward. Start time can be non zero.
Animation speed and step variation.
Derive MbD using direction cosines for generalized rotations.
Nondimensionalize.
Use parallel tangent to find the minimum separation or maximum penetration of curve-curve.
Back face culling.
Open source the graphics part of freeCAD, stCAD.
Error message handling.
Attach notepad to each assembly or part.
Online documentation.
Sponsor message.
Clean up menus.
Initial linear and angular velocities.
Moving marker perpendicular to guide plane.
Create a web site.
Announce in newsgroups and emails to friends.
Check why quasi static does not work with gravity, linear spring damper, mass and cylindrical joint.
Implement zoom.
Have separate menus Kinematic, Dynamic and Animation.

Advertise Here
Advertise Your Software Here
Advertise Your Products Here
Advertise Your Software Here
Advertise Your Job Opportunities Here
Advertise Your Career Opportunities Here
Advertise Your Financial Services Here
Advertise Your Engineering Services Here
Advertise Your Society Membership Here
Advertise Your Publications Here
Advertise Your Vehicle Models Here
Advertise Your Academic Programs Here

How to create a deployable image for freeCAD.
Create a virgin image.
Open settings notebook.
Change settings to include parcel paths:
c:\vw30\goodies2\
c:\vw30\ic&c\
Close settings notebook.
Open parcel browser.
Load xKoh.pcl which also loads Win95Look.pcl.
Open settings notebook.
Select Win95/NT (IC&C) Look.
Select small text size.
Select automatic window placement.
Close settings notebook.
Load xCAD.pcl which has all the prequisites for freeCAD.
Load imageMaker20.pcl or the latest one.
Load freeCADx.imr.
Create deployment image.

Note:
Trying to make a long beam with short beam segments is tricky. 
(I beam J) Mass (I beam J) Mass ...
If F on I wrt to I is used, the long beam is unstable. Use F on I wrt O instead. Using the former leaves unbalanced forces on each mass because the 'I' of the left force is not parallel with the 'I' of the right force.
Conventions:
aObject is an instance of Object.
cObject means a collection of aObject.
nObject is the number of aObject.