-
Compteur de contenus
1 489 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par zebulon_
-
Bonjour, les coefficients de proportionnalité entre le modèle et le style de cote c'est tout simplement l'échelle. Mon but est d'avoir un plan avec des cotes homogènes quelle que soit l'échelle. Si, sur le même plan, j'ai une vue au 1:100ème et un détail au 1:5ème, les cotes auront le même aspect en espace papier et une cote au 1:5ème sera 20x plus petite qu'une cote au 1:100ème. En espace objet, une cote au 1:100ème est 100x plus grande que ce que je souhaite obtenir en espace papier puisque quand je fais une fenêtre FMULT j'applique un rapport de 1/100. Ce qui me fait retomber sur mes pieds quel que soit l'échelle. Voilà, c'est la règle que je m'étais imposée, puisque cela me semblait logique. Amicalement Zebulon_
-
Moi aussi, mais pas mon comptable, ni le contrôleur fiscal et autre URSSAF... Il ne s'agit pas de donner suite à un litige, mais tout simplement d'avoir une comptabilité à jour avec toutes les factures "papier" qui correspondent aux dépenses. Je suis tout simplement obligé d'avoir une facture papier, alors autant que ce soit le fournisseur qui l'édite. Si c'était une facture pour un particulier, il est souhaitable qu'elle soit dématérialisée puisqu'il n'est pas tenu de produire une comptabilité, mais proposer une facture dématérialisée à un professionnel cela n'a pas (encore) de sens. Amicalement Vincent
-
si tu veux ajouter un calque de plus, il faut modifier cette liste (setq LIST_CALQUE '( ((0 . "Divers") (1 . "BAC COTATIONS DIVERS") (2 . "4")) ((0 . "Charpente") (1 . "BAC COTATIONS CHARPENTE") (2 . "8")) ((0 . "Semelles") (1 . "BAC SEMELLES COTATIONS") (2 . "2")) ((0 . "Pieux") (1 . "BAC PIEUX COTATIONS") (2 . "4")) ((0 . "Longrines") (1 . "BAC LONGRINES COTATIONS") (2 . "4")) ((0 . "Voiles-Poteaux") (1 . "BAC VOILES-POTEAUX COTATIONS") (2 . "4")) ((0 . "Poutres-linteaux") (1 . "BAC POUTRES-LINTEAUX COTATIONS") (2 . "4")) ((0 . "Ferraillage") (1 . "BAC FERRAILLAGE COTATIONS") (2 . "4")) ((0 . "Réseau 1") (1 . "BAC RESEAU1 COTATIONS") (2 . "211")) ((0 . "Réseau 2") (1 . "BAC RESEAU2 COTATIONS") (2 . "5")) ((0 . "Réseau 3") (1 . "BAC RESEAU3 COTATIONS") (2 . "71")) ((0 . "Réseau 4") (1 . "BAC RESEAU4 COTATIONS") (2 . "40")) [surligneur] ((0 . "Réseau 5") (1 . "BAC RESEAU5 COTATIONS") (2 . "28")) [/surligneur] ) ) le code 0 correspond à ce qui est affiché dans la boite de dialogue, le code 1 au nom du calque et le code 2 à sa couleur. Si tu veux rajouter un aspect de cotation supplémentaire, il faut modifier cette liste (setq LIST_ASPECT '( ((0 . "Classique") (1 . "COT CLASSIQUE")) ((0 . "Axe Droite") (1 . "COT AXE DROITE")) ((0 . "Axe Gauche") (1 . "COT AXE GAUCHE")) ((0 . "Réservation") (1 . "COT RESERVATION")) [surligneur] ((0 . "Cot verdammi") (1 . "COT VERDAMMI"))[/surligneur] ) ) où le code 0 correspond à ce qui est marqué dans le DCL et le code 1, la racine du nom de style de cote. Et pour que ça marche il faut rajouter un style COT VERDAMMI-GABARIT dans le fichier gabarit dwg. Le reste, ça devrait suivre. Amicalement Vincent PS : COT VERDAMMI, ça veut dire "nom de Dieu" en Alsacien et c'est un juron qu'on entend assez souvent par chez nous.
-
Bonjour, La définition des styles de cote dans le gabarit dwt devient inutile, autant les enlever... Quand tu passeras du côté de Strasbourg, on pourra déjeuner ensemble. C'est toi qui paye. :) On ne sait jamais. Et puis, entre bétonneux, faut bien s'entraider, non ? Amicalement Vincent
-
Bonjour, j'ai déposé au même endroit une mise à jour Amicalement Vincent [Edité le 16/5/2008 par zebulon_]
-
lapsus révélateur :) Amicalement Vincent
-
Bonjour, Cela m'amuse : L'argument de la protection de l'environnement à bon dos. C'est surtout surtout moins cher pour celui qui doit envoyer la facture s'il économise l'impression et le cout de l'envoi. En plus il faut les appeler pour en "bénéficier" Le petit (*) en prime. Sont gonflés quand même :( Amicalement Vincent [Edité le 15/5/2008 par zebulon_]
-
Bonjour, J'ai déposé les fichiers ici . En même temps, je teste comment on peut partager de fichiers par le site de mon FAI. Donc, si ça marche pas, c'est que j'ai dû faire quelque chose de travers. Le dossier contient 3 fichiers dwg qui contiennent les modèles de cotation (en m, mm et cm), un fichier dcl et un fichier lsp, le tout à metre dans un répertoire référencé dans les outils/options/fichiers/chemin de recherche de fichiers de support Amicalement Vincent
-
trie ascendants de points
zebulon_ a répondu à un(e) sujet de PHILPHIL dans Pour aller plus loin en LISP
bonjour, le (progn est inutile ici et le while peut être remplacé par un (repeat (sslength ENTG1).. Il faut peut être aussi faire un vl-load-com pour pouvoir utiliser les fonctions fournies par Visual Lisp. (suivant la version d'autocad, c'est nécessaire ou non) ;;--------------------------------- ;;;ajouter des point dans des cotes ;;--------------------------------- (defun C:APC3 () (vl-load-com) (prompt "CLIQUER SUR LA COTE(S) A MODIFIER POUR ADITIONNER DES POINTS:" ) (setq ENTG1 NIL) (while (null ENTG1) (setq ENTG1 (ssget '((0 . "DIMENSION")))) ) (setq COMPT 0) (setq listpoint nil) (repeat (sslength ENTG1) (setq ENT (entget (ssname ENTG1 COMPT))) (setq NONENT (cdr (assoc -1 ENT)) STYLECOTE (cdr (assoc 3 ENT)) CALQCOTE (cdr (assoc 8 ENT)) POINT10 (trans (cdr (assoc 10 ENT)) 0 1) POINT13 (trans (cdr (assoc 13 ENT)) 0 1) POINT14 (trans (cdr (assoc 14 ENT)) 0 1) ANGCOTE (cdr (assoc 50 ENT)) ;;; ASX1 (car (getvar "ucsxdir")) ;;; ASX2 (cadr (getvar "ucsxdir")) listpoint (cons point13 listpoint) listpoint (cons point14 listpoint) ) (setq COMPT (1+ COMPT)) ) (setq listpointx (vl-sort listpoint (function (lambda (p1 p2) (< (car p1) (car p2)) ) ) ) ) (setq listpointy (vl-sort listpoint (function (lambda (p1 p2) (< (cadr p1) (cadr p2))) ) ) ) ;;; (command "scu" "p") (princ) ) Ce serait aussi plus simple si tu nous disais quel est le message d'erreur ;) Amicalement Vincent -
Bon ben voilà, j'ai réussi à faire ce que je voulais. Donc : j'ai un fichier dans lequel j'ai défini un style de cote, valable pour un dessin au 1/1ème. Fichier que j'ai appelé CADSYS-COT0.dwg et qui est défini en mètres. (j'en ai fait 2 autres similaires dans le cas où je bosse en cm ou en mm, que j'ai appelé CADSYS-COT1.dwg et CADSYS-COT2.dwg, mais ce n'est pas le plus important) Ce style de cote a cette allure : http://img294.imageshack.us/img294/8251/ddimdz7.jpg Il s'appelle CADSYS-COT-GABARIT qui possède 3 styles dépendants qui définissent les particularités pour les cotes angulaires, rayon et diamètre (il pourrait y en avoir d'autres). Ce qu'il faut savoir, c'est que ces styles dépendants s'appellent CADSYS-COT-GABARIT$1 (ou $2, $3 etc... en fonction de leur utilisation). Le but est de copier dans un nouveau fichier ce style de cote, avec tous ses styles dépendants, de leur appliquer une échelle générale (par exemple 50, pour une utilisation au 1/50ème) et de les renommer avec un nom correspondant à l'échelle (par exemple CADSYS-COT-50). Pour ce faire, j'ai utilisé l'excellent lisp (defun Ouvrir_dessin_dbx (dwg / dbx) (if (< (atoi (substr (getvar "ACADVER") 1 2)) 16) (setq dbx (vlax-create-object "ObjectDBX.AxDbDocument")) (setq dbx (vlax-create-object (strcat "ObjectDBX.AxDbDocument." (substr (getvar "ACADVER") 1 2)))) ) (vla-open dbx dwg) dbx ) du non moins excellent Patrick-35 et pour importer, cela donne ceci (defun create_dimstyle (ECH UNITS / Dbx DimName DimModel NOMFIC DIMST elst ActDimStyle AcDoc ForItem NAME POS EXT) (setq AcDoc (vla-get-activedocument (vlax-get-acad-object))) (setq DimName (strcat "CADSYS-COT-" ECH)) (setq DimModel "CADSYS-COT-GABARIT") (if (not (tblsearch "DIMSTYLE" DimModel)) (progn (setq NOMFIC (findfile (strcat "CADSYS-COT" UNITS ".DWG"))) (setq Dbx (ouvrir_dessin_dbx NOMFIC)) (setq DIMST (vla-get-dimstyles Dbx)) (vlax-for FOR-ITEM DIMST (setq NAME (vla-get-name FOR-ITEM)) (if (setq POS (vl-string-search "$" NAME)) (setq EXT (substr NAME (+ POS 1) (strlen NAME))) (setq EXT "") ) (if (and (wcmatch NAME (strcat DimModel "*")) (not (tblsearch "DIMSTYLE" (strcat DimName EXT)))) (progn (vla-CopyObjects Dbx (vlax-safearray-fill (vlax-make-safearray vlax-vbObject '(0 . 0)) (list (vla-item DIMST NAME)) ) (vla-get-dimstyles AcDoc) ) ;; changer d'échelle (setq elst (entget (tblobjname "DIMSTYLE" NAME))) (if (assoc 40 elst) (entmod (subst (cons 40 (distof ECH 2)) (assoc 40 elst) elst)) (entmod (append elst (list (cons 40 (distof ECH 2))))) ) ;; changer de nom (entmod (subst (cons 2 (strcat DimName EXT)) (assoc 2 elst) elst)) ) ) ) (vlax-release-object dbx) ) (alert (strcat DimModel " présent dans le fichier")) ) ;; activer le style de cote DimName (setq ActDimStyle (vla-item (vla-get-dimstyles AcDoc) DimName)) (vla-put-ActiveDimStyle AcDoc ActDimStyle) ) où ECH est un texte qui décrit l'échelle et UNITS qui décrit l'unité de travail Exemple : (Create_Dimstyle "50" "0") pour importer et rendre actif un style de cote au 1/50ème à partir du fichier CADSYS-COT0.dwg Amicalement Zebulon_ PS : j'ai un peu changé le lisp, parce que je me suis rendu compte que les cotes dépendantes sont purgeables. Le lisp précédent ne les recréait pas si le style de cote "racine" existait toujours. [Edité le 14/5/2008 par zebulon_]
-
Bonjour, Cela m'a bien l'air d'être le cas ici et on va utiliser le bon vieux entmod qui a fait ses preuves. Pour bseb67, justement, je veux autant que possible éviter d'utiliser les command. Dans l'exemple que tu donnes où dimscale est effectivement une commande, mais la variable dimscale existe également. On peut donc jouer avec en utilisant getvar et setvar. En d'autres temps, les cotes ne pouvaient s'utiliser qu'avec un sous-menu "cot" ou "cot1" (_dim ou _dim1) et on peut toujours écrire ce genre de code : (command "_dim1" "_restore" "CADSYS-COT-1") (command "_dim1" "DIMSCALE" 50) (command "_dim1" "_save" "CADSYS-COT-50") Mais ce n'est pas mieux, puisqu'il y a toujours les command ;) Merci Amicalement Vincent
-
Bonjour, J'ai un style de cote dont je souhaite changer l'échelle générale ;; récupérer la collection de style de cotes (setq DIMST (vla-get-dimstyles (vla-get-activedocument (vlax-get-acad-object)))) ;;extraire le style de cote CADSYS-COT-50 (setq DI (vla-item DIMST "CADSYS-COT-50")) après, quand je fais un dump j'obtiens et je n'ai que Name comme propriété. Je suppose que les propriétés du style de cote sont stockées ailleurs (dictionnaire, xdata ?) et comment on peut modifier ces propriétés (hauteur de texte, echelle générale etc ?) Merci Vincent
-
A droite ou à gauche ?
zebulon_ a répondu à un(e) sujet de Didier-AD dans Pour aller plus loin en LISP
Bonjour, c'est sûr qu'avec mon BEPC+2, 30 lignes c'est trop pour suivre. Les trucs plus compliqués, on laisse ça aux ingénieurs. C'est pour ça qu'ils sont payés plus cher : ils trouvent des solutions compliquées a des problèmes simples. Amicalement Zebulon_ -
Positionnement a une certaine distance sur une polyligne
zebulon_ a répondu à un(e) sujet de lecrabe dans Routines LISP
il a additionné l'abscisse et l'ordonnée du point saisi avec l'abscisse et l'ordonnée du point de départ de la polyligne pour faire une sorte de translation Sauf erreur de ma part Amicalement Vincent -
Positionnement a une certaine distance sur une polyligne
zebulon_ a répondu à un(e) sujet de lecrabe dans Routines LISP
Bonjour, je n'ai pas bien compris la question. Je pense qu'il s'agit de trouver un point situé sur la polyligne à une certaine distance du départ puisque le Décapode nous dit qu'il "circule sur les polylignes". C'est le xx.yy qui n'est pas très clair dans la question. On peut penser que tu souhaites saisir un point, mais je pense que tu souhaites saisir une distance ? (defun c:ptatdist () (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) (setq sp (if (= 1 (getvar "CVPORT")) (vla-get-PaperSpace *acdoc*) (vla-get-ModelSpace *acdoc*) ) ) (setq ent (car (entsel))) (setq x (getdist "\nDistance depuis départ :")) (setq vlaobj (vlax-ename->vla-object ent) ;;; le reste est pour mémoire, pour voir ce qu'on peut faire avec les fonctions vlax-curve pt_org (vlax-curve-getStartPoint vlaobj) pt_end (vlax-curve-getEndPoint vlaobj) param_start (vlax-curve-getStartParam vlaobj) param_end (vlax-curve-getEndParam vlaobj) perim_obj (vlax-curve-getDistAtParam vlaobj param_end) ;;; fin pour mémoire ) (vla-addPoint sp (vlax-3d-point (vlax-curve-getPointAtParam vlaobj (vlax-curve-getParamAtDist vlaobj x))) ) ) ou un truc dans le genre... Amicalement Vincent -
Mouais, Fallait pas le pousser trop loin pour avoir un super plantage... http://img145.imageshack.us/img145/5585/bricscadxr6.jpg Bon courage... Amicalement Vincent
-
Bonjour, . C'était plutôt une nouvelle question... J'ai aussi essayé, il y a quelque temps il faut l'avouer, Intellicad et consorts. Je suis également resté un peu sur ma faim et je me suis dit que c'était une bonne alternative... mais à Autocad LT, compte tenu du prix.Je peux me tromper et si BricsCAD et LE logiciel qu'il nous faut il faudrait l'essayer. Je suis en train de télécharger Bricscad Pro version 8.1.7-2 française pour Windows et regarder un peu ce qu'elle a dans la brioche. Amicalement Vincent
-
Bonjour, c'est sûr que pour 500 ou 600 €, on peut se demander ce que ça vaut. Mais, apparemment Mais, quand on regarde le tableau comparatif, ça à l'air moins évident... Faudrait pouvoir télécharger une version d'essai pour voir ce que Bricscad a dans les tripes, mais où ? Amicalement Vincent
-
J'ai aussi remarqué cela sur la version 2007. Cela ne se produit pas toujours et je n'ai pas encore trouvé pourquoi tel fichier m'affiche _qsave Milieu et tel autre non. Mystère... Mais comme ça ne plante pas, on va dire que c'est un détail cosmétique Amicalement Vincent
-
Bonjour, la version française est la traduction de la version anglaise. Donc, dans la version française, il y a la commande en français et son original en anglais (qu'on obtient, comme dit, en rajoutant le _ devant). La commande (getcname "_line") donne "LIGNE" et la commande (getcname "LIGNE") donne "_LINE" La version anglaise, elle, ne connait que l'anglais et c'est normal. La commande (getcname "_line") donne "LINE" et la commande (getcname "LINE") donne "_LINE" Si _LIGNE devait fonctionner sur la version anglaise, ça serait bien pour un français mais ne servirait rien à un allemand qui préfèrerait _LINIE etc... La parade serait de définir des raccourcis dans le fichier AutoCAD.pgp de ta version anglaise où tu définies les commandes françaises comme des raccourcis et y indique son équivalent en anglais pour les commandes les plus fréquemment utilisées. LIGNE, *LINE CERCLE, *CIRCLE etc ... ça devrait fonctionner Amicalement [Edité le 25/4/2008 par zebulon_]
-
Matrice UCS (scu) --> DCS (scv)
zebulon_ a répondu à un(e) sujet de Patrick_35 dans Pour aller plus loin en LISP
j'ai mis cette ligne en commentaire pour avoir le point pt dans le scu utilisateur. Belle variante en tout cas, qu'il va falloir que je regarde de plus près. Merci Amicalement Vincent -
Matrice UCS (scu) --> DCS (scv)
zebulon_ a répondu à un(e) sujet de Patrick_35 dans Pour aller plus loin en LISP
Houuu, j'ai du mal avec le (trans (trans PT 0 2) 2 3) :casstet: Donc, on va y aller par étape, vous me direz si je me trompe. (trans PT 0 2) transforme un point du système de coordonnées universel vers le SCV de la fenêtre courante. et (trans RES 2 3) transforme un point de la fenêtre espace modèle courant vers le SCV de l'espace papier. Mais il se trouve que dans ma fmult je ne suis pas en SCG (ça marcherait si c'était le cas), mais avec un SCU utilisateur et là, forcément, ça donne n'importe quoi. Donc, si j'écris (trans (trans PT 1 2) 2 3) je pense que c'est mieux et ça marche aussi quand on est en SCG, qui n'est finalement qu'un SCU particulier. Imbriquer des trans, suffisait d'y penser ! Maintenant, grâce à vous, je vais pouvoir passer pour un cador avec la fonction trans :) Amicalement Vincent -
Matrice UCS (scu) --> DCS (scv)
zebulon_ a répondu à un(e) sujet de Patrick_35 dans Pour aller plus loin en LISP
Bonjour, Je me suis cassé un peu la tête sur un sujet similaire et j'ai obtenu quelque chose qui marche, mais c'est un peu Mr Bricolage... Donc, mon but est de représenter un objet 3D (une culée d'un pont, pour être précis) en isométrie dans un fenêtre Fmult et de donner des cotes de nivellement NGF dans l'espace papier. http://img408.imageshack.us/img408/545/culeemz8.jpg Donc, je clique un point en espace papier et je souhaite obtenir le point correspondant du scu local de la fenêtre, pour en extraire la valeur Z et écrire cette valeur sur l'espace papier. Ce que j'ai écrit : (defun c:niviso () (setvar "DIMZIN" 0) ; pour que le rtos ne sucre pas les zero de fin (command "_mspace") (setq PT (getpoint "\nPoint à niveler")) (command "_pspace") (setq PTL1 (getpoint "\nPremier point : ")); (setq PTL2 (getpoint PTL1 "\nDeuxième point : ")) (setq OldOS (getvar "OSMODE")) (setvar "OSMODE" 0) (command "_leader" PTL1 PTL2 "" (rtos (caddr PT) 2 3) "" ) (setvar "OSMODE" OldOS) ) là où c'est nul, c'est qu'il faut que je saisisse PT et PTL1 qui sont au même endroit, sauf que l'un est en mspace et l'autre en pspace. Est-ce que le transspace peut s'adapter à mon cas ou bien je suis complètement hors sujet ? Merci Amicalement Vincent [Edité le 23/4/2008 par zebulon_] -
Bon, si c'est Jean-Paul Gaultier ou Jean-Charles de Castelbajac qui dessinent les boites, pourquoi pas ? On pourra décorer nos bureaux avec... Amicalement Vincent
-
Moi, on m'a tapé 400€ dans ma poche, alors j'ai bien le droit de taper un peu sur la tête. Cela à le don de m'énerver quand c'est le borde... enfin, je veux dire, le ... euh, non je ne trouve pas d'autre mot,... et que c'est la faute de personne. Pire, c'est toujours la faute de l'autre. M'en fout de savoir de qui c'est la faute, ce que je souhaite c'est de trouver quelqu'un qui se prenne par la main et qui y mette de l'ordre, dans un délai raisonnable. Et un an et demi, je n'appelle pas ça un délai raisonnable. Le client est roi, il parait. Il parait ? Amicalement Vincent
