• Login
sketchucation logo sketchucation
  • Login
๐Ÿค‘ SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

Drawingelement.material and face.back_material? [SOLVED]

Scheduled Pinned Locked Moved Developers' Forum
5 Posts 3 Posters 456 Views 3 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    Pout
    last edited by Pout 3 Sept 2008, 14:14

    I just did some tests on a simple face with 4 edges.

    If I use this command (select=the face):
    status=select[0].material="Material1" (drawingelement class)
    then the back side of the face gets material 1

    and if i use this command:
    status=select.back_material="Material1" (face class)
    then the front side of the face gets material 1

    Why is this? And why are these commands seperated over 2 classes?
    And is there any possibility to give a complete selection a certain material at once? (wether it is a combination of lines and faces or a group)

    Thx again.
    Regards

    1 Reply Last reply Reply Quote 0
    • R Offline
      RickW
      last edited by 3 Sept 2008, 16:20

      I've never had that happen. What code are you using to set "select"? Why are you using select[0] in the first case, and select in the second case? I did a similar test with a 4-edged face, and face.material= always set the front face, and face.back_material= always set the back face.

      Explanation about the different classes:

      An edge is a drawingelement, but it is not a face. It can receive a material, but it cannot receive a back material, having no back. This is the same for curves, text, instances, and groups - they can receive a material, but not a back material.

      A face is a drawingelement as well, and thus inherits the .material= method. However, it does have a back, and can receive a back material. Thus, it has a unique method for that purpose.

      Rather than creating a .material= method for each subclass to drawingelement, it made more sense to create it for drawingelement and let each subclass inherit that method, then add the requisite .back_material= method only for the face subclass.

      Hope that helps,

      RickW
      [www.smustard.com](http://www.smustard.com)

      1 Reply Last reply Reply Quote 0
      • P Offline
        Pout
        last edited by 4 Sept 2008, 07:23

        This is how i do it:

        I create a face with 4 edges. I select the face
        Ruby console:
        model=Sketchup.active_model
        select=model.selection

        If i then execute the command:
        status=select.material="Material1"
        Error: #<NoMethodError: (eval):149: undefined method material=' for #<Sketchup::Selection:0x474fe88>> (eval):149* if I do this command: *status=select[0].back_material="Material1" Material1 **--> SO THIS IS OK** status=select[1].back_material="Material1" Error: #<NoMethodError: (eval):149: undefined method back_material=' for nil:NilClass>
        (eval):149

        Now today when i try this command:
        status=select.back_material="Material1"
        Error: #<NoMethodError: (eval):149: undefined method `back_material=' for #Sketchup::Selection:0x474fe88>
        (eval):149

        I don't get it anymore ๐Ÿ˜ž
        How can i give all selected objects a certain color/material?

        1 Reply Last reply Reply Quote 0
        • T Offline
          tbd
          last edited by 4 Sept 2008, 07:34

          Sketchup.active_model.selection.each do |ent|
           ent.material = "Material1" if ent.respond_to? ;material
          end
          
          1. always verify if the receiver supports that (respond_to? :symbol)
          2. dont use [0], [1], ... on a selection - sometime you receive a face, sometime an edge, sometime nil
          3. you can do the same for back_material

          SketchUp Ruby Consultant | Podium 1.x developer
          http://plugins.ro

          1 Reply Last reply Reply Quote 0
          • P Offline
            Pout
            last edited by 4 Sept 2008, 11:52

            thank you very much ๐Ÿ˜„

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            1 / 1
            • First post
              2/5
              Last post
            Buy SketchPlus
            Buy SUbD
            Buy WrapR
            Buy eBook
            Buy Modelur
            Buy Vertex Tools
            Buy SketchCuisine
            Buy FormFonts

            Advertisement