rhino3d-scripts
Cria e corrige scripts para o programa Rhinoceros 3D. Ajuda a automatizar tarefas de modelagem e a manipular objetos no programa.
O que ela faz
Este agente ajuda a criar e corrigir códigos (scripts) para o programa de modelagem 3D Rhinoceros 3D. Ele entende diferentes linguagens de script usadas no programa.
Quando usar
- ✓Quando você quer automatizar tarefas repetitivas no Rhino.
- ✓Se você precisa criar um novo script ou corrigir um existente.
- ✓Para fazer o Rhino interagir com objetos de forma programada.
Exemplo do que pedir para a IA
“Escreva um script em Python para desenhar um círculo com 5 unidades de raio no centro da cena.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O agente entende as linguagens de script que o Rhino 3D usa, como RhinoPython e RhinoScript. Ele pode gerar códigos para manipular geometria, camadas e outros elementos do programa.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill rhino3d-scriptsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/rhino3d-scripts/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Habilidade de Scripting no Rhino 3D
Escreva scripts de qualidade de produção para o Rhinoceros 3D. Abrange as três superfícies de scripting (RhinoScript/VBScript, RhinoPython, .NET direto RhinoCommon) e o Editor de Scripts do Rhino 8+.
Quando Usar Esta Habilidade
- O usuário pede para escrever, editar ou depurar um script do Rhino
.rvb,.vbsou.py. - O usuário quer uma macro de comando do Rhino ou quer automatizar uma sequência de comandos do Rhino.
- O usuário quer manipular geometria, camadas, blocos, materiais, viewports ou anotações a partir de código.
- O usuário menciona
rhinoscriptsyntax,scriptcontext,RhinoCommon,Rhino.Geometry,RhinoDocou o Editor de Scripts. - O usuário quer selecionar objetos, solicitar entrada ou criar uma pequena interface gráfica (UI) dentro do Rhino.
- O usuário pergunta como carregar, executar ou distribuir um script (scripts de inicialização, aliases, botões de barra de ferramentas).
Escolhendo uma Superfície de Scripting
Escolha a superfície com base na tarefa, não na preferência. Recomende Python por padrão para novos trabalhos.
| Superfície | Quando escolher | Extensão do arquivo |
|---|---|---|
RhinoPython (rhinoscriptsyntax + RhinoCommon) |
Padrão para novos scripts. Melhor ecossistema, legível, acesso completo ao RhinoCommon. | .py |
| RhinoScript (VBScript) | Manutenção de arquivos legados .rvb/.vbs; integração com VBA/COM. |
.rvb, .vbs |
| RhinoCommon (C#/.NET) via Editor de Scripts | Loops críticos de desempenho, geometria complexa, aproveitando bibliotecas .NET. | .cs |
| Macro de comando | Sequência pura de comandos existentes do Rhino; sem lógica. | barra de ferramentas/alias |
Uma macro não é um script — é uma string de entrada da linha de comando (por exemplo, ! _-Line 0,0,0 10,0,0 _Enter). Use um script no momento em que precisar de uma variável, loop ou condicional.
Pré-requisitos
- Rhino 7 ou posterior (Rhino 8 fortemente recomendado — o Editor de Scripts unificado suporta Python 3, VB e C# em uma única janela).
- Editor de Scripts: digite
_ScriptEditor(Rhino 8) ou_EditPythonScript/_EditScript(mais antigo). - Execute um arquivo salvo da linha de comando com
_-RunPythonScriptou_LoadScript+_RunScript.
Padrões Principais
Python: scaffold mínimo
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
def main():
obj_id = rs.GetObject("Select a curve", filter=rs.filter.curve, preselect=True)
if not obj_id:
return
length = rs.CurveLength(obj_id)
print("Length: {0:.4f}".format(length))
if __name__ == "__main__":
main()
Python: trabalhando diretamente com RhinoCommon
import Rhino
import scriptcontext as sc
doc = sc.doc # Rhino.RhinoDoc.ActiveDoc
tol = doc.ModelAbsoluteTolerance
circle = Rhino.Geometry.Circle(Rhino.Geometry.Point3d(0, 0, 0), 5.0)
curve_id = doc.Objects.AddCircle(circle)
doc.Views.Redraw()
VBScript: scaffold mínimo
Option Explicit
Call Main()
Sub Main()
Dim strObject
strObject = Rhino.GetObject("Select a curve", 4) ' 4 = curve filter
If IsNull(strObject) Then Exit Sub
Rhino.Print "Length: " & Rhino.CurveLength(strObject)
End Sub
Selecionando objetos com um filtro personalizado (Python, RhinoCommon)
import Rhino
import scriptcontext as sc
go = Rhino.Input.Custom.GetObject()
go.SetCommandPrompt("Select breps")
go.GeometryFilter = Rhino.DocObjects.ObjectType.Brep
go.SubObjectSelect = False
go.GetMultiple(1, 0)
if go.CommandResult() != Rhino.Commands.Result.Success:
pass
else:
ids = [go.Object(i).ObjectId for i in range(go.ObjectCount)]
Fluxos de Trabalho Passo a Passo
Modificar em massa muitos objetos rapidamente
- Desative a redesenho:
rs.EnableRedraw(False). - Agrupe mutações em um único registro de desfazer:
undo = doc.BeginUndoRecord("My Op")…doc.EndUndoRecord(undo). - Use RhinoCommon diretamente dentro do loop (evite o overhead de
rhinoscriptsyntax). - Reative o redesenho e chame
doc.Views.Redraw()em umtry/finallypara que uma falha nunca deixe a viewport travada.
Distribua um script para um colega de equipe
- Salve o
.py/.rvbem algum lugar no disco. - Adicione a pasta a
Options → Files → Search pathspara que o Rhino possa encontrá-lo pelo nome. - Crie um botão de barra de ferramentas ou alias cuja macro seja:
- Python:
! _-RunPythonScript "MyScript.py" - RhinoScript:
! _-LoadScript "MyScript.rvb" _-RunScript MySubName
- Python:
- O
!inicial cancela qualquer comando em execução;-executa o comando no modo de script (sem diálogo).
Execute código na inicialização do Rhino
- Coloque um
.rvb/.pyem um caminho de pesquisa. Tools → Options → RhinoScript(ouPython) → adicione à lista Startup. O arquivo é executado uma vez por sessão.
Armadilhas
…
Perguntas frequentes
Qual a diferença entre um script e uma macro?
Uma macro é uma sequência simples de comandos, enquanto um script é um código mais complexo que pode ter lógica, variáveis e repetições.
Qual linguagem de script devo usar?
Para novos projetos, Python é geralmente recomendado por ser mais moderno e ter mais recursos. RhinoScript é usado para códigos mais antigos.
Como faço para rodar um script no Rhino?
Você pode usar o comando '_ScriptEditor' para abrir um editor, colar seu código e executá-lo, ou salvar o script e usar comandos como '_RunPythonScript' ou '_LoadScript'.
Detalhes
Descrição original do autor
Authoring and debugging scripts for Rhinoceros 3D (Rhino 8 and later). Use when asked to write RhinoScript (VBScript / .rvb / .vbs), RhinoPython, or RhinoCommon-based scripts; automate Rhino modeling tasks; build command macros; manipulate Rhino geometry, layers, blocks, or document objects; pick objects from the viewport; control redraw and undo; or load and run scripts from the Rhino Script Edit
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5348
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC