dr.loveless Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 Impossible de trouver le code me permettant de mettre une certaine echelle à une multiligne ("l'échelle" étant la distance entre les deux lignes). Merci Le DOC
Tramber Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 CMLSCALE ? tout ce que j'ai c'est une variable système.C'est le code DXF que tu cherches ?---> 40 L'échelle étant le rapport de pultiplication pour la distance entre 2 lignes, ce qui n'est pas la même chose. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
rebcao Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 Bonjour dr.loveless, un petit truc pour compléter la réponse de Tramber, pour tous les bidouilleurs fous du "SLIP", VBA ou des macros avec ou sans DIESEL et bien sur les Scripteux, c'est pas une maladie ! n'est ce pas Tramber ? si vous cherchez une variable ? exemple, celle cité ci-dessus (CMLSCALE) : 1. utiliser normalement la commande, en tapant une valeur bien spéciale(exemple Tintin.Tintin ou pour ceux qui n'ont pas "pigé" 77.77). 2. Utiliser et Terminer normalement la commande (ici Multi-lignes), puis taper au clavier MODIFVAR et entrée, puis ? Entrée et Entrée pour <*> La liste défile, il n'y a plus qu'à trouver où se cache notre valeur 77.77...???? Entrée, Entrée, Entrée,...jusqu'à tomber dessus. Il fut une époque (toujours celle de la Préhistoire), où il n'était pas possible de tout de suite taper une variable système, il fallait toujours passer pas cette fameuse MODIFVAR et le nom de la variable). Ce principe est valable pour presque toutes les variables sytèmes. Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
bonuscad Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 La réponse d'un "Slippeur" fou. Un truc qui me sert bien quand je programme pour identifier la modification d'une variable.Je l'initialise en lancant la procédure une 1ere foisJe lance ma commande standard ou même un prog lisp ou autre que je soupconne de modifier une variable sans la remettre dans son état initial.Je relance la procédure une 2eme fois, et magique j'ai les variables modifiées entre les 2 instants "T" NB: Développer avec les variables de la 2002, on peut adapter pour les autres versions. commande STATVAR (defun c:statvar ( / l_var l_rslt renvoi) (setq l_var '( "ACADLSPASDOC" "ACADPREFIX" "ACADVER" "ACISOUTVER" "AFLAGS" "ANGBASE" "ANGDIR" "APBOX" "APERTURE" "AREA" "ATTDIA" "ATTMODE" "ATTREQ" "AUDITCTL" "AUNITS" "AUPREC" "AUTOSNAP" "BACKZ" "BINDTYPE" "BLIPMODE" "CDATE" "CECOLOR" "CELTSCALE" "CELTYPE" "CELWEIGHT" "CHAMFERA" "CHAMFERB" "CHAMFERC" "CHAMFERD" "CHAMMODE" "CIRCLERAD" "CLAYER" "CMDACTIVE" "CMDDIA" "CMDECHO" "CMDNAMES" "CMLJUST" "CMLSCALE" "CMLSTYLE" "COMPASS" "COORDS" "CPLOTSTYLE" "CPROFILE" "CTAB" "CURSORSIZE" "CVPORT" "DATE" "DBMOD" "DCTCUST" "DCTMAIN" "DEFLPLSTYLE" "DEFPLSTYLE" "DELOBJ" "DEMANDLOAD" "DIASTAT" "DIMADEC" "DIMALT" "DIMALTD" "DIMALTF" "DIMALTRND" "DIMALTTD" "DIMALTTZ" "DIMALTU" "DIMALTZ" "DIMAPOST" "DIMASO" "DIMASZ" "DIMATFIT" "DIMAUNIT" "DIMAZIN" "DIMBLK" "DIMBLK1" "DIMBLK2" "DIMCEN" "DIMCLRD" "DIMCLRE" "DIMCLRT" "DIMDEC" "DIMDLE" "DIMDLI" "DIMDSEP" "DIMEXE" "DIMEXO" "DIMFIT" "DIMFRAC" "DIMGAP" "DIMJUST" "DIMLDRBLK" "DIMLFAC" "DIMLIM" "DIMLUNIT" "DIMLWD" "DIMLWE" "DIMPOST" "DIMRND" "DIMSAH" "DIMSCALE" "DIMSD1" "DIMSD2" "DIMSE1" "DIMSE2" "DIMSHO" "DIMSOXD" "DIMSTYLE" "DIMTAD" "DIMTDEC" "DIMTFAC" "DIMTIH" "DIMTIX" "DIMTM" "DIMTMOVE" "DIMTOFL" "DIMTOH" "DIMTOL" "DIMTOLJ" "DIMTP" "DIMTSZ" "DIMTVP" "DIMTXSTY" "DIMTXT" "DIMTZIN" "DIMUNIT" "DIMUPT" "DIMZIN" "DISPSILH" "DISTANCE" "DONUTID" "DONUTOD" "DRAGMODE" "DRAGP1" "DRAGP2" "DWGCHECK" "DWGCODEPAGE" "DWGNAME" "DWGPREFIX" "DWGTITLED" "EDGEMODE" "ELEVATION" "EXPERT" "EXPLMODE" "EXTMAX" "EXTMIN" "EXTNAMES" "FACETRATIO" "FACETRES" "FILEDIA" "FILLETRAD" "FILLMODE" "FONTALT" "FONTMAP" "FRONTZ" "FULLOPEN" "GRIDMODE" "GRIDUNIT" "GRIPBLOCK" "GRIPCOLOR" "GRIPHOT" "GRIPS" "GRIPSIZE" "HANDLES" "HIDEPRECISION" "HIGHLIGHT" "HPANG" "HPBOUND" "HPDOUBLE" "HPNAME" "HPSCALE" "HPSPACE" "HYPERLINKBASE" "IMAGEHLT" "INDEXCTL" "INETLOCATION" "INSBASE" "INSNAME" "INSUNITS" "INSUNITSDEFSOURCE" "INSUNITSDEFTARGET" "ISAVEBAK" "ISAVEPERCENT" "ISOLINES" "LASTANGLE" "LASTPOINT" "LASTPROMPT" "LENSLENGTH" "LIMCHECK" "LIMMAX" "LIMMIN" "LISPINIT" "LOCALE" "LOGFILEMODE" "LOGFILENAME" "LOGFILEPATH" "LOGINNAME" "LTSCALE" "LUNITS" "LUPREC" "LWDEFAULT" "LWDISPLAY" "LWUNITS" "MAXACTVP" "MAXOBJMEM" "MAXSORT" "MBUTTONPAN" "MEASUREINIT" "MEASUREMENT" "MENUCTL" "MENUECHO" "MENUNAME" "MIRRTEXT" "MODEMACRO" "MTEXTED" "NOMUTT" "OFFSETDIST" "OFFSETGAPTYPE" "OLEHIDE" "OLEQUALITY" "OLESTARTUP" "ORTHOMODE" "OSMODE" "OSNAPCOORD" "PAPERUPDATE" "PDMODE" "PDSIZE" "PELLIPSE" "PERIMETER" "PFACEVMAX" "PICKADD" "PICKAUTO" "PICKBOX" "PICKDRAG" "PICKFIRST" "PICKSTYLE" "PLATFORM" "PLINEGEN" "PLINETYPE" "PLINEWID" "PLOTID" "PLOTROTMODE" "PLOTTER" "PLQUIET" "POLARADDANG" "POLARANG" "POLARDIST" "POLARMODE" "POLYSIDES" "POPUPS" "PROJECTNAME" "PROJMODE" "PROXYGRAPHIC" "PROXYNOTICE" "PROXYSHOW" "PSLTSCALE" "PSPROLOG" "PSQUALITY" "PSTYLEMODE" "PSTYLEPOLICY" "PSVPSCALE" "PUCSBASE" "QTEXTMODE" "RASTERPREVIEW" "REFEDITNAME" "REGENMODE" "RE-INIT" "RTDISPLAY" "SAUVACIS" "SAVEFILE" "SAVEFILEPATH" "SAVENAME" "SAVETIME" "SCREENBOXES" "SCREENMODE" "SCREENSIZE" "SDI" "SHADEDGE" "SHADEDIF" "SHORTCUTMENU" "SHPNAME" "SKETCHINC" "SKPOLY" "SNAPANG" "SNAPBASE" "SNAPISOPAIR" "SNAPMODE" "SNAPSTYL" "SNAPTYPE" "SNAPUNIT" "SOLIDCHECK" "SORTENTS" "SPLFRAME" "SPLINESEGS" "SPLINETYPE" "SURFTAB1" "SURFTAB2" "SURFTYPE" "SURFU" "SURFV" "SYSCODEPAGE" "TABMODE" "TARGET" "TDCREATE" "TDINDWG" "TDUCREATE" "TDUPDATE" "TDUSRTIMER" "TDUUPDATE" "TEMPPREFIX" "TEXTEVAL" "TEXTFILL" "TEXTQLTY" "TEXTSIZE" "TEXTSTYLE" "THICKNESS" "TILEMODE" "TOOLTIPS" "TRACEWID" "TRACKPATH" "TREEDEPTH" "TREEMAX" "TRIMMODE" "TSPACEFAC" "TSPACETYPE" "TSTACKALIGN" "TSTACKSIZE" "UCSAXISANG" "UCSBASE" "UCSFOLLOW" "UCSICON" "UCSNAME" "UCSORG" "UCSORTHO" "UCSVIEW" "UCSVP" "UCSXDIR" "UCSYDIR" "UNDOCTL" "UNDOMARKS" "UNITMODE" "*USERI1" "*USERI2" "*USERI3" "*USERI4" "*USERI5" "*USERR1" "*USERR2" "*USERR3" "*USERR4" "*USERR5" "*USERS1" "*USERS2" "*USERS3" "*USERS4" "*USERS5" "VIEWCTR" "VIEWDIR" "VIEWMODE" "VIEWSIZE" "VIEWTWIST" "VISRETAIN" "VSMAX" "VSMIN" "WHIPARC" "WMFBKGND" "WORLDUCS" "WORLDVIEW" "WRITESTAT" "XCLIPFRAME" "XEDIT" "XFADECTL" "XLOADCTL" "XLOADPATH" "XREFCTL" "ZOOMFACTOR" "*FORCE_PAGING" "*FLATLAND" "*ERRNO" "*ENTMODS" "*ENTEXTS" "*DBCSTATE" ;"*CPUTICKS" "*AXISUNIT" "*AUXSTAT" "*ADCSTATE" "*ACGIDUMPMODE" "*_VERNUM" "*_SERVER" "*_PKSER" ;"*_LINFO" "*USEACIS" "*RE-INIT" "*QAUCSLOCK" "*QAFLAGS" "*PROGRAM" "*PRODUCT" "*PHANDLE" "*OPMSTATE" "*NODENAME" "*MILLISECS" "*MAXOBJMEM" "*MACROTRACE" "*LAZYLOAD" "*GLOBCHECK" ) ) (initget 1 "Initial Comparaison") (cond ((eq (getkword "\n[initial/Comparaison] ?: ") "Initial") (setq l_ori (mapcar 'getvar l_var)) ) (T (if (null l_ori) (prompt "\nEtat Initial non mémorisé.\nExecutez l'option Initial") (progn (setq l_rslt (mapcar 'getvar l_var)) (setq renvoi (mapcar '(lambda (x y z) (if (not (equal x y)) (strcat "\n" z " a été modifié.") "" ) ) l_ori l_rslt l_var ) ) (if (null renvoi) (prompt "\nAucune variable modifiée.") (progn (textpage) (foreach n renvoi (if (not (eq n "")) (prompt n))) ) ) ) ) ) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
didier Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 hello,il est bougrement malin, le BonusCad.je vais de ce pas me l'adopter.ça peut servir aussi à vérifier deux machinesqui n'ont pas les mêmes réactions.en effet, je suis confronté souvent à des "pétages" de variables,avec maints applicatifs ...ce qui est dur à expliquer aux utilisateurs.merci beau cou à toua. Éternel débutant... Mon site perso : Programmer dans AutoCAD
didier Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 re hello,je vais arranger ça, dès que j'ai le temps.en effet, si on écrit un fichier,on pourra les comparer.comme ça, je verrai tout de suite la variable susceptiblede créer le dysfonctionnement.Merci Beaucoup BonusCadça fait un moment que je pensais à quelque chose de ressemblant,mais maintenant, c'est concret.ciao Éternel débutant... Mon site perso : Programmer dans AutoCAD
Tramber Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 CDATE a été modifié.DATE a été modifié.LASTPROMPT a été modifié.TDINDWG a été modifié.TDUSRTIMER a été modifié.*MILLISECS a été modifié. Ca c'est quand on a rien changé dans le dessin. Passionnant, non ? (je vais réviser mon mapcar, car je l'utilise sans doute trop timidement, voilà l'occas). Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 Hello Didier, ça peut servir aussi à vérifier deux machines qui n'ont pas les mêmes réactions.Je ne m'en suis jamais servi pour comparer 2 machines, mais pourquoi pas!? ;) Dans le même esprit j'ai aussi une routine qui compare les fonctions chargées en mémoire par rapport à un état initial quel l'on fixe à un moment choisi (c'est à dire après le chargement automatique de fonctions)Cela me sert principalement à voir si je n'ai pas oublié de déclarer des variables dans mon programme en local après son execution . Mais on peut voir aussi toutes les fonctions valides et les variables déclarées (cela fait une très longue liste)On peut découvrir des fonctions interressantes mais le Hic c'est qu'elle ne sont plus consultable en clair comme dans les anciennes versions à l'aide du ! (point d'exclamation) Si interessé, voir dans le téléchargement de Bonuscad les fichiers FC-INIT.LSP et FC-LOAD.LSPainsi que le fichier ATOMLST0.ORI qui est le fichier des fonctions standards basiques pour 2002. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Patrick_35 Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 Merci Bonuscad,Ce n'est pas souvent que je trouve des lisp intéressant, mais alors là bravo.Juste une chose, il est fait pour quelle version d'autocad ? @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 Merci de vos compliments à tous Je travaille essentiellement sous 2002, j'en suis pleinement satisfait. Quand je vois les misères rencontré avec la 2004, je ne me presse pas, surtout que je trouve les évolutions mineures et ne correspondant pas à mes besoins.J'ai essayé la 2004 sous 30 jours sur un poste Millenium (même pas XP) et j'ai rencontré des problèmes (il ne me reconnaissait plus les motifs de hachures ISO, j'ai jamais rien compris: pourtant j'ai fouillé) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
didier Posté(e) le 12 octobre 2004 Posté(e) le 12 octobre 2004 bonsoir,pour comparer deux machines,je pense faire un fichier texte,formaté précisement,de façon à pouvoir le comparer ligne à ligne,tu as fait quatre vingt dix pour cent du boulot ...au fait, on t'a remercié ? ;) ;) ;) ciao o o o Éternel débutant... Mon site perso : Programmer dans AutoCAD
dr.loveless Posté(e) le 15 octobre 2004 Auteur Posté(e) le 15 octobre 2004 Ben c'est bien, tout çà, mais on est sur le forum " VBA et VB", en lisp je sais comment faire , mais pas en VBA !!! Revenons-en à nos moutons, quelle est le code pour changer "le multiplicateur d'echelle" d'une multiligne, sous VBA ?? J'ai chercher au moins 3 heures et rien !!!! Le DOC
Serge Posté(e) le 16 octobre 2004 Posté(e) le 16 octobre 2004 dr.loveless, As-tu essayéThisDrawing.SetVariable "CMLSCALE", 100 Serge
dr.loveless Posté(e) le 19 octobre 2004 Auteur Posté(e) le 19 octobre 2004 La commande ThisDrawing.SetVariable "CMLSCALE", 100 fait que l'echelle de la MLINE est de 100, doncquand je dessinne une MLINE sur AutoCAD apres avoir lancer le code ci-avant, l'echelle de la MLINE sera bien de 100, mais en revanche si je dessine la MLINE en question depuis un VBA l'echelle sera tjs de 1 !! Pourquoi????? Le DOC
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