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 ( entre 5 et 10 € )

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 23!)
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 Administrateurs :

David, Felipe, Maël, Nicolas, Pierre, Sam, Simon, Yves


PS :
Notre association a perdu son vice président, Frederic Deschamp alias FMR le 15 Août 2019.

Remerciement à Eric Wilk pour sa confiance renouvelée aux "irréductibles"

Ajout de pastille RF (en 2D) sur porte Archicad

Les trucs un peu plus complexes, le cœur des objets paramétriques
cédric
Messages : 46
Inscription : 16 janv. 2019 15:12
Localisation : Belgique
Version d'Archicad : 22
Système d'exploitation : Windows

Ajout de pastille RF (en 2D) sur porte Archicad

Message par cédric »

Bonjour,

Je débute sur le GDL et je galère.
Avant de demander de l'aide, je me suis arraché les cheveux pour obtenir un résultat.
Ce résultat, j'aimerais l'améliorer.

Mon objectif :
Ajouter une pastille RF1/2h ou RF1h sur l'affichage en plan d'une porte de la bibliothèque standard d’ArchiCAD.

Je suis sur ArchiCAD 25 et j'ai copié la "porte 25" avant d'y ajouter quelques lignes de codes.
Je ne travaille que sur le plan (en 2D) et n'ai donc ajouté du code que sur le script 2D.
Pour définir si la pastille est RF1/2h ou RF 1h, pour le moment, je passe par le paramètre existant sur cette porte "gs_list_firerating " (degré de protection au feu)

Voici mon premier résultat :

Image

Et voici le code que j'ai ajouté dans le script 2D :

Code : Tout sélectionner

ang=gs_open_2D         ! angle d'ouverture
dec=gs_frame_width     ! décalage de l'ouverture
bat=ac_leaf_width      ! largeur du battant


IF gs_list_firerating="30" then
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.06
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.005,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.01,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.015,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.02,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.025,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.03,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.035,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.04,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.045,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.05,-45,135
arc2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.055,-45,135
ENDIF

IF gs_list_firerating="60" then
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.005
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.01
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.015
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.02
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.025
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.03
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.035
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.04
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.045
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.05
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.055
circle2 bat/2-bat*cos(ang/2),bat*sin(ang/2),.06
ENDIF
Question 1 :
Comme on peut le voir sur l'image ci-dessus, les pastilles sont en fait composées de plusieurs arcs de cercle (ou de cercles) dessiné les uns à la suite des autres en augmentant chaque fois le rayon.
Quel serait le code pour dessiner la surface plaine d’un cercle et d'un demi-cercle ?

Question 2 :
J'ai utilisé un paramètre existant déjà pour choisir le type de pastille à dessiner mais ce n'est pas du tout idéal.
Je souhaiterais ajouter un paramètre personnalisé à la "porte 25".
Je n'y suis pas arrivé. Est-ce possible ?
Si oui, comment faut-il ajouter ce paramètre pour qu'il soit ensuite visible ?
Dernière modification par cédric le 11 oct. 2021 10:23, modifié 1 fois.

Avatar de l’utilisateur
Yves Houssier
Admin Moderateur
Messages : 3603
Inscription : 14 nov. 2018 17:17
Localisation : Seraing - Belgique
Version d'Archicad : ArchiCAD 21
Système d'exploitation : MacOs 10.12
A remercié : 150 fois
A été remercié : 571 fois

Re: Ajout de pastille RF (en 2D) sur porte Archicad

Message par Yves Houssier »

Bonjour Cédric,

Voici les codes pour une hachure
Pour ajouter une variable à l'interface c'est très très compliqué dans les objets Graphisoft pour cela il faudrait modifier la (les) macro(s)

Code : Tout sélectionner

PEN styl_contour

SET FILL ma_hach

!!!!!DEMI CERCLE

POLY2_B 3,1+2+4, styl_hach, styl_hach_fon,
-A/2,0,8,
0,0,915,
A/2,180,4015

!!!!!CERCLE

POLY2_B 3,1+2+4+8, styl_hach, styl_hach_fon,
0,0,915,
A/2,360,4015,
A/2,360,4015
ArchiCad depuis la 3.43 (1990) à la version 22. Projet en cours sur la 19 est la 21.
Mac Os 10.6 à 10.12

cédric
Messages : 46
Inscription : 16 janv. 2019 15:12
Localisation : Belgique
Version d'Archicad : 22
Système d'exploitation : Windows

Re: Ajout de pastille RF (en 2D) sur porte Archicad

Message par cédric »

Merci pour la réponse.
J'abandonne l'idée d'ajouter un paramètre pour l'instant.

Malgré que j'ai les lignes de codes je continue à galérer.
(J'ai pourtant le guide de référence à côté de moi)


1) Pour la pastille avec l'arc de cercle, j'ai obtenu ce résultat :
Image
En suivant ce code :

Code : Tout sélectionner

SET FILL fond
ROT2 135
POLY2_B 3,1+2+4, 1, 1,
        -.07,0,0,
        0,0,915,
        .07,180,4015
ROT2 180
POLY2_B 3,1+2+4, 1, 19,
        -.07,0,0,
        0,0,915,
        .07,180,4015
CIRCLE2 0,0,.07
Je fais 2 arcs de cercles pour avoir 2 parties pleines (ici une noir -stylo1- et un blanche -stylo19-)
Je rajoute le code du cercle sinon la hachure n'a pas de contour.
N'est-il pas possible d'avoir le contour de l'arc de cercle directement dans le code "POLY2_B" ?


