Hydro8
Membres-
Compteur de contenus
227 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Hydro8
-
Alors c'est pas vraiment ça, désolé j'ai du mal expliqué. Utilisons des exemples, j'ai un parking au premier sous-sol de 13.45m². Il aura comme base 11.5m² (car sa surface > 11.5) pondéré à 0.35 et 2.0m² (surface arrondi - 11.5m²) pondéré à 0.10. J'ai un parking de 11.34m² au premier sous-sol. Il aura comme base 11.3m² (car surface < 11.5m²) pondéré à 0.35 et 0.0m² pondéré à 0.10. J'ai un parking double toujours au premier sous-sol de 24.87m². Il aura pour base 23 (non pas 11.5m² car double et sa surface > 23) pondéré à 0.26 ((0.35+(0.35/2)/2) et 1.9m² pondéré à 0.10. Maintenance si je prend la même configuration au deuxième sous-sol, j'aurais 0.34 à la place de 0.35 et 0.25 à la place de 0.26. Concernant la surface pondéré, mon logiciel métier demande les surfaces et les Coeff, je ne peux pas rentrer les surfaces pondéré directement.
-
Effectivement cela fonctionne :mellow: Tu penses c'est possible de directement passer à la sélection de polyligne après avoir valider le coeff ?
-
Grosso modo pour le calcul des tantièmes de copropriété d'un lot de parking, on se base sur la norme AFNOR. Cette norme définie un gabarit standard (sans prendre en compte le recul des poteaux etc...) de 2.30m par 5.00m donc 11.50m². Pour une place de parking, on défini ces 11.5m² avec un coefficient donné (0.35 ou moins selon le niveau de parking). Le reste de la surface est pondéré plus bas. Dans le cas de parking double, la base n'est plus de 11.5m² mais du double donc 23.0m².
-
Je comprends pas de problème tu m'as déjà bien aidé à me donner une première version ! @DenisHen : haha comment tu as compris qu'effectivement c'était pour les places de parking en copropriété ?! Pour le fonctionnement c'est tout à fait cela. Merci pour le code que j'ai pu essayé ! - Quand je lance la fonction et que je clique sur autre chose que sur une polyligne (ou un espace vide) il fait comme si j'avais fait "Entrée". Est-il possible de boucler sur la sélection de polyligne ? - Quand je fais "Entrée", que je rentre une surface et un coeff il ne passe rien après. Merci encore pour ton aide ! Edit : le block si besoin https://we.tl/t-M2EWzcQJut
-
Bonjour Désolé de remonter le sujet, quelqu'un utilise cet outil avec Autocad MAP 3D 2019 ? J'ai installé le .exe mais je trouve pas où lancer l'outil :huh:
-
Merci pour l'aide :) Voici ma fonction pour le moment : (defun c:MSPk (/ option base coeff) (setq old_base (vlax-ldata-get "MSPK" "Base")) (setq old_coeff (vlax-ldata-get "MSPK" "Coeff")) (if (= old_base nil) (setq base 11.5) (setq base old_base)) (if (= old_coeff nil) (setq coeff 0.35) (setq coeff old_coeff)) (initget "Parametres Continuer") (setq option (getkword (strcat "\nType de fraction [Parametres/Continuer] <Continuer> : " ) ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (if (= option "Parametres") (setq base (getreal "\nChoisissez la base <11.5> (par défaut) : ") coeff (getreal "\nChoisissez le coefficient <0.35> (par défaut) : ")) ) (vlax-ldata-put "MSPK" "Base" base) (vlax-ldata-put "MSPK" "Coeff" coeff) (while (setq poly (car (entsel "\nChoix de la polyligne\n"))) (setq polyvla (vlax-ename->vla-object poly)) (setq surf (vlax-get-property polyvla 'area)) (setq dec 1) (cond ((< surf base) (setq surf1 surf surf2 0.0)) ((> surf base) (setq surf1 base surf2 (- surf surf1))) ((/= coeff 0.35)(setq surf1 base surf2 (- surf surf1))) ) (setq pins (getpoint"\nPoint d'insertion du bloc ?\n")) (command "_insert" "SurfPk" pins "1" "" "" (rtos surf1 2 dec) (rtos coeff 2 2) (rtos surf2 2 dec)) ) (princ) ) ;_ Fin de defun Une idée de comment éviter que la fonction s'arrête si on sélectionne autre chose qu'une polyligne ?
-
Merci bonuscad pour ton code, il faut que je prenne le temps d'analyser tout sa. Sinon pour m'améliorer j'ai essayé d'éditer le code comme ça : (defun c:MSPk () (initget "Parametres Continuer") (setq Option (getkword (strcat "\nType de fraction [Parametres/Continuer] <Continuer> : " ) ;_ Fin de strcat ) ;_ Fin de getkword ) ;_ Fin de setq (if (= Option "Parametres") (setq base (getreal "\nIndiquez la base <11.5> (par défaut) : ")) (if (null base) (setq base 11.5) ) (setq coeff (getreal "\nIndiquez le coefficient <0.35> (par défaut) : ")) (if (null coeff) (setq coeff 0.35) ) (princ " base ") (princ base) (princ " coeff ") (princ coeff) ) ( (setq base 11.5 coeff 0.35) ) (while (setq poly (car (entsel "\nChoix de la polyligne\n"))) (setq polyvla (vlax-ename->vla-object poly)) (setq surf (vlax-get-property polyvla 'area)) (setq dec 1) (cond ((< surf base) (setq surf1 surf surf2 0.0)) ((> surf base) (setq surf1 base surf2 (- surf surf1))) ((/= coeff 0.35)(setq surf1 base surf2 (- surf surf1))) ) (setq pins (getpoint"\nPoint d'insertion du bloc ?\n")) (command "_insert" "SurfPk" pins "1" "" "" (rtos surf1 2 dec) (rtos coeff 2 2) (rtos surf2 2 dec)) ) (princ) ) ;_ Fin de defun Quand je fais avec les valeurs par défaut (11.5/0.35) ça fonctionne bien, par contre quand je fais paramètre et que je valide les deux valeurs j'ai le message : Une idée de l'origine de cette erreur ? Merci
-
Il n'y a pas besoin de listing. Ne pas prendre en compte les polylignes ouvertes. Ne pas sortir de la fonction si on clique sur autre chose qu'une polyligne. Garder les valeurs personnalisées lorsqu'on relance la fonction. Je pense que c'est un cran au dessus en terme de travail et complexité (au vu du lisp TotalArea) et qui n'est pas l'objet ici, est-ce possible de mettre dans une autre couleur un bloc dont la polyligne a été modifié ?
-
Oups désolé je vais plus vite que la musique. Oui c'est ok pour le fonctionnement et encore merci pour ta grande aide.
-
Le code fonctionne super pour la surface par défaut (11.5 / 0.35) mais j'ai un petit problème quand je mets des valeurs personnalisées. Voici le code actuellement : (defun c:MSPk () (setq choix (getreal "\nChoisissez Base ou le coef <0.35> (par défaut) : ")) (if (null choix) (setq choix 0.35) (progn (setq choix2 (getreal "\nEntrez le coefficient\n")) ) ) (while (setq poly (car (entsel "\nChoix de la polyligne\n"))) (setq polyvla (vlax-ename->vla-object poly)) (setq surf (vlax-get-property polyvla 'area)) (setq dec 1) (cond ((and (< surf 11.5)(= 0.35 choix)) (setq surf1 surf surf2 0.0)) ((and (> surf 11.5)(= 0.35 choix)) (setq surf1 11.50 surf2 (- surf surf1))) ((/= choix 0.35)(setq surf1 choix choix choix2 surf2 (- surf surf1))) ) (setq pins (getpoint"\nPoint d'insertion du bloc ?\n")) (command "_insert" "SurfPk" pins "1" "" "" (rtos surf1 2 dec) (rtos choix 2 2) (rtos surf2 2 dec)) ) (princ) ) ;_ Fin de defun Question 1 : comment ne pas annuler la fonction si il y a un problème de selection de polyligne ? En effet, si l'utilisateur ne sélectionne pas une polyligne comment redemander d'en sélectionner une ? Question 2 : quand je choisis par exemple une base de 23 et un coeff de 0.26, le premier block fonctionne bien (23.0/0.26 et 2.0/0.10 pour une surface de 25) mais les suivants ne fonctionnent plus (0.3/0.26 et 25.6/0.10 pour une surface de 25.9). On dirait qu'il perd la valeur de la variable "choix".
-
Petite question, je voudrais enchainer la selection de polyligne sans modifier les paramètres. Du coup j'ai déjà commencer par mettre la question de la surface avant la selection de polyligne. Mais du coup comment boucler après sur la selection / insertion du bloc ? Edit : ok en mettant un while avant la selection de la polyligne tout simplement !
-
Alors j'ai réussi à insérer le bloc automatiquement. Merci beaucoup !
-
Alors effectivement la variable n'était pas à la bonne valeur. Quand tu parles de définition tu veux dire pouvoir l'insérer avec le nom ? Quand j'ouvre un nouveau dessin, que je fais insérer, il trouve bien "Totalarea".
-
Alors j'ai essayé, après avoir sélectionné le point d'insertion, j'ai une boîte de dialogue qui me demande de valider les données du block. Une fois valider j'ai les messages ( en laissant les valeurs par défaut) : - Commande inconnue "5" - Commande inconnue "35" - Commande inconnue "7"
-
Oui tout à fait j'ai oublié de modifier les noms des variables dans le bloc de totalarea. Merci en tout cas didier je vais tester sa le plus rapidement possible !
-
Le calcul est identique seul la base et le coefficient change. Prenons une polyligne de 25m², si je laisse par défaut j'aurais : 11.5 / 0.35 13.5 / 0.10 Maintenant si en base je mets 23, j'aurais : 23 / 0.35 2.0 / 0.10 Édit : Prenons B = Base / C = Coeff / S = surface polyligne Var1 = if(S > B ){ B }else{ S } Var2 = C Var3 = if(S > B ){ S - B }else { 0 } Mon block sera composé de : Var1 | Var2 Var3 | 0.10
-
Enfaite les valeurs coeff et base ont une valeur par défaut (11.5/0.35) qui permet d'éviter que l'utilisateur les rentres la première fois (si c'est possible) et qu'il sélectionne directement la polyligne. Le 23 correspond a une valeur de base différente de la valeur par défaut.
-
C'est clair dans ma tête mais j'ai pas réussi a bien le transposer par écrit. L'utilisateur lance la fonction. Elle lui dit : "Sélectionnez la polyligne ou [C]oeff (0.35) ou ase (11.5)" Si l'utilisateur choisit "C" out "B" il rentre la valeur qui deviendront les valeurs par défaut pour le prochain lancement. L'utilisateur sélectionné la polyligne puis indique l'endroit où insérer le bloc. Dans ce bloc il y a 4 données dont trois variables : - le coefficient indiqué avec [C] - la base si la surface de la polyligne est supérieur sinon la surface de la polyligne. - la surface de la polyligne - base si elle est supérieure à 0 sinon 0. - un coefficient de 0.10 indiqué en dur dans le bloc. Une fois le bloc inséré, l'utilisateur est invité à sélectionner la prochaine polyligne etc.... J'espère que ces explications sont plus clairs que précédemment !
-
Bonjour Merci de vos réponses. Effectivement je suis parti trop rapidement dans la modification de ce Lisp. Pour que sa soit plus simple, voici un dwg du résultat a peu prêt voulu : https://we.tl/t-DJThMkUHha Contrairement à TotalAraa, je ne souhaite pas de fenêtre de configuration mais utiliser le clavier. Et que la fonction continue quand on a sélectionné une polyligne ( en effet on ne pourra pas en sélectionner plusieurs ).
-
Ok j'avance pas mal sur la modification du code pour avoir ce dont j'ai besoin. Petite question (gile), lors de la mise à jour d'une polyligne, est-ce possible de récupérer la valeur d'un des attributs pour le modifier ?
-
Pour le moment mes essais ont surtout constitué à modifier ton code Lisp. J'arrive à afficher ce que j'ai besoin dans le bloc mais il reste pas mal à faire. Vu que j'y connais pas grand chose c'était plus simple de partir de ton code :/
-
J'ai essayé de modifier le Lisp TotalArea de gile sans succès. A la ligne : ((= (vla-get-TagString att) "UNIT") (vla-put-TextString att (cadr data)) ) J'ai mis : ((= (vla-get-TagString att) "UNIT") (vla-put-TextString att strcat(" / "(cadr data))) Mais sans succès. )
-
Merci pour ton intervention. Effectivement je n'ai peut être pas assez expliqué mes attendus. Au début de la fonction, on nous demande quel coefficient utiliser. Ici je lui renseigne "0.35". Après je sélectionne la polyligne et ensuite il me demande où placer le block. Je précise ici qu'il utilise la surface arrondi au décimètre, donc 12.62m² devient 12.60m². Et que 11.50m² ne changera pas donc indiqué en dur dans le code. Ce block contiendrait les informations suivante : Si j'ai une polyligne de 13.18m², il arrondi à 13.20m² et indique le bloc suivant : Si j'ai une polyligne de 10.48m², il arrondi à 10.50m² et indique le bloc suivant : J'espère que cela est plus compréhensible maintenant ;) Edit : je rajoute également que le texte affiché est bien "11.50 / 0.35" et pas le résultat de la division des deux.
-
Bonjour, Grâce aux différents posts du forum j'ai pu réaliser une bonne partie des fonctions que j'imaginais pour nous faciliter la vie sur autocad. Je bloque sur une fonction que j'avais imaginé et je ne sais pas si elle est réalisable : - demander le coefficient - sélectionner une ou plusieurs polyligne fermée. - pour chaque polyligne ventiler la surface avec 11.50m² et le coefficient renseigné. Le reste de la surface (arrondi au décimètre) est indiqué à 0.10 Par exemple, si ma première polyligne fait 12.62m² alors j'aurais un bloc : Si la polyligne fait 11.50m² (arrondi) alors seulement la première ligne est renseignée. Si la polyligne fait 11.40m² alors la surface totale est appliqué au coefficient indiqué : Cela serait-il possible ? Merci pour votre aide et vos informations.
-
Bonjour, J'aurais aimé savoir sur autocad s'il était possible de "stocker" des documents à télécharger en cliquant sur un lien précis ? Par exemple je clique sur un texte, j'ai le choix de télécharger des pdf, doc, xls etc... Deuxième question, est-il possible d'afficher un dwg sur une page internet sans plugins spécifiques ? Merci de vos informations.
