Num in parts max betwen 2 buffers

23 views
Skip to first unread message

Nicolas

unread,
Nov 5, 2018, 6:04:47 PM11/5/18
to delmia_quest
Hi everybody

I'm new,

I would have 10 parts maximum between 2 buffers only, (Between there is 3 machines).

In Scl first buffer, I've write:

USER_ATTRIB
count : real

procedure myproc()

VAR

proc_id : Process

begin
require part ANY
celem->count = celem->count + 1
if (celem->count > 10) then
return
endif
pass()

end


For the second buffer after the machines

procedure myproc2()

VAR

proc_id : Process

begin
require part ANY
celem->count = celem->count - 1
pass()

end


Do you have a solution?

Thank for your help
Have a good day


BARNES Martin

unread,
Nov 5, 2018, 6:30:31 PM11/5/18
to delmia...@googlegroups.com

Hi Nicolas:

 

Try this:

1.      Create a User Group

Advanced->Grp->Group Type->Cre

Any name would be OK

Entity Type Element

Association Multiple

2.      Modify the Group

              Assign Group Capacity 10

3.      Add the Machines to the Group

 

This sets a maximum total number of parts (10) for the sum of parts in the machines.

 

Martin BARNES

Senior Software Consultant , Manufacturing - Consulting & Technical Services

cid:image001.jpg@01D37F27.E988DFF0

Office: +1 248 205 5227
Mobile: +1 248 762 1775
Fax: 248 267 8585
martin...@3ds.com

3DS Logo

3DS.COM

DS Americas Corp. | 900 North Squirrel Road, Suite 100 | Auburn Hills, MI 48326 | United States

--
You received this message because you are subscribed to the Google Groups "delmia_quest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to delmia_quest...@googlegroups.com.
To post to this group, send email to delmia...@googlegroups.com.
Visit this group at https://groups.google.com/group/delmia_quest.
For more options, visit https://groups.google.com/d/optout.

This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged.

If you are not one of the named recipients or have received this email in error,

(i) you should not read, disclose, or copy it,

(ii) please notify sender of your receipt by reply email and delete this email and all attachments,

(iii) Dassault Systèmes does not accept or assume any liability or responsibility for any use of or reliance on this email.


Please be informed that your personal data are processed according to our data privacy policy as described on our website. Should you have any questions related to personal data protection, please contact 3DS Data Protection Officer at 3DS.complia...@3ds.com


For other languages, go to https://www.3ds.com/terms/email-disclaimer

BARNES Martin

unread,
Nov 6, 2018, 9:06:55 AM11/6/18
to delmia...@googlegroups.com

Hi Nicolas:

 

As you mention that you are new to this, I thought I’d add some extra information.

 

The Group approach works fine as described in my previous email.

However getting ramped up with SCL will be a big advantage – and you have made some good steps.

So I am providing an SCL approach.

 

There are usually multiple ways of doing things in QUEST. My preference is – use the GUI first and SCL only when you need to.  However some people draw the line in a different place and use SCL more that I would.  They are not wrong, it is a personal style/preference. In any case at some point you will need SCL.

 

Your approach – modifying the Process Logic of the Buffer is a good start.

However a User Attribute has a value for each element that it is used on, it does not have a single value across all elements on which it is used.  For this you need a Global Variable.

 

VAR

count     : real

 

--For the first buffer before the machines

procedure myproc()

 

begin

 

  -- Don't accept a part until it can be passed downstream

  Wait Until count < 10

 

  require part ANY

  count = count + 1

  pass()

 

end

 

--For the second buffer after the machines

 

procedure myproc2()

 

begin

  require part ANY

  count = count - 1

  pass()

 

end

 

 

If you want the parts to queue up in the first buffer, you could return the Process Logic to its default and modify the Route Logic instead.

 

 

 

Martin BARNES

Senior Software Consultant , Manufacturing - Consulting & Technical Services

cid:image001.jpg@01D37F27.E988DFF0

Office: +1 248 205 5227
Mobile: +1 248 762 1775
Fax: 248 267 8585
martin...@3ds.com

3DS Logo

3DS.COM

DS Americas Corp. | 900 North Squirrel Road, Suite 100 | Auburn Hills, MI 48326 | United States

 

 

From: delmia...@googlegroups.com <delmia...@googlegroups.com> On Behalf Of Nicolas
Sent: Monday, November 5, 2018 5:53 PM
To: delmia_quest <delmia...@googlegroups.com>
Subject: Num in parts max betwen 2 buffers

 

Hi everybody

--
You received this message because you are subscribed to the Google Groups "delmia_quest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to delmia_quest...@googlegroups.com.
To post to this group, send email to delmia...@googlegroups.com.
Visit this group at https://groups.google.com/group/delmia_quest.
For more options, visit https://groups.google.com/d/optout.

Group_max_via_scl.mdl
Max_in_Group_by_SCL.scl

Nicolas

unread,
Nov 6, 2018, 2:07:13 PM11/6/18
to delmia_quest
Hi martin

thank you for the answer, it's a help important. 
Your answer helps me a lot
I've some work :)
Reply all
Reply to author
Forward
0 new messages