DenisHen Posté(e) le 11 août 2013 Posté(e) le 11 août 2013 Bonjour à tous J'aimerais créer en LiSP un calque comme le fait cette macro :^c-calque;e;Nom du Calque;co;50;;ep;0.3;;tl;cache;;;J'ai cherché partout mais tout le monde passe par (commande "-calque" "e" ...J'ai cherché dans d'autres LiSP (comme InsTopo) mais je n'ai pas trouvé... D'avance, merci. Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 11 août 2013 Auteur Posté(e) le 11 août 2013 Je viens de trouver ça dans une routine d'Azerty :;;; ============================================= ;;; CreeCalque ;;; Création d'un Calque avec ses attributs ;;; Usage : (CreeCalque "NomDuCalque" "Style de ligne" "Epaisseur" "Couleur" "Tracer") ;;; Tracer = 1 , Ne pas tracer = 0 ;;; Epaisseur : 20 pour 0.20 , -1 pour DuCalque , -1 pour Par_Défaut ... ;;; ============================================= (defun CreeCalque (Calque LT Ep Col Plot) (entmakex (list (cons 0 "LAYER") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 70 0) (cons 2 Calque) (cons 62 (atoi Col)) (cons 6 LT) (cons 370 (atoi Ep)) (cons 290 (atoi Plot)) ) ;_ Fin:list ) ;_ Fin:entmakex ) ;_ Fin:defun Mais celà ne me rend pas le calque créé courant... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 11 août 2013 Auteur Posté(e) le 11 août 2013 A toutes fins utiles, j'ai ajouter çà à la fin de la routine...(setvar "clayer" Calque)Qui rend le calque créé courant, je peux donc lancer la commande _pline à la suite de la macro, qui est maintenant ;^C^C(c:CreeCalque "CalqueNouveau" "cachex2" "0.20" "5");^C_pline; Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
lecrabe Posté(e) le 12 août 2013 Posté(e) le 12 août 2013 Hello DenisH SVP tu fais attention et tu es patient quand tu crees de nouveaux sujets ! Il faut attendre que le site "CADXP" valide ton nouveau sujet : 20s-1mn parfois ... Cela evitera aux moderateurs de passer du temps a selectionner puis effacer tes sujets en double/triple/etc Merci d'avance, Bonne continuation, lecrabe Autodesk Expert Elite Team
philsogood Posté(e) le 12 août 2013 Posté(e) le 12 août 2013 T trop un cliK_maniaK Denis!! ;)Phil Projeteur Revit Indépendant - traitement des eaux/CVC
DenisHen Posté(e) le 12 août 2013 Auteur Posté(e) le 12 août 2013 Bonjour, Merci pour ces remarques, je sais que je vais parfoit trop vite, mais là, c'est "CADXP" qui me disait qu'il fallait que je recommence à poster dans 3 secondes. Et c'est là que j'ai compris les "post multiple" d'autres membres... Bonne journée à tous... Denis. ;) Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Red Posté(e) le 16 février 2017 Posté(e) le 16 février 2017 Bonjour, désolé de déterrer le post mais voila je me pose une question, en cour de lisp on à été un peu laissé de côté donc j'avais trouvé une astuce pour créer un calque, le choisir, changer sa couleur puis à la fin de la commande, retourner dans le calque 0 J'aimerai donc votre avis et m'indiquer si c'est la bonne façon de faire ou s'il y à plus simple, plus compliqué ? Je tiens à dire que je n'ai eu que 4 jours de formation scolaire ou l'on à recopié un PDF pour "nous apprendre" <_< vive l'éducation nationale donc soyez indulgent :D (command "-calque" "n" "parking" "" "" ) (command "-calque" "ch" "parking" "" ) (command "-calque" "co" "u" "255,0,255" "" "" "" ) (command "-calque" "ch" "0" "" ) “L'environnement est important, pour sauver un arbre, mangez un castor !”
Red Posté(e) le 22 février 2017 Posté(e) le 22 février 2017 Je croyais "détenir" une solution mais malheureusement je tombe sur un problème ... Je souhaiterai dans ma commande qui me permet de tracer une polyligne puis de la décaler, placer la première polyligne tracée dans le calque "TOTO" et placer son décallage dans le calque "TATA" mais je n'y arrive pas HEEEEELP :D :D (defun c:borax (/ ent REP EP DC)(setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (cond ((= REP "A1") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) je pensai donner l'ordre calque TOTO ici (setq pt (getpoint "\nPoint de Départ: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant ou fin (Return pour FIN): ")) (command pt) )Et l'ordre TATA ici mais malheureusement ma "semi-combine" ne fonctionne pas :huh: (setq EP 0.00) (setq DC 0.2) ) ((= REP "A2") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint d'origine: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")) (command pt) ) (setq EP 0.00) (setq DC 0.15) ) ) (if (setq ent (car (entsel))) (progn (command "_.offset" DC ent pause "") (command "_.pedit" (entlast) "la" EP "") ) ; fin progn ) ; fin if (princ)) “L'environnement est important, pour sauver un arbre, mangez un castor !”
didier Posté(e) le 22 février 2017 Posté(e) le 22 février 2017 Coucou puisque tu utilises command je réponds avec command :si le calque existe avant :(command "_chprop" (entlast) "" "_la" variable-calque "") amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Red Posté(e) le 22 février 2017 Posté(e) le 22 février 2017 D'accord je te remercie fortement je vais regarder ça, l'appliquer et je fais un retour si cela marche ???? “L'environnement est important, pour sauver un arbre, mangez un castor !”
Red Posté(e) le 23 février 2017 Posté(e) le 23 février 2017 (modifié) Super !! sa fonctionne !! Testé en tant que commande cela marche mais une fois dans le LISP ... par contre j'aurai 2 ou 3 questions, la première: dans ta commande, le (entlast) je ne comprend pas pourquoi il n'est pas entres guillemets :blink: prcke la il n'est pas compté comme texte écrit comme le "_chprop" la deuxième: toujours dans ta commande, pourquoi le variable-calque lui non plus n'est pas entre guillemets ? la troisième: comment se fait il que ma commande pour changer de calques ne fonctionne pas ? (command "-calque" "ch" "nom_du_calque" "" )car j'appelle la commande "_calque", oublié de mettre le (entlast) ici ?, choisir avec "ch" et le nommer entre "" puis valider j'énumère mes questions mais c'est pour être le plus clair possible pour ne pas m'égarer dans une phrases pour tout expliquer :D Modifié le 23 février 2017 par Red “L'environnement est important, pour sauver un arbre, mangez un castor !”
Red Posté(e) le 23 février 2017 Posté(e) le 23 février 2017 Il y à un truc que je ne pige pas encore ... Comment je peut savoir ou mettre ta commande ? :blink: Intuitivement je place la première après la création de la polyligne et la seconde après le décalage mais visiblement cela ne marche pas ... qu'est ce que je ne comprend pas, est ce que je n'arrive pas à différencier la polyligne tracée et celle décalée dans mon lisp ? Je vois aussi qu'à la fin de ma commande, les autres polylignes restent en épaisseur de 0.02, est ce que je dois lancer un "_pedit" "0" ? (defun c:borax (/ ent REP EP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (cond ((= REP "A1") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint de Départ: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant ou fin (Return pour FIN): ")) (command pt) ) (command "_chprop" (entlast) "" "_la" SRMV_Bordure_A1_AVANT "") (setq EP 0.02) (setq DC 0.2) (command "_chprop" (entlast) "" "_la" SRMV_Bordure_A1_ARRIERE "") ) ((= REP "A2") (Prompt "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>" ) (terpri) (setq pt (getpoint "\nPoint d'origine: ")) (command "polylign" pt "la" 0.02 0.02) (while pt (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")) (command pt) ) (setq EP 0.02) (setq DC 0.15) ) ) (if (setq ent (car (entsel))) (progn (command "_.offset" DC ent pause "") (command "_.pedit" (entlast) "la" EP "") ) ; fin progn ) ; fin if (princ) ) “L'environnement est important, pour sauver un arbre, mangez un castor !”
Red Posté(e) le 23 février 2017 Posté(e) le 23 février 2017 Solution trouvé par Bonuscad, (defun c:boraxt ( / REP DC) (setvar "OSMODE" 6) (initget "A1 A2") (setq REP (getkword "\nType de bordure [A1/A2] <A1> : ")) (if (not rep) (setq rep "A1") ) (if (not (tblsearch "LAYER" "Bordure_A1_AVANT")) (command "_.layer" "_new" "Bordure_A1_AVANT" "") ) (if (not (tblsearch "LAYER" "Bordure_A1_ARRIERE")) (command "_.layer" "_new" "Bordure_A1_ARRIERE" "") ) (if (not (tblsearch "LAYER" "Bordure_A2_AVANT")) (command "_.layer" "_new" "SRMV_Bordure_A2_AVANT" "") ) (if (not (tblsearch "LAYER" "Bordure_A2_ARRIERE")) (command "_.layer" "_new" "Bordure_A2_ARRIERE" "") ) (prin1 "\nCliquer le parcour de votre réseau <Taper (Return) pour FIN>") (command "_.pline" pause "_width" 0.02 0.02) (while (not (zerop (getvar "CMDACTIVE"))) (command pause) ) (cond ((= REP "A1")(command "_.chprop" (entlast) "" "_layer" "Bordure_A1_AVANT" "") (setq DC 0.2) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "Bordure_A1_ARRIERE" "") (prin1) ) ((= REP "A2")(command "_.chprop" (entlast) "" "_layer" "SBordure_A2_AVANT" "") (setq DC 0.15) (command "_.offset" DC (entlast) pause "") (command "_.chprop" (entlast) "" "_layer" "Bordure_A2_ARRIERE" "") (prin1) ) ) ) c'est la commande (command "_.chprop" (entlast) "" "_layer" "SBordure_A2_AVANT" "") qui à résolu mon soucis. Pour ma part le sujet est clos et résolu un grand MERCI à tous !!! :D “L'environnement est important, pour sauver un arbre, mangez un castor !”
didier Posté(e) le 23 février 2017 Posté(e) le 23 février 2017 Coucou je n'ai pas suivi toutes tes questions intermédiaires mais si c'est résolu et si j'ai pu aider je suis content. amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
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