Aller au contenu

JPhil

Membres
  • Compteur de contenus

    207
  • Inscription

  • Dernière visite

  • Jours gagnés

    6

Tout ce qui a été posté par JPhil

  1. Ces caractères spéciaux (- et _) ne posent aucun problème bien au contraire 🙂, les autres sont déconseillés voir à bannir 😉 surtout si tu veux te lancer dans la programmation. En utilisant ce caractère (_) en début de nom de calque, ils apparaitront avant le calque 0.
  2. Bonjour, C'est obligatoire les caractères spéciaux dans le nom du calque ($, ¤, #) ?
  3. Bonjour, Je remonte le sujet car je rencontre un problème de sélection d'objets dans les fmult. Dans le cas n°1, je peux : - sélectionner tous les objets contenus dans la zone de dessin, - sélectionner uniquement les objets (en magenta) sur le calque Pose, - sélectionner uniquement les objets (en jaune) sur le calque Dépose, - sélectionner uniquement les objets (en bleu) sur le calque Modification, - sélectionner tous les objets contenus dans le cadre en bleu (en balayant un par un c'est bon). Je ne peux pas : - sélectionner tous les objets en dehors des cadres en bleu, - et par conséquence sélectionner uniquement les objets (en magenta ou jaune) en dehors des cadres en bleu. Dans le cas n°2, je peux (dans chacune des fmult) : - sélectionner tous les objets, - sélectionner uniquement les objets (en magenta), - sélectionner uniquement les objets (en jaune), - sélectionner uniquement les objets (en bleu). Je ne peux pas (dans chacune des fmult) : - sélectionner tous les objets contenus dans le cadre en bleu, - sélectionner tous les objets en dehors des cadres en bleu, - et par conséquence sélectionner uniquement les objets (en magenta ou en jaune) en dehors des cadres en bleu. J'ai utilisé et modifié le lisp SelectByVport de (gile) et uniquement utilisé le lisp Special_selections toujours de (gile). Dans SSOC, je pense (mais pas encore testé) qu'il faut modifier le nil afin de pouvoir sélectionner que les objets en rouge ou en jaune : (ssdel (ssname ss 0) (SelByObj (ssname ss 0) "Cp" nil)) Ci-dessous le lisp SelectByVport modifié : (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*))) ;; gc:SelectByVport ;; Retourne un jeu de sélection contenant les objets visibles dans ;; la fenêtre flottante en fonction du mode ;; ;; Arguments ;; vp : une fenêtre flottante (ename) ;; mode : mode de sélection ("_CP" ou "_WP") ;; paramfltrlayercolor : sélection objets par calque (8) ou par couleur (62) ;; fltrlayercolor : nom du calque ou numéro de la couleur (defun gc:SelectByVport (vp mode paramfltrlayercolor fltrlayercolor / elst ss pl pts len inc wid ht xd) (setq elst (entget vp '("ACAD"))) (if (setq pl (cdr (assoc 340 elst))) (if (= "LWPOLYLINE" (cdr (assoc 0 (entget pl)))) (foreach p (entget pl) (if (= 10 (car p)) (setq pts (cons (cdr p) pts)) ) ) ; fin foreach (progn (setq len (vlax-curve-getDistAtParam pl (vlax-curve-getEndParam pl) ) inc (/ len 120) ) (while ( (setq pts (cons (vlax-curve-getPointAtDist pl (setq len (- len inc))) pts ) ) ; fin setq pts ) ) ; fin while ) ; fin progn ) ; fin if lwpolyline (setq cen (cdr (assoc 10 elst)) wid (/ (cdr (assoc 40 elst)) 2.) ht (/ (cdr (assoc 41 elst)) 2.) pts (list (list (- (car cen) wid) (- (cadr cen) ht) (caddr cen)) (list (+ (car cen) wid) (- (cadr cen) ht) (caddr cen)) (list (+ (car cen) wid) (+ (cadr cen) ht) (caddr cen)) (list (- (car cen) wid) (+ (cadr cen) ht) (caddr cen)) ) ) ) ; fin if (if (= paramfltrlayercolor "") (setq fltr '((410 . "Model"))) (setq fltr (list '(410 . "Model") (cons paramfltrlayercolor fltrlayercolor))) ) (vla-ZoomExtents *acad*) (vla-put-Mspace *acdoc* :vlax-true) (setvar 'cvport (cdr (assoc 69 elst))) (setq ss (ssget mode (mapcar (function (lambda (x) (trans (trans x 3 2) 2 1))) pts) fltr ) ) (vla-put-Mspace *acdoc* :vlax-false) (vla-ZoomPrevious *acad*) ss ) ;; gc:GetViewport ;; Invite l'utilisateur à sélectionner une fenêtre flottante ;; Retourne le nom d'entité de la fenêtre (ename) ou nil (defun gc:GetViewport (/ vp typ) (if (/= (getvar 'cvport) 1) (vla-put-Mspace *acdoc* :vlax-false) ) (while (not (and (setq vp (car (entsel "\nSélectionnez la fenêtre: "))) (setq typ (cdr (assoc 0 (setq elst (entget vp))))) (or (= typ "VIEWPORT") (and (setq vp (cdr (assoc 330 elst))) (= "VIEWPORT" (cdr (assoc 0 (entget vp)))) ) ) ) ) (princ (if vp "L'objet sélectionné n'est pas une fenêtre de présentation" "Aucun objet sélectionné" ) ) (setq vp nil) ) vp ) ;; Commandes ;; Sélection par capture (defun c:ssvpc () (ssvpc "" "") ) (defun ssvpc (paramfltrlayercolor fltrlayercolor / vp ss) (if (= (getvar 'tilemode) 1) (alert "Cette commande n'est disponible qu'en espace papier") (progn (setq ss (gc:SelectByVport (gc:GetViewport) "_CP" paramfltrlayercolor fltrlayercolor)) (vla-put-Mspace *acdoc* :vlax-true) (sssetfirst nil ss) ) ) (princ) ) ;; Sélection par fenêtre (defun c:ssvpw () (ssvpw "" "") ) (defun ssvpw (paramfltrlayercolor fltrlayercolor / vp ss) (if (= (getvar 'tilemode) 1) (alert "Cette commande n'est disponible qu'en espace papier") (progn (setq ss (gc:SelectByVport (gc:GetViewport) "_WP" paramfltrlayercolor fltrlayercolor)) (vla-put-Mspace *acdoc* :vlax-true) (sssetfirst nil ss) ) ) (princ) ) (princ "\nEntrez SSVPC pour une sélection par capture, SSVPW pour une sélection par fenêtre.") ;;; ;;; Exemple d'utilisation ;;; (ssvpc 62 108) - Sélection d'objets dont la couleur est 108 ;;; (ssvpc 62 42) - Sélection d'objets dont la couleur est 42 ;;; (ssvpc 8 "Ief-modification-e") - Sélection d'objets dont le calque est Ief-modification-e ;;; (ssvpc 8 "Ief-depos-_-e") - Sélection d'objets dont le calque est Ief-depos-_-e ;;; (ssvpc 8 "Ief-pose-_-e") - Sélection d'objets dont le calque est Ief-pose-_-e ;;; ;;; Puis utiliser Lisp Special_selections ;;; Lancer SSOC ou SSOF - fonctionne uniquement dans une seule fenêtre ;;; et il faut balayer les entités une par une
  4. Je viens de trouver ces sujets : - À qui appartient le code d'un site/logiciel ? >>> ici <<< - La protection par le droit d’auteur spécifique des logiciels >>> ici <<< - Les entreprises font souvent fi de la protection de propriété intellectuelle de leurs logiciels >>> ici <<< Mais alors quoi faire quand on est salarié d'une (grosse) entreprise, coder ou ne pas coder ?
  5. @sylarr, @Minocia, un début de réponse >>> ici <<<
  6. A tout hasard, savez-vous s'il est possible d'avoir au final cette structure : Fichier PDF - "Au Clair de la Lune - Folio 1" - "François à l'Hôtel - Folio 2" Car actuellement j'ai plutôt cette structure qui commence à me géner : Fichier PDF + "Feuilles et vues" - "Au Clair de la Lune - Folio 1" - "François à l'Hôtel - Folio 2" Donc je cherche à savoir s'il est possible de supprimer le signet intermédiaire "Feuilles et vues", mais j'ai l'impression que c'est pas gagné 😕
  7. @Cad67 Les domaines Archi et GC c'est là où il y a le plus de monde donc plus de concurrence. Côté système et plus particulièrement l'Elec (courant fort et courant faible) si tu "maîtrises" (j'aime pas dire ce mot car on ne maîtrise jamais totalement un domaine/logiciel) tu trouveras plus facilement du boulot. Pour ta formation tu peux regarder pour le domaine de la clim/ventilation/plomberie. Tu y apprendras à gérer de grosses gaines de ventilation avec les coudes, à gérer les pentes pour la plomberie. Après ça tu verras que la gestion des CDC (chemin de câbles) c'est finger in the nose.
  8. Bonjour Cad67, J'ai fait un peu de Revit il y a quelques années et c'est vrai que c'était sympa. Quand tu parles de chiffres, calcul, installation à son compte ... tu m'as fait pensé à un logiciel dont j'avais vu une démo il y a bien 5 ans : https://bimoffice.fr/ Côté modeleur BIM, tu ne pourras pas tout faire, chaque domaine étant bien spécifique. Donc faut bien choisir : archi, génie civile, ... ? L'autre question c'est, veux-tu te tourner vers le particulier ou vers les professionnelles et dans ce cas quels types de bâtiment (habitation, bureau, entrepôt, gare, ...) ?
  9. Faut espérer que ton candidat reste avec toi après l'avoir formé.
  10. Bonjour, Pour t'aider il nous faut le lisp modifié.
  11. Y'a un truc qui me dérange dans ton code. Sinon tu peux tenter un truc dans ce genre : - 1) contrôler la longueur totale du nombre par rapport à la longueur du nombre en valeur absolue afin de déterminer si le nombre est négatif -> utiliser la fonction "ABS" - 2) contrôler la longueur du nombre en valeur absolue -> si inférieur à 2 appliquer un 0 devant sinon garder la valeur - 3) associer les deux étapes précédentes
  12. Dans la vie faut se faire plaisir! Alors si tu veux rajouter des variantes let's go ^^ Par contre je m'interroge sur ta question "Faut-il prévoir également prévoir un décalage vis-à-vis des cloisons/murs pour le tracé du chemin de résolution", peux-tu être plus explicite ? Pour la représentation du chemin tu peux t'inspirer de the 7 Guest 😉 : https://zupimages.net/up/22/35/awc6.jpg
  13. Demarche intéressante, donc si y'a une sortie au centre du "P" faut trouver une autre solution.
  14. En se basant sur cette image qui représente un labyrinthe avec une forme en "P", pensez-vous qu'il soit possible de dessiner le chemin de sortie en une ligne (ou plutôt polyligne) ? 🤔 Contrainte pour la représentation du labyrinthe : - pas de polyligne donc que des lignes et des arcs - un calque "Mur" pour les traits épais en noir et un calque "Cloison" pour les traits fins en gris Langage autorisé : - Lisp - mais VBA et autres sont les bienvenus 😉
  15. Les fichiers DWG sont des plans ou des blocs ? Si c'est des plans je te conseille fortement l'utilisation de la commande "BURST" à la place de la commande décomposer surtout si tu as des blocs avec attribut sinon tu risques d'avoir une sacrée surprise ^^ Plutôt que qu'un programme LISP, il serait judicieux de regarder du côté SCRIPT. Sinon, question idiote, quel est l'intérêt de cette demande plutôt particulière ?
  16. N'ayant plus accès à Revit depuis longtemps, tu peux tenter une famille imbriquée : 1) faire le parallélépipède dans un modèle générique 2) l'insérer dans une nouvelle famille (modèle générique) et y créer une cotation 3) la réinsérer dans une nouvelle famille (modèle générique) et y créer la seconde cotation tout en rappelant la première J'avais suivi un tuto "rotation famille sur 3 axes" pour me faire la main sur une caméra, car Revit ne pouvait pas faire une rotation dans les 3 axes en même temps sans faire de famille imbriquée. Donc c'est peut-être la marche à suivre pour toi. Avantage de cette méthode c'est que ta cotation peut basculer de occurence à type à chaque étape de la famille imbriquée et donc d'utiliser des formules.
  17. AutoCAD dit quoi si tu choisis Nouv à la place de Gabarit ? Commande: -PRESENTATION Entrez l'option de présentation [Copier/EFfacer/Nouv/Gabarit/Renommer/Sauvenom/Etablir/?] <établir>: N
  18. Je ne vois pas où est l'avantage de déplacer la hachure de l'espace objet à l'espace papier. Espace objet : échelle à 1 Espace papier : échelle variable Ce qui veut dire que si tu changes ton échelle de papier (tu passes du 50ème au 100ème par exemple) tu vas devoir refaire ta hachure ? Y'a t-il une raison particulière à faire ce choix ?
  19. Merci @bonuscad Effectivement c'est vachement mieux maintenant.
  20. Merci @bonuscad pour ton lisp. Puis-je me permettre une remarque ? J'ai fait un test et ça fonctionne plutôt bien, néanmoins j'ai trouvé la limite. Lorsqu'on survole un bloc sur sa partie dessin, le lisp affiche bien toutes données, par contre lorsqu'on survole un des attributs du même bloc, le lisp n'affiche pas toutes les données. Penses-tu qu'il soit facile d'y remédier ? Merci par avance.
  21. AutoCAD R14 ou AutoCAD 2014 ?
  22. Si j'ai bien compris en prenant la ligne du bas : Longueur premier trait : 600 Longueur premier vide : 520 (600 - 2*40) Longueur deuxième trait : 600 Longueur deuxième vide : 520 (600 - 2*40) ... En prenant la ligne du haut : Longueur premier vide : 560 (600 - 1*40) Longueur premier trait : 600 Longueur deuxième vide : 520 (600 - 2*40) Longueur deuxième trait : 600 ... J'ai bon ?
  23. Si je comprends bien, tu cherches à créer les deux lignes fines entre les deux lignes épaisses ? Dans ton premier post, j'avais compris que la ligne du bas existe et que tu voulais la ligne du haut.
  24. Plusieurs questions : C'est une ligne ou polyligne ? Pas de courbes ? Toujours à l'horizontale ? Je verrais quelque chose comme cela en sachant que ton point 0 est à gauche : 1)a) Pour chaque ligne b) Je récupère les coordonnées des extrémités en vérifiant le sens de la ligne par rapport à mon point 0 (donc une liste rangée par ordre croissant sur l'axe des X) et j'applique un plus 40 sur l'axe des X pour l'extrémité de gauche (premier point) et un moins 40 sur l'axe des X pour l'extrémité de droite (deuxième point) Accessoirement je peux appliquer l'écart entre les lignes sur l'axe des Y, comme ça c'est fait 2) Toutes ces coordonnées sont dans une liste rangée par ordre croissant (axe des X) 3) Je supprime ou ne tiens pas compte du premier point, et je créé ma ligne avec le point 2 et le point 3, puis le point 4 avec le point 5 ... Autre version : 1) Pour chaque ligne je récupère les coordonnées des extrémités 2) Toutes ces coordonnées sont dans une liste rangée par ordre croissant (axe des X) 3) J'applique un MAPCAR sur l'axe des X (une fois sur deux je rajoute 40, et donc une fois sur deux je diminue de 40) et des Y (tous concernés) 4) Je supprime ou ne tiens pas compte du premier point, et je créé ma ligne avec le point 2 et le point 3, puis le point 4 avec le point 5 ...
×
×
  • 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é