Lors du calcul du coût d'une nouvelle cuisine, le prix était si élevé que j'ai décidé de le faire moi-même car cela coûterait la moitié du prix. Pour la formation, j'ai décidé de me faire un bureau. Comprendre assez rapidement: pour faire une bonne chose, vous devez faire un modèle 3D. Cela nous permettra au stade de la conception de voir à quoi ressemblera le mobilier et de réfléchir à la façon dont l'assemblage se déroulera à l'avenir. Comme je ne fais pas de modélisation 3D, j'ai commencé à chercher un programme plus simple. Et la chose la plus simple trouvée par SketchUp . Lors de la création d'un modèle, je devais constamment modifier le modèle en raison des tailles en constante évolution. Et après le troisième changement, l'idée est venue - faire un modèle paramétré pour qu'il soit lui-même généré avec les bonnes tailles. SketchUp prend en charge les scripts Ruby et cet article concerne ce que j'ai fait.
La solution est assez simple - je crée une API qui vous permet de créer des objets 3D de feuilles d'aggloméré avec les paramètres nécessaires. Le modèle fini est assemblé à partir de ces objets, et les tailles de feuilles sont téléchargées dans un fichier séparé pour les transférer au centre de coupe. À la suite de l'opération, j'ai ajouté la possibilité de spécifier les bords des feuilles. Ce plugin a été utilisé pour concevoir plus d'une douzaine de produits différents en aggloméré. Avec chaque nouveau projet, le plugin a été affiné et modifié, la convivialité a été améliorée et l'API a été améliorée. À titre d'exemple, le dernier projet est un guéridon. Sur la photo, le modèle + produit fini (oiseau et chien pour attirer l'attention :))

Le rouge a des bords de 2 mm, le violet des bords de 0,4 mm. Les étagères inférieures ne sont pas à la fin, car il y a une batterie de chauffage près du mur. Le plan de travail est à 4 cm derrière le mur afin que la chaleur de la batterie de chauffage augmente et chauffe le mur ( en général, il est très pratique de fabriquer des meubles vous-même - vous pouvez le faire à votre taille ).
voici le code pour le générer L'installation
Téléchargez le fichier Object3D.rbz
Lancez SketchUp
Ouvrez le gestionnaire d'extensions (Window / Extension Manager)
Cliquez sur le bouton "Installer l'extension" et sélectionnez le fichier Object3D.rbz téléchargé
Après cela, le plugin demande un répertoire où les projets seront stockés. C'est-à-dire la fenêtre "Spécifiez le répertoire avec les projets" s'affiche et vous devez spécifier le dossier dans lequel vous stockerez vos projets.
En conséquence, nous avons notre extension

Utiliser
Accédez au dossier que nous avons spécifié pour stocker les projets. Ce dossier peut être modifié dans le menu du plugin

Créez un répertoire dans le dossier avec le nom de notre projet. Dans mon cas, c'est le "Locker in the hall". Ensuite, nous allons dans le répertoire créé et créons le fichier main.rb dans lequel nous créons la fonction de point d'entrée
Nous redémarrons SketchUp et dans le menu du plugin, vous verrez un élément avec le nom du dossier que vous avez créé. Maintenant que vous sélectionnez cet élément, les événements suivants se produisent:
- nettoyage de la console Ruby
- supprimer tous les éléments du projet en cours
- chargement du fichier main.rb à partir du répertoire spécifié
- appel de fonction object3D_main
Dans la fonction object3D_main, vous devez générer la génération de votre modèle. Vous pouvez copier le code que j'ai donné ci-dessus dans le fichier main.rb, puis mon casier sera généré.
API
Fichier "core.rb"
Chaque fonction renvoie un objet Shasoft :: Object3D :: Object3D qui contient des méthodes pour déplacer l'objet et le faire pivoter
Nom de la fonction () - définition du nom de l'objet. Ne les négligez pas. Lors de l'assemblage, cela peut aider beaucoup :)
Les fonctions de l'objet moveX , moveY , moveZ vous permettent de déplacer l'objet le long des axes correspondants.
La fonction de déplacement (x, y, z) vous permet de déplacer un objet le long de trois axes à la fois
Les fonctions d'objet RotateX , RotateY , RotateZ vous permettent de faire pivoter l'objet autour des axes correspondants.
Il existe des alias de fonctions moveRed , moveGreen , moveBlue , RotateRed , RotateGreen , RotateBlue où les axes X (rouge), Y (vert), Z (bleu) sont nommés par leur couleur dans SketchUp. Peut-être que quelqu'un sera plus à l'aise.
Chaque fonction renvoie un pointeur sur l'objet lui-même. Cela vous permet de faire une chaîne d'appel.
La fonction d'objet set (dict, key, value) vous permet de définir la valeur d'attribut. dict - nom du dictionnaire, clé - nom de l'attribut, valeur - valeur
La fonction de l'objet get (dict, key, value = nil) vous permet d'obtenir la valeur de l'attribut. dict - nom du dictionnaire, clé - nom de l'attribut, valeur - valeur
La méthode de copie vous permet d'obtenir une copie de l'objet (bien que cela ne fonctionne pas de manière très stable :))
La méthode group vous permet d'obtenir un objet SketchUp :: Group standard.
Une méthode de création d'un objet est définie. Vous pouvez passer une liste d'objets Shasoft :: Object3D :: Object3D ou SketchUp :: Group en tant que paramètres. Si la liste des paramètres est vide, un nouveau groupe sera créé.
Il existe également une fonction qui vous permet d'obtenir une liste d'objets (Skechup :: Group). Vous pouvez spécifier le nom du dictionnaire et seuls les objets qui ont un tel dictionnaire seront retournés. En particulier, c'est ainsi que je sépare les objets de la feuille d'aggloméré des autres. Lors de la création, j'installe le dictionnaire LDSP par lequel puis et filtre tous les objets de la scène.
Fichier 2D_weght
Fichier "ldsp.rb"
Fonction auxiliaire pour créer des tiroirs
résultat de travail

en conséquence, le prochain fichier csv sera généré avec les colonnes suivantes
- A - Largeur
- B - Profondeur
- C Nombre de pièces
- D - bords au format côté long D, côté K court. C'est en cela qu'ils sont enregistrés dans le bureau dans lequel je commande une coupe de pièces. C'est peut-être la norme.
- E - bords au format dans lequel vous les avez définis lors de la génération
- F - Nom de toutes les pièces. Ceci est utile lors de la construction.

En conclusion
Concevoir et assembler des meubles vous fait économiser environ 2 fois. Et aussi la possibilité de presser vos meubles individuels dans n'importe quel trou non standard de l'appartement. Je récupère généralement des meubles sur des confirmations 7x50 en aggloméré de 16 mm

S'il y a des exercices de confirmation

(et une petite compétence) l'assemblage ne prend pas beaucoup de temps.
Le seul point négatif est que vous pouvez vous impliquer . Après le bureau, j'ai déjà assemblé: une cuisine, plusieurs cages (pour le même oiseau c'est sur la photo), des étagères (mur et sol), des armoires et des tables. En général, il «encombrait» tous les endroits inutilisés de l'appartement.
Télécharger le lien d'extension
Lien vers la page du plugin