Aller au contenu

GautierVsr

Membres
  • Compteur de contenus

    15
  • Inscription

  • Dernière visite

Tout ce qui a été posté par GautierVsr

  1. Update ! J'ai trouvé la solution...toute simple...il suffit de verrouiller le plan de ref à l'aide de la punaise dans l'onglet de fonction modifier. En espérant en avoir aidé certains. GautierVsr
  2. Merci @JPhil pour ta réponse mais cela ne fonctionne toujours pas. Je pense la solution serait vraiment de figer la position du plan de référence situé au milieu du libellé de largeur. Ce la permettrait à ce que le point d'insertion de la famille ne bouge pas. Pour ce faire, j'ai renseigné ces 2 plan de références biais qui se croisent au milieu comme "origine" et "référence gauche/droite" et "haut/bas". Mais rien n'y fait. Cordialement, GautierVsr
  3. Bonjour, Je fais une famille paramétrique Revit, un parallélépipède tout simple. J'ai 2 libellés : -la hauteur avec ses 2 côtes égales, toutes les deux attachées au milieu, au plan de référence horizontal présent par défaut dans la famille modèle générique métrique -la longueur avec ses 2 côtés égales, toutes les deux attachées a un plan de référence que j'ai créé Mon soucis, c'est lorsque je fais varier ma hauteur, tout va bien, l'objet varie de part et d'autre (en haut et en bas), en revanche, quand je fais varier la largeur, l'objet ne s'étire que du côté droit ! Et pour garder les 2 côtes égaux, ma ligne de référence créée se décale elle aussi (capture2). J'aimerai donc fixer la position de ce plan de référence là ! Tout comme les plans de référence de base le sont ! Mais impossible de les copier coller ou même déplacer. Ci-joint capture 1 et 2 + famille RVT 2022 Merci par avance pour votre aide. GautierVsr famille dalle.rfa
  4. Bonjour à tous, Voici un plugin Russe permettant la mise à plat de chaque solide 3D : https://apps.autodesk.com/ACD/fr/Detail/Index?id=4521520962883858766&appLang=en&os=Win32_64 Cela est donc possible ! P.S : est-il possible de rentrer dans le code de ce plugin et de s'inspirer de la méthode utilisée ?
  5. Bonjour @didier, En guise de première étape, extraire la plus grande surface d'un solide ne me semble pas insurmontable, puisque la commande "aire" par "objet" fait la somme de toutes les surfaces de l'objet. Si on arrivait à avoir le code lisp de cette commande, il "suffirait" d'extraire la plus grande de toutes plutôt que des les additionner. Qu'en dites vous ? Chaleureusement, Gautier
  6. Bonjour, néophyte sur Lisp et dans le cadre d'un projet, je cherche à extraire la plus grande des surfaces d'un solide3D et à l'aligner avec le plan (o, x, y) du SCG. J'ai plusieurs manipulations possibles que je fais manuellement sur l'espace graphique et qui pourraient être retranscrites en Lisp : sur un solide3D, je définis ou nouvel SCU par face en le posant sur sa face la plus grande. Je copie le solide, je reviens à mon SCG et je colle le solide. Ce nouveau solide aura sa face la plus grande alignée avec le SCG soit, avec la commande aligner3D, je sélectionne mon solide, je sélectionne 3 points de départ qui sont 3 de mes côtés constituants sa face la plus grande. Puis je sélectionne 3 points d'arrivée dans le vide (donc Z=0) et le solide se place avec sa face plane à (o, x, y) de mon SCG soit en utilisant le "moment principal et la directions X-Y-Z autour du centre de gravité" du solide. Ces données sont disponible à l'aide de la commande PROPMECA Je pense que les 2 premières sont les plus faciles à exploiter. Il faudrait donc dans un premier temps extraire l'aire la plus grande de toutes les surfaces composant le solide3D. Pour cela, la commande "aire" "objet" renvoie la somme des surfaces d'un objet. J'aimerais pouvoir en extraire uniquement la surface la plus grande. Puis seconde étape, aligner cette surface au plan (o, x ,y) de mon SCG. Est-ce que quelqu'un aurait une idée ? Un début de code ? En attendant vos retours ! 😄 Amicalement, Gautier
  7. 🙂
  8. Super, merci beaucoup @bonuscad! Il fallait effectivement que je définisse un nouvel objet à chaque fois en début de boucle repeat et que je redéfinisse correctement P1 à chaque "moulinage" dans la boucle
  9. Bonjour @didier, Un code corrigé serait bien, je comprendrai mes erreurs par la suite. Update, voici la dernière version de mon code qui s’exécute mais qui ne déplace pas les objets comme souhaité : (defun c:coffrage() (command "-purger" "tout" "*" "oui") (command "ZOOM" "etendu") (setq distance_deplacement (getreal "Renseigner ecartement des objets")) (setq p0 '(0.0 0.0)) (setq p1 '(distance_deplacement 0.0)) (setq index_objet_a_deplacer 0) (setq jeu (ssget)) (setq objet (ssname jeu index_objet_a_deplacer)) (repeat (sslength jeu) (command "deplacer" objet "" p0 p1) (setq index_objet_a_deplacer (1+ index_objet_a_deplacer)) (setq objet (ssname jeu index_objet_a_deplacer)) (setq distance_deplacement (* distance_deplacement index_objet_a_deplacer)) ) ) Chaleureusement
  10. Bonjour @didier, J'ai essayé mon code, le message d'erreur en sortie est "erreur fonction incorrect: 0". Je ne sais pas comment interpréter ce message, ni comment desceller mon/mes erreurs. De l'aide serait la bien venue. Chaleureusement
  11. C'est exactement ça pour la première étape @Luna ! Voici le code que j'ai pour le moment mais il ne fonctionne pas (je crois que le getreal ne va pas)...je sens quand même que je suis sur la bonne voie : (defun c:test() (setq distance_deplacement (getreal "Renseigner ecartement des objets")) (setq p0 '(0.0 0.0)) (setq p1 '(distance_deplacement 0.0)) (setq index_objet_a_deplacer (0)) (setq jeu (ssget)) (setq objet (ssname jeu index_objet_a_deplacer)) (repeat (setq i (sslength jeu)) (command "deplacer" objet "" p0 p1) (setq objet (ssname (1+ jeu index_objet_a_deplacer))) (setq distance_deplacement (* distance_deplacement jeu index_objet_a_deplacer)) ) ) Merci pour le temps que vous m'accordez ! 🙂
  12. Bonjour @didier, Non, rien à voir avec la forme des solides, je cherche juste à leur affecter un déplacement chacun, puis à bien les orienter indépendamment les uns des autres. S'il y a une fonction permettant cela, je suis preneur ! 😄 mais ca m'étonnerait...du moins de je la trouve pas 😢 Yes, je te mets le dwg en lien ! Coffrage 3D.dwg
  13. Bonjour @didier, Il s’agit de solides simples, cubes et parallélépipèdes. Je viens de mettre en lien une note explicative imagée, j'espère être plus clair dans mes explications ! Explication LISP.pdf
  14. Pas de soucis, je contextualise : Dans ma boite, nous faisons des pièces en bois qui étaient, jusqu'à maintenant, coupées et assemblées par nos menuisiers. La découpe est longue et fastidieuse et dans le but de faciliter cette tâche, nous avons acheté une machine de découpe de plaques de contreplaqués de 21mm d'épaisseur. Mon entreprise me demande de créer un programme sur AutoCad permettant plusieurs choses : À partir d'un assemblage de pièces 3D, séparer/éclater (en les déplaçant) tous les objets « solide 3D » afin qu’ils ne soient pas en conflit en vue en plan Orienter tous les pièces dans le même sens (pour chaque pièce, la plus petite épaisseur (de 21mm) doit être alignée avec l'axe Z ; reviendrait à dire "plus grande surface doit être normale à l'axe Z") Il me faut donc dans un premier temps, séparer chaque solide et les espaçant tous les uns des autres par en vecteur qui sera définit pas l'utilisateur de préférence. Suite à ca, il faudrait que mes pièces soient orientée dans le sens de Z. En fait, la machine va digérer le dwg final en analysant la géométrie de chaque pièce en vue en plan. Voili voilou, j'espère avoir été assez clair ! :))
  15. Bonjour, Néophyte sur Autolisp, je cherche à déplacer des objets 3D de mon espace graphique Autocad, sans que l'utilisateur n'ai à intervenir. L'utilisateur n'intervient qu'une seule fois, au début, pour sélectionner tous les objets qui seront à déplacer (tous les objets du jeu de sélection). Voici mon code pour le moment : (defun c:coffrage() (setq jeu (ssget)) (repeat (setq compteur (sslength jeu)) (setq objetadeplacer (ssname jeu 0)) ;déplacer objetadeplacer (nom du premier élément de ma liste de jeu) de la valeur d'un certain vecteur (setq jeu (cdr (jeu))) ) )
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité