Archi-Cadlinkeuses, Archi-Cadlinkeurs,
Vous êtes les bienvenus.
Ce forum, ouvert depuis le mois de novembre 2018, a pour objectif, vocation et ambition de répondre à toutes vos interrogations sur l'outil logiciel ArchiCAD®, développé par GRAPHISOFT© (au delà des canaux officiels type forum éditeur, distributeurs, revendeurs... et des "baratins commerciaux" ! ;-)).
Ce lieu souhaite également créer du lien entre ses utilisateurs.
Il s'adresse à tous, du débutant a l'expert, et repose exclusivement sur le bénévolat collaboratif et participatif.
Pour éviter toutes pertes de cette future base de connaissances et la pérenniser, ce forum est géré, administré, développé et financé par une association loi 1901 à but non lucratif. Vous pouvez sur demande adhérer a l'association comme membre actif, moyennent une cotisation faible et attractive ( de 1 € a votre bon coeur ! )
Cet espace auto financé est sans contrainte d'intérêts commerciaux tiers. Il est donc indépendant et libre.
Il est entièrement dédié aux utilisateurs (dessinateur-projeteur, technicien, maitre d’œuvre, collaborateur d'architecte, architecte, ingénieur, etc...).
Il s'adresse donc aux acteurs "sur le terrain", qui conçoivent, produisent, réalisent, diffusent, des publications numériques et/ou "papier", avec ce logiciel.
Les accès au site et à ses différentes rubriques sont entièrement libres et gratuits. Les pièces téléchargeables et le droit à poster exigent l'inscription.
Merci de remplir IMPERATIVEMENT dans les champs de votre profil:
1/ votre numéro de version d'ArchiCAD® (de la 4.5 à la 26 !)
2/ votre OS (Mac ou Windows)
3/ votre localisation
C'est uniquement fait pour faciliter la pertinence des réponses et les échanges.
La rubrique "Je me présente" vous permettra d'accéder à de nouveaux salons permettant le téléchargement d'objets mis à disposition et de quelques autres goodies à venir. Elle vous permet également de vous géolocaliser sur une carte interactive, un lien vous est fourni. Vous avez peut être une ou un collègue près de là où vous exercez !
Les membres du bureau 2023 sont :
David, Felipe, Maël, Nicolas, Pierre, Sam, Simon, Yves
Vous êtes les bienvenus.
Ce forum, ouvert depuis le mois de novembre 2018, a pour objectif, vocation et ambition de répondre à toutes vos interrogations sur l'outil logiciel ArchiCAD®, développé par GRAPHISOFT© (au delà des canaux officiels type forum éditeur, distributeurs, revendeurs... et des "baratins commerciaux" ! ;-)).
Ce lieu souhaite également créer du lien entre ses utilisateurs.
Il s'adresse à tous, du débutant a l'expert, et repose exclusivement sur le bénévolat collaboratif et participatif.
Pour éviter toutes pertes de cette future base de connaissances et la pérenniser, ce forum est géré, administré, développé et financé par une association loi 1901 à but non lucratif. Vous pouvez sur demande adhérer a l'association comme membre actif, moyennent une cotisation faible et attractive ( de 1 € a votre bon coeur ! )
Cet espace auto financé est sans contrainte d'intérêts commerciaux tiers. Il est donc indépendant et libre.
Il est entièrement dédié aux utilisateurs (dessinateur-projeteur, technicien, maitre d’œuvre, collaborateur d'architecte, architecte, ingénieur, etc...).
Il s'adresse donc aux acteurs "sur le terrain", qui conçoivent, produisent, réalisent, diffusent, des publications numériques et/ou "papier", avec ce logiciel.
Les accès au site et à ses différentes rubriques sont entièrement libres et gratuits. Les pièces téléchargeables et le droit à poster exigent l'inscription.
Merci de remplir IMPERATIVEMENT dans les champs de votre profil:
1/ votre numéro de version d'ArchiCAD® (de la 4.5 à la 26 !)
2/ votre OS (Mac ou Windows)
3/ votre localisation
C'est uniquement fait pour faciliter la pertinence des réponses et les échanges.
La rubrique "Je me présente" vous permettra d'accéder à de nouveaux salons permettant le téléchargement d'objets mis à disposition et de quelques autres goodies à venir. Elle vous permet également de vous géolocaliser sur une carte interactive, un lien vous est fourni. Vous avez peut être une ou un collègue près de là où vous exercez !
Les membres du bureau 2023 sont :
David, Felipe, Maël, Nicolas, Pierre, Sam, Simon, Yves
Mise à l'échelle aléatoire
- Simon
- Site Admin
- Messages : 807
- Inscription : 14 nov. 2018 16:18
- Localisation : Saint Etienne
- Version d'Archicad : 25
- A remercié : 140 fois
- A été remercié : 204 fois
- Contact :
Re: Mise à l'échelle aléatoire
Ton point chaud est forcément relié à un paramètre, et il ne peut pas avoir une valeur graphique différente de sa valeur numérique.
De ce que je comprends de tes souhaits, tu devras forcément passer par un paramètre intermédiaire...
Peut-être possible si c'est la base de ton point chaud qui se déplace en fonction de la valeur aléatoire ?
De ce que je comprends de tes souhaits, tu devras forcément passer par un paramètre intermédiaire...
Peut-être possible si c'est la base de ton point chaud qui se déplace en fonction de la valeur aléatoire ?
Windows 10 - Archicad 22 - Sketch'up
Thearender - Lumion
GDL Addict !
Thearender - Lumion
GDL Addict !
- Soubout
- Messages : 678
- Inscription : 07 févr. 2019 10:38
- Localisation : Ergué-Gabéric Finistère
- Version d'Archicad : AC26
- A remercié : 117 fois
- A été remercié : 140 fois
Re: Mise à l'échelle aléatoire
Question bête : As-tu besoin de B ? Si A et B sont toujours égaux tu peux virer B et utiliser seulement A.
AC de 12 à 26, MacOS 11.6.8 (Windows 10 à la maison)
-
- Messages : 94
- Inscription : 15 oct. 2019 17:29
- Localisation : La Seyne-sur-Mer
- Version d'Archicad : 25
- A remercié : 9 fois
- A été remercié : 9 fois
Re: Mise à l'échelle aléatoire
-1- Dans ta simplification par carré :
Je pense qu'il y a confusion entre 2 concepts .
Ton "halfA" est un parametre donc fixe et non soumis à ton random . Il fait varier la taille globale mais reste indépendant de la taille finale à la quelle le random est appliqué. (voir réponse de Simon)
tu peux t'en apercevoir sur ta première image ou il apparait tantôt dedans tantôt dehors du carré.
En complément du script de Yves si tu veux que ton point reste sur le bord du carré tu devrais remplacer le x du moving par "A" au lieu de "halfA" .
Mais attention cette manipulation reste théorique et il y a de forte chance que la manip ne donne pas ce que tu attends
En effet, dans le meilleur des cas, tu risque d'obtenir un point chaud inopérant ou chaotique: dès que tu va commencer à le bouger il va recalculer le A avec le random et le déplacer hors de ta souris. Tant que tu tiendra le bouton enfoncer ça marchera mais si tu relâche accidentellement ton point chaud va se replacer selon le random. comme quand on se trompe sur la position du point de référence et que le point se déplace à l'inverse de la souris. Pas très "user friendly" en somme mais à tester.
Dans le pire des cas il risque de te créer un boucle sans fin pour calculer A. mais je penche quand même pour la première hypothèse.
Ton retour de tes sera intéressant à lire...
Du coup il te reste 2 questions à te poser pour finaliser ta direction d'écriture de script :
-- Quel est le but du Hotspot ?
-- Ai-je vraiment besoin que ce Hotspot soit à ce point précis sur sa position ?
Parce que, au final, comme il reste invisible tant que l'objet n'est pas sélectionné, si il sert (comme j'en ai l'impression) qu'à une définition approximative de la taille c'est ou autant évident ,"parlant", pour l'utilisateur final qu'il soit pas à sa place.
Sinon tu as une alternative :
Supprime l'aléatoire de A
En script PRINCIPAL
crée autant de valeur qui seront précalculées aléatoirement puis tu les classes (j'ai plus le script sous la main)
et tu donne en script PARAMETRE
Dès lors ton point chaud restera sur le bord et la taille variera selon des "step" aléatoires.
-2- Défini au mieux tes attentes pour ton objet final d'arbres aléatoires.
À mon sens, l'usage d'aléatoire et de point chaud est antinomique puisque par définition les point chaud sont fait pour contrôler ce qu'on fait.
Défini une "histoire" de l'usage qui te renseignera au mieux sur comment écrire l'ensemble.
par exemple dans ton cas l'histoire que j'imagine est la suivante:
On place plusieurs arbres dont la taille sera aléatoire au moment de la pose. Puis pour modifier la taille inapproprié d'un ou plusieurs de ces arbres l'utilisateur à la main libre pour éditer graphiquement la taille (à ce moment plus besoin de l'aléatoire) ...
Mais ce n'est qu'un scénario parmi d'autre il n'y a que toi qui peut le déterminer...
Je pense qu'il y a confusion entre 2 concepts .
Ton "halfA" est un parametre donc fixe et non soumis à ton random . Il fait varier la taille globale mais reste indépendant de la taille finale à la quelle le random est appliqué. (voir réponse de Simon)
tu peux t'en apercevoir sur ta première image ou il apparait tantôt dedans tantôt dehors du carré.
En complément du script de Yves si tu veux que ton point reste sur le bord du carré tu devrais remplacer le x du moving par "A" au lieu de "halfA" .
Mais attention cette manipulation reste théorique et il y a de forte chance que la manip ne donne pas ce que tu attends
En effet, dans le meilleur des cas, tu risque d'obtenir un point chaud inopérant ou chaotique: dès que tu va commencer à le bouger il va recalculer le A avec le random et le déplacer hors de ta souris. Tant que tu tiendra le bouton enfoncer ça marchera mais si tu relâche accidentellement ton point chaud va se replacer selon le random. comme quand on se trompe sur la position du point de référence et que le point se déplace à l'inverse de la souris. Pas très "user friendly" en somme mais à tester.
Dans le pire des cas il risque de te créer un boucle sans fin pour calculer A. mais je penche quand même pour la première hypothèse.
Ton retour de tes sera intéressant à lire...
Du coup il te reste 2 questions à te poser pour finaliser ta direction d'écriture de script :
-- Quel est le but du Hotspot ?
-- Ai-je vraiment besoin que ce Hotspot soit à ce point précis sur sa position ?
Parce que, au final, comme il reste invisible tant que l'objet n'est pas sélectionné, si il sert (comme j'en ai l'impression) qu'à une définition approximative de la taille c'est ou autant évident ,"parlant", pour l'utilisateur final qu'il soit pas à sa place.
Sinon tu as une alternative :
Supprime l'aléatoire de A
En script PRINCIPAL
Code : Tout sélectionner
DIM random_range[]
et tu donne en script PARAMETRE
Code : Tout sélectionner
VALUES "halfA" random_range
-2- Défini au mieux tes attentes pour ton objet final d'arbres aléatoires.
À mon sens, l'usage d'aléatoire et de point chaud est antinomique puisque par définition les point chaud sont fait pour contrôler ce qu'on fait.
Défini une "histoire" de l'usage qui te renseignera au mieux sur comment écrire l'ensemble.
par exemple dans ton cas l'histoire que j'imagine est la suivante:
On place plusieurs arbres dont la taille sera aléatoire au moment de la pose. Puis pour modifier la taille inapproprié d'un ou plusieurs de ces arbres l'utilisateur à la main libre pour éditer graphiquement la taille (à ce moment plus besoin de l'aléatoire) ...
Mais ce n'est qu'un scénario parmi d'autre il n'y a que toi qui peut le déterminer...
-
- Messages : 799
- Inscription : 20 nov. 2018 23:36
- Localisation : Paris
- Version d'Archicad : 25
- A remercié : 270 fois
- A été remercié : 230 fois
Re: Mise à l'échelle aléatoire
Merci Markus pour tes retours.
J'ai pas mal retourné le script dans tous les sens, et je n'ai pas réussi a avoir le résultat souhaité, c'est à dire : un objet qui a une taille aléatoire de +/-10% de sa taille, avec possibilité de changer la taille manuellement (quitte à relancer le côté aléatoire avec cette nouvelle taille).
Avec tous mes essais, le côté aléatoire semble figé une fois l'objet posé : c'est à dire qu'en cas de changement dans l'objet (modification d'un paramètre par exemple) l'objet récupérait la même modification que précédemment ( au lieu d'avoir aléatoirement des modification de type + 5%, -2%, +3% .... avec une moyenne à +0%, l'objet subissait toujours -3% ou toujours +2%... jusqu'à atteindre une dimension et ne bougeait plus).
Je pense que la manière dont je vois/voyait l'objet n'est pas possible vu le fonctionnement du GDL et d'archicad.
L'usage d'un point chaud permettant de changer l'échelle semble en effet entrer en contradiction avec la génération de l'aléatoire.
J'ai pour le moment désactivé la taille aléatoire pour finaliser mon objet, et qu'il puisse avoir un fonctionnement "classique".
Je pense que je vais créer dans un second temps un "mode" aléatoire où on aura pas de points chauds et où la taille sera seulement générée par de l'aléatoire/faux aléatoire. Peut être que ce mode pourrait être activé via OVM?
Dans le "pire" des cas, la taille en mode aléatoire n'est accessible que dans le mode aléatoire (avec une dimensions A et B totalement différente et indépendante) , soit j'arrive à transmettre la valeur de l'aléatoire à A et B lorsque je quitte le mode aléatoire.
J'ai pas mal retourné le script dans tous les sens, et je n'ai pas réussi a avoir le résultat souhaité, c'est à dire : un objet qui a une taille aléatoire de +/-10% de sa taille, avec possibilité de changer la taille manuellement (quitte à relancer le côté aléatoire avec cette nouvelle taille).
Avec tous mes essais, le côté aléatoire semble figé une fois l'objet posé : c'est à dire qu'en cas de changement dans l'objet (modification d'un paramètre par exemple) l'objet récupérait la même modification que précédemment ( au lieu d'avoir aléatoirement des modification de type + 5%, -2%, +3% .... avec une moyenne à +0%, l'objet subissait toujours -3% ou toujours +2%... jusqu'à atteindre une dimension et ne bougeait plus).
Je pense que la manière dont je vois/voyait l'objet n'est pas possible vu le fonctionnement du GDL et d'archicad.
L'usage d'un point chaud permettant de changer l'échelle semble en effet entrer en contradiction avec la génération de l'aléatoire.
J'ai pour le moment désactivé la taille aléatoire pour finaliser mon objet, et qu'il puisse avoir un fonctionnement "classique".
Je pense que je vais créer dans un second temps un "mode" aléatoire où on aura pas de points chauds et où la taille sera seulement générée par de l'aléatoire/faux aléatoire. Peut être que ce mode pourrait être activé via OVM?
Dans le "pire" des cas, la taille en mode aléatoire n'est accessible que dans le mode aléatoire (avec une dimensions A et B totalement différente et indépendante) , soit j'arrive à transmettre la valeur de l'aléatoire à A et B lorsque je quitte le mode aléatoire.
Archicad 25 sous windows 10
- Yves Houssier
- Admin Moderateur
- Messages : 4731
- Inscription : 14 nov. 2018 17:17
- Localisation : Seraing - Belgique
- Version d'Archicad : ArchiCAD 23
- A remercié : 277 fois
- A été remercié : 960 fois
Re: Mise à l'échelle aléatoire
Salut Mathias,
Et si tu met tes valeurs aléatoires dans le script paramètre et que tu ajoute dans un de tes menus la fonction qui se trouve dans le menu développeur "Lancer script de paramètres sur éléments de bibliothèque placés" (Tu peux éventuellement lui assigner un raccourcis)
Il devrait normalement recalculer tes valeurs en lançant cette fonction
Et si tu met tes valeurs aléatoires dans le script paramètre et que tu ajoute dans un de tes menus la fonction qui se trouve dans le menu développeur "Lancer script de paramètres sur éléments de bibliothèque placés" (Tu peux éventuellement lui assigner un raccourcis)
Il devrait normalement recalculer tes valeurs en lançant cette fonction
ArchiCad depuis la 3.43 (1990) à la version 24. Projet en cours sur la 21 est la 23.
Mac Os 10.12 à 10.13
Mac Os 10.12 à 10.13
-
- Messages : 94
- Inscription : 15 oct. 2019 17:29
- Localisation : La Seyne-sur-Mer
- Version d'Archicad : 25
- A remercié : 9 fois
- A été remercié : 9 fois
Re: Mise à l'échelle aléatoire
@ Yves :
Plus de précision s'il te plait. Ça titille ma curiosité mais cette fonction et ce menu je ne sais pas ou les trouver...
@ Mathias :
En effet le GDL dérive du Basic, et comme lui, c'est un dinosaure des langage de programmation. À ce titre le Random n'en est pas vraiment un (au sens ou on l'entend dans les langages plus récent) et effectivement il a pour principal défaut de s'exécuter "une seule fois" et dans l'ordre d'écriture du script.
D'anciens objets, que je n'utilise plus, avaient dans l'UI une case et un bouton "Random Seed" soit : tu rentrais un chiffre manuellement qui servais de base au random soit tu cliquais sur le bouton qui te "créer" un random seed. mais à l'usage on s'apercevait que le bouton "bouclait" sur une vingtaine ou une trentaine de chiffre. Je ne sais plus où j'ai mis ces objets parce que j'étais sur la V10/11. Et parce que je ne me penchais pas sur le GDL à ce moment je ne peux pas t'en dire beaucoup plus mais il me semble que c'étaient des objets de nos amis italiens "Archiradar".
Il ne faut pas perdre de vue que le GDL est un langage linéaire et non "orienter objet" par conséquent sans un événement déclencheur il ne réinterprétera pas ta fonction RND. Ce qui te donne cette valeur "bloquée". Il y a bien quelques pistes pour changer cela mais là encore ça dépend de ton scénario d'usage.
En effet après usage des objets sus-cités je me suis aperçu d'un "paradoxe" de l'aléatoire. En effet le phantasme de "met-moi ça au hasard" à pour effet d'être "libérateur" en terme de charge mentale mais juste dans un premier temps. Quand tu aura posé , disons, vingt arbres générés aléatoirement. Sur ces vingt arbres il y en aura 5 qui te ferons ciller et que tu voudra reprendre. En admettant que tu puisse d'un simple clic les redéfinir (toujours aléatoirement) tu vas cliquer combien de fois avant de tomber sur un résultat qui te satisfasse ? Et au final tu réalises que de les définir de manière "maitrisées" est plus rapide... (bon d'accord j'exagère peut être un peu, Sud oblige).
D'où ma suggestion de : "l'aléatoire au premier clic c'est super mais après, ben, je suis pas sûr de l'intérêt..."
Ceci étant outre la piste de Yves il y a peut être 2 ou 3 astuces de randomisation du random pour arriver à tes fins...
Entre autre utiliser un second RND après un
Le RND est en effet lié au code temps de la machine (en miliseconde) donc en toute logique un second RND qui va se déclencher à la modification d'un paramètre va t'apporter un nouveau résultat...
Plus de précision s'il te plait. Ça titille ma curiosité mais cette fonction et ce menu je ne sais pas ou les trouver...
@ Mathias :
En effet le GDL dérive du Basic, et comme lui, c'est un dinosaure des langage de programmation. À ce titre le Random n'en est pas vraiment un (au sens ou on l'entend dans les langages plus récent) et effectivement il a pour principal défaut de s'exécuter "une seule fois" et dans l'ordre d'écriture du script.
D'anciens objets, que je n'utilise plus, avaient dans l'UI une case et un bouton "Random Seed" soit : tu rentrais un chiffre manuellement qui servais de base au random soit tu cliquais sur le bouton qui te "créer" un random seed. mais à l'usage on s'apercevait que le bouton "bouclait" sur une vingtaine ou une trentaine de chiffre. Je ne sais plus où j'ai mis ces objets parce que j'étais sur la V10/11. Et parce que je ne me penchais pas sur le GDL à ce moment je ne peux pas t'en dire beaucoup plus mais il me semble que c'étaient des objets de nos amis italiens "Archiradar".
Il ne faut pas perdre de vue que le GDL est un langage linéaire et non "orienter objet" par conséquent sans un événement déclencheur il ne réinterprétera pas ta fonction RND. Ce qui te donne cette valeur "bloquée". Il y a bien quelques pistes pour changer cela mais là encore ça dépend de ton scénario d'usage.
En effet après usage des objets sus-cités je me suis aperçu d'un "paradoxe" de l'aléatoire. En effet le phantasme de "met-moi ça au hasard" à pour effet d'être "libérateur" en terme de charge mentale mais juste dans un premier temps. Quand tu aura posé , disons, vingt arbres générés aléatoirement. Sur ces vingt arbres il y en aura 5 qui te ferons ciller et que tu voudra reprendre. En admettant que tu puisse d'un simple clic les redéfinir (toujours aléatoirement) tu vas cliquer combien de fois avant de tomber sur un résultat qui te satisfasse ? Et au final tu réalises que de les définir de manière "maitrisées" est plus rapide... (bon d'accord j'exagère peut être un peu, Sud oblige).
D'où ma suggestion de : "l'aléatoire au premier clic c'est super mais après, ben, je suis pas sûr de l'intérêt..."
Ceci étant outre la piste de Yves il y a peut être 2 ou 3 astuces de randomisation du random pour arriver à tes fins...
Entre autre utiliser un second RND après un
Code : Tout sélectionner
IF GLOB_MODPAR_NAME
- Yves Houssier
- Admin Moderateur
- Messages : 4731
- Inscription : 14 nov. 2018 17:17
- Localisation : Seraing - Belgique
- Version d'Archicad : ArchiCAD 23
- A remercié : 277 fois
- A été remercié : 960 fois
Re: Mise à l'échelle aléatoire
SalutMarkus,
Par ici
Par ici

Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ArchiCad depuis la 3.43 (1990) à la version 24. Projet en cours sur la 21 est la 23.
Mac Os 10.12 à 10.13
Mac Os 10.12 à 10.13