willy95 Posté(e) le 30 mars 2018 Posté(e) le 30 mars 2018 Bonjour à tous, Je cherche à me simplifier la vie et donc je recherche la commande ou l'éventuel code lisp pour qu'en une seule touche je puisse passer mon nuage de point de "Intensité" à "Couleur de balayage" dans la Stylisation.Sans avoir a sélectionner le nuage et ouvrir les propriétés ou les gros onglets d'autocad. et à reproduire sans les gros onglets quatre icones, les commande de modification "d'épaisseur de section" et "décalage de coupe") (Chacun avec un + et un - )J'ai par ailleurs trouver les commandes pour les valeurs d'incrémentation (sectionoffsetinc et sectionthicknessinc). Merci d'avance pour vos réponses qui je l'espère seront enthousiasmante.
Fraid Posté(e) le 30 mars 2018 Posté(e) le 30 mars 2018 Bonjour, Vais pas pouvoir répondre à tes question, mais veut t'en poser. dans quel autocad travail tu? Je cherche à me simplifier la vie on en est tous la.je m'acharne sur un lisp qui dessine à ma place, je pense que je vais mettre toute ma vie à le faire... sinon, dans quel domaine utilise tu des nuages de point? et à quoi sa sert? https://github.com/Fraiddd
willy95 Posté(e) le 3 avril 2018 Auteur Posté(e) le 3 avril 2018 Bonjour, Je suis sur un Autocad 2016, et je souhaite ne pas avoir la grosse barre des onglets active qui me prends une partie de l'écran pour seulement 2 (DEUX) commandes, c'est pourquoi je souhaite vivement traduire dans un lisp où je pourrais mettre deux petits icones ou voir même deux raccourci clavier. J'ai déjà créer une barre spéciale pour le traitement des nuages de points qui attache mon nuage dans un calque nuage sans avoir a créer le calque au préalable, trace une ligne sur le nuage 3d qui se rabat sur mon plan 2d dans un calque scu, crée une section de coupe par un simple clic (sans sélection et désélection du nuage et de la coupe, etc... Et le top serait :1) de pouvoir passer le nuage de Intensité à Couleur de balayage par un clic.2) de cliquer sur + ou - pour augmenter ou réduire l'épaisseur de la section de coupe3) de cliquer sur + ou - pour déplacer la section de coupe Je dirais tous simplement comme Autocad le propose magnifiquement mais sans les GROS onglets en haut qui me prennent vraiment trop de place (pour pas dire 1/4 de l'ecran). Sachant qu'il s'agit d'élément du nuage dans les propriétés , je pense qu'il y a une super solution à mon problème. Merci pour vos réponse utiles.
willy95 Posté(e) le 5 avril 2018 Auteur Posté(e) le 5 avril 2018 Bonjour, Pour le passage en intensité, j'ai solutionné mon problème et cela marche parfaitement : (command "NUAGEPOINTSSTYLE" "P" "" "I") En revanche pour modifié les valeurs des propriétés de la coupe situé dans Géométrie> Décalage de coupe et Epaisseur de Section, je bloque encore. Cette question n'est pas assez clair ou trop difficile ? Ce serait dans les valeurs des propriétés : SectionPlaneOffset et SliceDepth Merci a vous
willy95 Posté(e) le 5 avril 2018 Auteur Posté(e) le 5 avril 2018 Et pour certain peut-être en VBA avec : object.SliceDepth ?
willy95 Posté(e) le 9 avril 2018 Auteur Posté(e) le 9 avril 2018 Les valeurs "11" des propriétés ne sont pas modifiables par un lisp ?? (-1 . <Nom d'entité: 7ffffb158c0>) (0 . "SECTIONOBJECT") (330 . <Nom d'entité: 7ffffb191f0>) (5 . "29C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "coupe") (100 . "AcDbSection") (90 . 2) (91 . 1) (1 . "Plan de coupe (1)") (10 0.0 0.0 1.0) (40 . 20.4173) (41 . 20.4173) (70 . 70) (62 . 9) (92 . 2) (11 -41.7993 -52.0 8.96841) (11 189.065 -52.0 8.96841) (93 . 2) (12 189.065 -60.9424 8.96841) (12 -41.7993 -60.9424 8.96841) (360 . <Nom d'entité: 7ffffb158e0>)
Tramber Posté(e) le 9 avril 2018 Posté(e) le 9 avril 2018 (setq ent(car(entsel))) (vla-put-SectionPlaneOffset (vlax-ename->vla-object ent) -800) (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-SliceDepth (list (vlax-ename->vla-object ent) 300))) (princ"\nErreur sur SliceDepth")) ;) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
(gile) Posté(e) le 9 avril 2018 Posté(e) le 9 avril 2018 Et pour certain peut-être en VBA avec : object.SliceDepth ?normalement, tout ce que tu peux faire avec le VBA AutoCAD (i.e., l'API COM/ActiveX d'autoCAD), tu peux aussi le faire en Visual LISP avec les fonction vla-*. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
willy95 Posté(e) le 11 avril 2018 Auteur Posté(e) le 11 avril 2018 Merci a vous c'est exactement ça que je cherchais et cela m'ouvre une porte sur le VBA que je ne connais pas du tout et la je vois beaucoup de possibilité qui me font rêver... Bref, j'ai encore une dernière question sur ce sujet : Comment faire afficher la valeur existante de la SectionPlaneOffset ? C'est pas une histoire avec Ssget ou Entsel ? Merci pour votre aide.
willy95 Posté(e) le 12 avril 2018 Auteur Posté(e) le 12 avril 2018 Bonjour à tous, Pourquoi le (entlast) ne fonctionne pas ? (ssget "_X" '((8 . "coupe"))) (vla-put-SectionPlaneOffset (vlax-ename->vla-object (entlast) ) 10)) Peut-on ajouté à la valeur existante plutôt que de saisir une nouvelle valeur ? Merci par avance pour vos réponses
Tramber Posté(e) le 13 avril 2018 Posté(e) le 13 avril 2018 ton ssget ne récupère rien pour l'instant ni ne donne une entité à un process.Quant au (entlast) c'est le dernier objet créé sans aucun filtre !Pour que ton ssget ne sélectionne qu'une entité :(setq obj(ssget ":e:s" '((8 . "coupe")))) (vla-put-SectionPlaneOffset (vlax-ename->vla-object (ssname obj 0)) 10)) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
willy95 Posté(e) le 13 avril 2018 Auteur Posté(e) le 13 avril 2018 Merci Beaucoup Tramber, Si j'ai bien compris il faut mettre la récupération dans une variable et appeler l'objet à l'aide de ssname. Et la ça fonctionne, merci. En revanche comment affiché la valeur existante de la SectionPlaneOffset ?
willy95 Posté(e) le 13 avril 2018 Auteur Posté(e) le 13 avril 2018 Je pensais à un truc comme ça, mais cela doit-être brouillon car cela ne fonctionne pas : (setq val1 (ssget ":e:s" '((11 . "coupe")) )) (setq Epaisseurplus (getreal (StrCat "\nValeur <" (Rtos val1 2 2) "> : " )))
Tramber Posté(e) le 13 avril 2018 Posté(e) le 13 avril 2018 Oui c'est vrai, j'avais oublié cette question :(vla-get-SectionPlaneOffset (vlax-ename->vla-object (ssname obj 0))))non vérifié Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
willy95 Posté(e) le 13 avril 2018 Auteur Posté(e) le 13 avril 2018 Merci encore Tramber, C'est au top et si je comprends bien le "vla-get-...." interroge ou récupère les renseignements, bien sur grâce au "ssname" aussi :) (setq obj (ssget "_X" '((8 . "coupe")))) (setq val1 (vla-get-SectionPlaneOffset (vlax-ename->vla-object (ssname obj 0)))) (setq NVP (getreal (StrCat "\nSaisie <" (Rtos val1 2 2) "> : " ))) (vla-put-SectionPlaneOffset (vlax-ename->vla-object (ssname obj 0)) NVP) Merci beaucoup
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant