Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape, CAD, maker project and design.

First time visiting? Here are some places to start:

  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. Be respectful, on topic and if you see a problem, Flag it.

If you would like to contact our Community Manager personally, feel free to send a private message or an email.

opBoolean FS Question

NancyNancy Member, Developers Posts: 110 PRO
Can I do opBoolean without user selecting the "targets"?

Comments

  • konstantin_shiriazdanovkonstantin_shiriazdanov Member Posts: 430 ✭✭✭
    if you want to boolean with every solid body of part studio then use
    "targets":qBodyType(qEverything(EntityType.BODY), BodyType.SOLID)


  • NancyNancy Member, Developers Posts: 110 PRO
  • konstantin_shiriazdanovkonstantin_shiriazdanov Member Posts: 430 ✭✭✭
    edited January 12
    since you want to union opBoolean should have only "tools" and "operationType" filelds in this case -
    "tools": qUnion[{qCreatedBy(), qBodyType(qEverything(EntityType.BODY), BodyType.SOLID)}]
  • NancyNancy Member, Developers Posts: 110 PRO
  • konstantin_shiriazdanovkonstantin_shiriazdanov Member Posts: 430 ✭✭✭
    edited January 12
    sorry, my fault - round brackets for qUnion() and square brackets for argument list
    qUnion([qCreatedBy(), qBodyType(qEverything(EntityType.BODY), BodyType.SOLID)])
  • NancyNancy Member, Developers Posts: 110 PRO
    thank you for your explanation. it works now.
    howabout instead of qUnion , i will use qSubtraction. do i have to use targets?
  • konstantin_shiriazdanovkonstantin_shiriazdanov Member Posts: 430 ✭✭✭
    edited January 12
    if you want boolean operation of subtraction type you would have
    {"tools": qCreatedBy(),
    "targets": qBodyType(qEverything(EntityType.BODY), BodyType.SOLID),
    "operationType": BooleanOperationType.SUBTRACTION}
  • NancyNancy Member, Developers Posts: 110 PRO
    @konstantin_shiriazdanov --i tried the code below but I get an error saying "cannot subtract from it self". can somebody explain pls.




  • konstantin_shiriazdanovkonstantin_shiriazdanov Member Posts: 430 ✭✭✭
    it possibly means that targets contains the body created by sweep among other. so in this case
    "targets": qSubtraction( qBodyType(qEverything(EntityType.BODY), BodyType.SOLID), qCreatedBy(id+"sweep", EntityType.BODY))

  • NancyNancy Member, Developers Posts: 110 PRO
    it works now! thanks. i get your explanation about the sweep.
    in qsubtraction (query1,query2)
    by doing this query, it separate the 2 bodies so i can subtract it?
    while the previous code , query all the bodies including the body created by sweep hence cannot subtract to itself?
    am i understanding this correctly?
  • konstantin_shiriazdanovkonstantin_shiriazdanov Member Posts: 430 ✭✭✭
    edited January 15
    Nancy said:
    while the previous code , query all the bodies including the body created by sweep hence cannot subtract to itself?
    am i understanding this correctly?
    yes, looks like this is what happens inside boolean
  • NancyNancy Member, Developers Posts: 110 PRO
    @konstantin_shiriazdanov
    thank you ! 
Sign In or Register to comment.