×
热门分类
微信扫码登陆

QQ登录

只需一步,快速开始

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即加入SketchUp吧! 微信扫码登陆

x
Archiland Toolbar插件确实很好用。
我现在也想编一个相类似的插件,就像create stair那样的,点击图标,再输入参数,“确定”就可以生成一个模型
还想请教“点击工具图标”与“显示模型”是如何关联的。能不能以生成一个正四方体为例讲解一下,点击“该工具”,弹出对话框后输入参数“边长”,点击确定后生成该四方体。
不胜感激!
SUAPP3.4

精彩评论

文明上网理性发言、请文明用语

23

主题

816

帖子

1174

红宝石

技术版主

Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40

红宝石
1174

优秀点子奖优秀技术奖荣誉会员

QQ
powermedia 2009-3-12 11:25:00
点击工具图标”与“显示模型”是如何关联的,你不需要考虑这些。
比如你想做个box
那么box就需要有3个参数,长,宽,高,这3个参数在对话框里由用户输入数据。
也就是3个变量。
在根据这3个变量的值,
suApi里有个方法是add_face
depth = 100#长
width = 100#宽
height=100#高度
model = Sketchup.active_model#必须有这个
entities = model.active_entities#必须有这个,
pts = []#定义一个数组
pts[0] = [0, 0, 0]#数组的第一个值,也就是矩形的第一个点
pts[1] = [width, 0, 0]
pts[2] = [width, depth, 0]
pts[3] = [0, depth, 0]
face = entities.add_face pts#创建一个矩形面。
face.pushpull height, true#利用face的拉伸方法

3

主题

63

帖子

3

红宝石

SU入学(等级1)

Rank: 1

红宝石
3
zqbxfev 2009-3-12 11:31:00
问题是我现在要解决的问题就是“工具图标”与“显示模型”是如何关联。
生成box很容易,例如
def create_box
    prompts = ["Width", "Height", "Depth"]
    values = [100.cm, 100.cm, 100.cm]
    results = inputbox prompts, values, "Box Dimensions"
   
   return if not results
    width, height, depth = results
    model = Sketchup.active_model
    model.start_operation "Create Box"
    entities = model.active_entities
    group = entities.add_group
    entities = group.entities
   
    pts = []
    pts[0] = [0, 0, 0]
    pts[1] = [width, 0, 0]
    pts[2] = [width, depth, 0]
    pts[3] = [0, depth, 0]
    base = entities.add_face pts
    height = -height if( base.normal.dot(Z_AXIS) < 0 )
    base.pushpull height
    model.commit_operation
end

关键是我点击图标后,要弹出给对话框,输入参数,确定后就生成了模型。
也就是“点击图标”与“生成模型”是如何联系的。
不胜感激!

23

主题

816

帖子

1174

红宝石

技术版主

Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40Rank: 40

红宝石
1174

优秀点子奖优秀技术奖荣誉会员

QQ
powermedia 2009-3-12 11:43:00
如果你想做一个工具栏的话:
if( not $create_box_menu_loaded )
ptb = UI::Toolbar.new("create_box")
cmd1 = UI::Command.new(("Generate handrail from line")){ create_box}
  cmd1.small_icon=/图标名称_大.png"
  cmd1.large_icon =/图标名称_小.png"
  cmd1.tooltip =("create_box")
  cmd1.status_bar_text =("create_box")
  ptb.add_item(cmd1)
$create_box_menu_loaded =true
end

3

主题

63

帖子

3

红宝石

SU入学(等级1)

Rank: 1

红宝石
3
zqbxfev 2009-3-12 12:06:00
谢谢powermedia。
我知道问题出在什么地方了。在编写代码的时候参照clinetool.rb的代码,但又没有把“类”弄清楚,才出现这个问题。
现在自己刚入门,以后还要多向powermedia学习。
最后再谢谢一下powermedia。
愿sketchupbar越来越好!
高级模式
您需要登录后才可以回帖 登录 | 立即加入SketchUp吧! 微信扫码登陆

本版积分规则

zqbxfev

SU入学(等级1)

  • 主题

    3

  • 吧币

    600

  • 红宝石

    3

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 客服中心 搜索 官方QQ群
关于我们/小黑屋/手机app/国土人/SketchUp吧 /京ICP备16008035号/