2) Pour le cercle, je ne parviens pas à remplir la hachure (ça reste vide.)
J'obtiens ce résultat :
Image
En suivant ce code:

Code : Tout sélectionner

PEN 1
SET FILL Fond
POLY2_B 3,1+2+4+8, 1, 1,
        0,0,915,
        .07,360,4015,
        .07,360,4015
Comment puis-je remplir la hachure ?
De plus, est-il nécessaire de préciser en début de code le stylo (PEN 1) alors qu'il me semble que celui-ci est redéfini dans le code "POLY2_B" ?

Avatar de l’utilisateur
Yves Houssier
Admin Moderateur
Messages : 3603
Inscription : 14 nov. 2018 17:17
Localisation : Seraing - Belgique
Version d'Archicad : ArchiCAD 21
Système d'exploitation : MacOs 10.12
A remercié : 150 fois
A été remercié : 571 fois

Re: Ajout de pastille RF (en 2D) sur porte Archicad

Message par Yves Houssier »

Bonjour,

Désolé pour le cercle un copier/coller trop rapide de ma part

le code que je t'avais mal écrit c'est pour un Donut :lol: :lol: :lol:

POLY2_B 3,2+4,styl_hach,0,
0,0,915,
A/2+long_zon,360,4015,
A/2,360,4015
Capture d’écran 2021-10-12 à 12.22.16.png

Voici le bon code pour le cercle

Code : Tout sélectionner

POLY2_B 2,1+2+4, 1, 1,
        0,0,915,
        0.07,360,4015

Le stylo avant le POLY2_B c'est le stylo du contour de la hachure
Et dans POLY2_B 2,1+2+4 le 1 (en rouge) correspond au contour si tu le supprime en mettant 2+4 tu aura une hachure sans contour
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ArchiCad depuis la 3.43 (1990) à la version 22. Projet en cours sur la 19 est la 21.
Mac Os 10.6 à 10.12

cédric
Messages : 46
Inscription : 16 janv. 2019 15:12
Localisation : Belgique
Version d'Archicad : 22
Système d'exploitation : Windows

Re: Ajout de pastille RF (en 2D) sur porte Archicad

Message par cédric »

Merci Yves, cette fois ça fonctionne.
Et puis, le coup du donut, ça m'aura tout de même permis de comprendre un peu mieux ce qui se passe au niveau du code. ^^


Voici le résultat :
Image

Et le code :

Code : Tout sélectionner

ang=gs_open_2D         ! angle d'ouverture
dec=gs_frame_width     ! décalage de l'ouverture
bat=ac_leaf_width      ! largeur du battant

PEN 1                 ! Stylo contour de pastille
SET FILL fond         ! hachure de la pastille

!!!!!! Code Pastille EI30

IF gs_list_firerating="30" and ang>25 then
ADD2 bat/2-bat*cos(ang/2),bat*sin(ang/2)
ROT2 135
POLY2_B 3,1+2+4, 1, 1,
        -.07,0,0,
        0,0,915,
        .07,180,4015
ROT2 180
POLY2_B 3,1+2+4, 1, 19,
        -.07,0,0,
        0,0,915,
        .07,180,4015
CIRCLE2 0,0,.07
ENDIF

IF gs_list_firerating="30" and ang<=25 then
ADD2 bat/2-(bat*cos(ang))/2,(bat*sin(ang))/2
ROT2 135
POLY2_B 3,1+2+4, 1, 1,
        -.07,0,0,
        0,0,915,
        .07,180,4015
ROT2 180
POLY2_B 3,1+2+4, 1, 19,
        -.07,0,0,
        0,0,915,
        .07,180,4015
CIRCLE2 0,0,.07
ENDIF

!!!!!! Code Pastille EI60

IF gs_list_firerating="60" and ang>25 then
ADD2 bat/2-bat*cos(ang/2),bat*sin(ang/2)
POLY2_B 2,1+2+4, 1, 1,
        0,0,915,
        0.07,360,4015
ENDIF

IF gs_list_firerating="60" and ang<=25 then
ADD2 bat/2-(bat*cos(ang))/2,(bat*sin(ang))/2
POLY2_B 2,1+2+4, 1, 1,
        0,0,915,
        0.07,360,4015
ENDIF

Peut-on changer l'ordre d'affichage en GDL ?

Sur l'image du résultat, on voit que la pastille en arc est derrière les traits du battant.
(Il y a bien une trame sur la partie blanche de la pastille, on voit d'ailleurs que celle-ci passe devant la ligne d'ouverture.)
J'aimerais que ma pastille soit partout en avant plan, est-ce possible ?

Avatar de l’utilisateur
Yves Houssier
Admin Moderateur
Messages : 3603
Inscription : 14 nov. 2018 17:17
Localisation : Seraing - Belgique
Version d'Archicad : ArchiCAD 21
Système d'exploitation : MacOs 10.12
A remercié : 150 fois
A été remercié : 571 fois

Re: Ajout de pastille RF (en 2D) sur porte Archicad

Message par Yves Houssier »

Regarde dans le guide du côté de DRAWINDEX
ArchiCad depuis la 3.43 (1990) à la version 22. Projet en cours sur la 19 est la 21.
Mac Os 10.6 à 10.12

cédric
Messages : 46
Inscription : 16 janv. 2019 15:12
Localisation : Belgique
Version d'Archicad : 22
Système d'exploitation : Windows

Re: Ajout de pastille RF (en 2D) sur porte Archicad

Message par cédric »

Super, j'ai le résultat souhaité.
Merci Yves.
Image

Répondre