SketchUp Make v17/Ruby > Group의 Width, Height, Depth[mm]를 표시하는 구현

운영 환경
SketchUp Make v17.1.173
MacOS X El Capitan

Group의 크기를 얻고 싶습니다.

google 검색하고 마침내 다음 방법을 찾았습니다.

Vector3d - SketchUp Ruby API Google Developers
ww. s t t pd cs. 코 m / 드 cs / 오우 r도 c / 보롱
이 페이지 번역
You can get the bounding box on a model. model = Sketchup.active_model model_bb = model.bounds # Or you can get the ... first_entity.bounds # Or you can create an empty bounding box of your own. boundbox = Geom::BoundingBox.new...

다만, 상기의 링크처는 이미 없어지고 있다.
우선 캐시로 기재된 코드(상기의 문자열)를 참고로 했다.

measureGroup161224.rb
require 'sketchup.rb'

def measure_group()
    model = Sketchup.active_model
    my_selection = model.selection

    my_selection.each do |ent|
        if ent.is_a? Sketchup::Group
            bnd = ent.bounds
            print("W:",bnd.width)
            print(",H:",bnd.height)
            print(",D:",bnd.depth,"\n")
        end
    end
end

큐브를 만들고 그룹화합니다.

위의 스크립트를 Ruby 콘솔에서 읽습니다.
(스크립트 위치는 여기 참조)
> load "measureGroup161224.rb"
true

Group으로 한 오브젝트를 선택 후 measure_group()을 실행한다.

실행
> measure_group()
W:3000.000000mm,H:1000.000000mm,D:4000.000000mm
#<Sketchup::Selection:0x007fcfabe8d208>

작성한 사이즈를 취득할 수 있었다.



개체? 를 회전하고 있는 경우는 local_bounds (을)를 사용해, 라고 하는 메모를 본 생각도 한다.

이번은 bounds라고 하는 것으로 사이에 맞았다.

측정 2



오늘, 입체 시프트 스크립트를 사용해 작성한 laundry rack의 안 1.
각각이 Group화한 객체이므로 잘 움직이면 NIC direct에 주문하는 정보를 쉽게 얻을 수 있을 것이다.



모든 Group을 선택하고 measure_group() 시도했습니다.

결과
> measure_group()
W:900.000000mm,H:20.000000mm,D:20.000000mm
W:650.000000mm,H:20.303132mm,D:20.305539mm
W:20.000000mm,H:900.000000mm,D:20.000000mm
W:20.000000mm,H:20.000000mm,D:900.000000mm
W:650.000000mm,H:20.000000mm,D:20.000000mm
W:20.000000mm,H:900.000000mm,D:20.000000mm
W:20.000000mm,H:20.000000mm,D:650.305575mm
W:900.000000mm,H:20.000000mm,D:20.000000mm
W:20.000000mm,H:900.000000mm,D:20.000000mm
W:20.000000mm,H:20.000000mm,D:650.000000mm
W:20.000000mm,H:20.000000mm,D:900.000000mm
#<Sketchup::Selection:0x007fcfabe8d208>

조금 오차가 나오고 있지만, 원하는 정보를 쉽게 얻을 수 있게 되었다.
(오차는 모델링시의 실패에 기인할 것이다)

900mm와 650mm로 통일함으로써 재이용성을 검토하고 있다.
혹시 Borg Sensor System1 측정 장치의 프레임으로 사용할지도 모르기 때문에.
마그네트론 스캐너라든지(원리를 생각할 필요가 있다).

측정 3



다수의 직육면체로 구성되는 구조물의 사이즈도 일람 취득할 수 있다.



다만, 회전하고 있는 Group은 사이즈 취득에 실패하는 것 같다(값이 올바르게 출력되지 않는다).

링크



다음 스크립트는 더보기 쉬운 결과를 생성합니다.
ぃ tp // 이 m / 쉽게 k / ms / 8 69234f96178c2d48f7

좋은 웹페이지 즐겨찾기