This text is first attempt to SIMLIB/C++ FAQ ============================================ Q) block expression evaluates to bad value A) possible use of double or int variable double(x)*double(y)*block means Constant(double(x)*double(y))*block you can't use C++ variable in block expression if you want to change its value during simulation (for example the variable Time can't be used -- you should use continuous block T) Q) After Release(Facility) the predicate Facility.Busy() is true A) Yes, the Facility is automatically seized by first entity in input queue and this is done by Release() method -- it means that after Release() the facility can be busy. Q) I have problem with array A) check indexes (C++ does not) Q) My simulation crashed after end of run A) possibilities: -- bad use of pointers or array indexes -- objects in unterminated Behavior() -- etc... Q) I got SIMLIB error: entity activation in the past A) You probably used Normal() random generator for waiting. Normal() can produce negative number. Planning event activation in the past is impossible. Q) My simulation does not stop. Debugger shows that it is infinite loop in myEvent::Behavior(). A) You are using old (=pre 3.00) version of SIMLIB. This was bug in SIMLIB. All events (derived from Event) were actually periodic events - you used either Activate(Time+something); to schedule next activation or Cancel(); to stop and destroy the event. Cancel is no more needed.