-
Compteur de contenus
2 523 -
Inscription
-
Dernière visite
-
Jours gagnés
24
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Fraid
-
Merci VtKp de te penché sur mon problème La commande _align me permet d'evité l'utilisation de matrices (elle le fait toute seule) et de n'avoir que 2 points a s’occuper les résultats que j'obtient on une précision suffisante pour mon activitée et a ete validé par mes clients et cela ne met pas 1/4 d'heures même sans lisp surtout pour passer du Lambert 2 au Lambert 2 Etendu ;) le but de cette routine, comme la plupart, est de gagner du tepms, d'eviter les erreurs de frappes et gagner en confort d'utilisation. mes essais de circebatch en mode 1 : mode fichier ce sont conclue par des échecs je veux bien voir ton script car les exemples sont rare et ceux fournis par ign ne fonctionne pas en l'etat Sinon je ne m'avoue pas vaincu si facilement je vais explorer plus profondement les lignes de commandes windows merci
-
J'ai essaye en mettant un delay cela change rien j'ai essayé avec les activex (defun Circe ( Pt typc1 typc2 / TempReturn strbat ) (setq strbat (strcat "\"C:\Program Files (x86)\Institut Géographique National\Circé France Batch 4.0\CirceBatch.exe\" -init Circe.ini -mode 0 -type 2 -sys1 2 -sys2 2 -typcoor1 3 " typc1 " -typcoor2 3 " typc2 " -H 0.0 -E " (rtos (car pt)) " -N " (rtos (cadr Pt)) " > \"C:\\TMP\\ReturnCirce.txt\"" ) ) (run_and_wait strbat) (setq TempReturn (open "C:\\TMP\\ReturnCirce.txt" "r") NewPt (str2lst (read-line TempReturn) " ") ) (close TempReturn) newpt ) (defun run_and_wait (strCommand / WScript_obj) ; strCommand — command string with arguments (theswamp.org) ; : "notepad.exe \"c:\\My Folder\\tmp.txt\"" ; Returns 0 | <%catch-all-apply-error%> | nil. (vl-load-com) (if (setq WScript_obj (vlax-get-or-create-object "WScript.Shell")) (vl-catch-all-apply 'vlax-invoke-method (list WScript_obj "Run" strCommand 4 :vlax-true)) );if );defun pas mieux En fait la question principale est Comment récupérer le retour d'une commande windows en lisp? quand on cherche circebatch dans le google, c'est pratiquement le désert... a part http://www.cadxp.com/XForum+viewthread-fid-115-tid-24155.html Y a t'il un autre moyen, sans pour cela récrire circé en lisp, d'intégrer un outil de géoreferencement simple dans Autocad? Merci
-
je vous livre la routine en entier qui théoriquement change le géoréférencement d'un dessin ;Lancements et tests (defun c:2t9 nil ;Lambert 2 en Lambert 2 Etentu (vla-startundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (getvar "worlducs") 0) (command "_ucs" "")) (ControlGeo 2) (if flagGéo (TranCirc "102" "120") (progn (princ "\nLe dessin ne semble pas être Géoréférencé dans un système pris en charge") (initget "Oui Non _Yes No") (if (eq (getkword (strcat "\nVoulez vous continuer ? [Oui/Non] < Non> : ")) "Yes") (TranCirc "102" "120") (princ "\nAbandon") ) ) ) (vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (setq flagGéo nil TextGéo nil) (princ) ) ;----------------- (defun c:1t9 nil ;Lambert 1 en Lambert 2 Etentu (vla-startundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (getvar "worlducs") 0) (command "_ucs" "")) (ControlGeo 1) (if flagGéo (TranCirc "101" "120") (progn (princ "\nLe dessin ne semble pas être Géoréférencé dans un système pris en charge") (initget "Oui Non _Yes No") (if (eq (getkword (strcat "\nVoulez vous continuer ? [Oui/Non] < Non> : ")) "Yes") (TranCirc "101" "120") (princ "\nAbandon") ) ) ) (vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (setq flagGéo nil TextGéo nil) (princ) ) ;----------------- (defun c:3t9 nil ;Lambert 3 en Lambert 2 Etentu (vla-startundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (getvar "worlducs") 0) (command "_ucs" "")) (ControlGeo 3) (if flagGéo (TranCirc "103" "120") (progn (princ "\nLe dessin ne semble pas être Géoréférencé dans un système pris en charge") (initget "Oui Non _Yes No") (if (eq (getkword (strcat "\nVoulez vous continuer ? [Oui/Non] < Non> : ")) "Yes") (TranCirc "103" "120") (princ "\nAbandon") ) ) ) (vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (setq flagGéo nil TextGéo nil) (princ) ) ;----------------- (defun c:9t1 nil ; Lambert 2 Etentu en Lambert 1 (vla-startundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (getvar "worlducs") 0) (command "_ucs" "")) (ControlGeo 9) (if flagGéo (TranCirc "120" "101") (progn (princ "\nLe dessin ne semble pas être Géoréférencé dans un système pris en charge") (initget "Oui Non _Yes No") (if (eq (getkword (strcat "\nVoulez vous continuer ? [Oui/Non] < Non> : ")) "Yes") (TranCirc "103" "120") (princ "\nAbandon") ) ) ) (vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (setq flagGéo nil TextGéo nil) (princ) ) ;----------------- (defun c:9t2 nil ; Lambert 2 Etentu en Lambert 2 (vla-startundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (getvar "worlducs") 0) (command "_ucs" "")) (ControlGeo 9) (if flagGéo (TranCirc "120" "102") (progn (princ "\nLe dessin ne semble pas être Géoréférencé dans un système pris en charge") (initget "Oui Non _Yes No") (if (eq (getkword (strcat "\nVoulez vous continuer ? [Oui/Non] < Non> : ")) "Yes") (TranCirc "103" "120") (princ "\nAbandon") ) ) ) (vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (setq flagGéo nil TextGéo nil) (princ) ) ;----------------- (defun c:9t3 nil ; Lambert 2 Etentu en Lambert 3 (vla-startundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (getvar "worlducs") 0) (command "_ucs" "")) (ControlGeo 9) (if flagGéo (TranCirc "120" "103") (progn (princ "\nLe dessin ne semble pas être Géoréférencé dans un système pris en charge") (initget "Oui Non _Yes No") (if (eq (getkword (strcat "\nVoulez vous continuer ? [Oui/Non] < Non> : ")) "Yes") (TranCirc "103" "120") (princ "\nAbandon") ) ) ) (vla-endundomark (vla-get-ActiveDocument (vlax-get-acad-object))) (setq flagGéo nil TextGéo nil) (princ) ) ;------------------------------------------------------------------------------------------------------------ ;Fonction Principale (defun TranCirc ( Dep Arr / oldcmdecho oldosmode cvue Xcv1 Ycv1 Pt1 Xcv2 Ycv2 Pt2 NPt1 NPt2 ToAl) (setq oldcmdecho (getvar "cmdecho") oldosmode (getvar "osmode") ) (setvar "cmdecho" 0) (setvar "osmode" 0) (setq ;à factoriser cvue (getvar "viewctr") Xcv1 (- (car cvue) 100) Ycv1 (- (cadr cvue) 100) Pt1 (list Xcv1 Ycv1) Xcv2 (+ (car cvue) 100) Ycv2 (+ (cadr cvue) 100) Pt2 (list Xcv2 Ycv2) NPt1 (Circe Pt1 Dep Arr) NPt2 (Circe Pt2 Dep Arr) ToAl (ssget "_x" (list (cons 410 "MODEL"))) ) (if ToAl (progn (command "_align" ToAl "" Pt1 NPt1 Pt2 NPt2 "" "o") (princ "\nTranslation Réussie") ) (princ "\nAucun objets dans le dessin") ) (setvar "cmdecho" oldcmdecho) (setvar "osmode" oldosmode) (princ ) ) ;------------------------------------------------------------------------------------------------------------ ;Fonction Utilisant Circé ;Arguments: Pt un point sous forme de liste, typc1 et typc2 Le type de coordonnée de départ et d'arrivée en chaine de caracteres ;101 [Lambert 1 Nord]/ 102[Lambert 2 Centre]/ 103[Lambert 3 Sud]/ 120[Lambert 2 étendu] (defun Circe ( Pt typc1 typc2 / TempReturn) (command "_.shell" (strcat "\"C:\Program Files (x86)\Institut Géographique National\Circé France Batch 4.0\CirceBatch.exe\" -init Circe.ini -mode 0 -type 2 -sys1 2 -sys2 2 -typcoor1 3 " typc1 " -typcoor2 3 " typc2 " -H 0.0 -E " (rtos (car pt)) " -N " (rtos (cadr Pt)) " > \"C:\\TMP\\ReturnCirce.txt\"" ) ) (setq TempReturn (open "C:\\TMP\\ReturnCirce.txt" "r") NewPt (str2lst (read-line TempReturn) " ") ) (close TempReturn) newpt ) ;--------------------------------------- ;Transforme une chaine de caractères en liste (Gile) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) ;---------------------------------------- ;Controle du géorérencement éventuel ;Arguments: LAMB entier (1 Lambert 1, 2 Lambert 2, 3 Lambert 3 et 9 Lambert 2 Etendu (defun ControlGeo ( LAMB / Xcvue Ycvue ) (setq Xcvue (car (getvar "viewctr")) Ycvue (cadr (getvar "viewctr")) ) (if (and(= LAMB 1) (> Xcvue 75000) (< Xcvue 1000000) (> Ycvue 100000) (< Ycvue 300000)) (setq flagGéo 1 TextGéo "Le plan semble être en Lambert 1 Zone Nord") ) (if (and(= LAMB 2) (> Xcvue 75000) (< Xcvue 750000) (> Ycvue 100000) (< Ycvue 450000)) (setq flagGéo 2 TextGéo "Le plan semble être en Lambert 2 Zone Centre") ) (if (and(= LAMB 3) (> Xcvue 260000) (< Xcvue 1000000) (> Ycvue 75000) (< Ycvue 350000)) (setq flagGéo 3 TextGéo "Le plan semble être en Lambert 3 Zone Sud") ) (if (and(= LAMB 9)(> Xcvue 72300) (< Xcvue 1030900) (> Ycvue 1700000) (< Ycvue 2681000)) (setq flagGéo 9 TextGéo "Le plan semble être en Lambert 2 Etendu") ) (if (= flagGéo nil) (setq TextGéo "\nLe plan ne semble pas être Géoréférencé")) TextGéo ) Bien sur cette méthode est valable sur des petits chantiers et sans prendre en compte l'altitude Il me manque pas grand chose pour finir cette routine juste récupérer la liste des nouveaux points quelqu'un aurait une idée? Merci [Edité le 31/5/2011 par Fraid]
-
La c'est moi qui ne comprend pas pourquoi tu ne comprend pas :exclam: Regarde bien le haut solide obtenu par Gile Tu crois que le maçon va suivre toute les pentes en plus cela serai certainement Banché Merci Gile je ne savais pas que l'on pouvait lisser 2 polyligne3D et avec ta solution on arrive a suivre les deux polylignes mais je maintient que cela n'est pas constructible ou si cela l'est cela n'a pas d'interet je pense qu'il ne faut pas oublier que notre travail est destiné au chantier
-
Bonjour, Si tu ne peux pas obtenir un solide avec une polyligne3D, c'est qu'il y a un probleme de "coplanairité" C'est d'ailleur le message que te renvois la 2008 Pour l'arase du mur c'est juste une question de bon sens met toi a la place du maçon bonne journée
-
Avec le fichier je comprend mieux ta polyligne 3d est inexpoitable en l'etat pour produire un solide par contre si tu met ton scu sur ton mur avec les x en haut et les y le long de ton mur tu peux dessiner une polyligne que tu n'a plus qu'a extruder je te joint un des murs et la polyligne en question http://dl.dropbox.com/u/27217009/Extrusion.dwg il est bien evident que l'arase superieur de ton mur ne pourra pas suivre exactement tes 2 polygnes3D choisi donc la plus haute Bonne chance
-
Bonjour, Le lien vers tes fichier ne fonctionne pas. Mais d’après ce que je vois tu décale ta polyligne vers le haut (après avoir changé ton scu en conséquence) tu la clot de chaque coté tu l'extrude de n'importe qu'elle taille tu tire dessus avec les poignées pour qu'elle ai la taille suffisante pour réaliser ta soustraction si j'ai bien compris :P
-
Voila la fonction (defun Circe ( Pt typc1 typc2 / TempReturn) (command "_.shell" (strcat "\"C:\Program Files (x86)\Institut Géographique National\Circé France Batch 4.0\CirceBatch.exe\" -init Circe.ini -mode 0 -type 2 -sys1 2 -sys2 2 -typcoor1 3 " typc1 " -typcoor2 3 " typc2 " -H 0.0 -E " (rtos (car pt)) " -N " (rtos (cadr Pt)) " > \"C:\\TMP\\ReturnCirce.txt\"" ) ) (setq TempReturn (open "C:\\TMP\\ReturnCirce.txt" "r") NewPt (str2lst (read-line TempReturn) " ") ) (close TempReturn) newpt ) ;Transforme une chaine de caractères en liste (Gile) (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) qui devrai me retourner la listes des coordonées du nouveau point il y a des fois des choses toutes simples qui ne veulent pas marcher :( j'avais oublier de dire qu'il faut installer Circebatch http://geodesie.ign.fr/index.php?page=circe et que je suis sur xp64 et Autocad 2011 [Edité le 28/5/2011 par Fraid]
-
[Résolu] (rtos) : pb avec la précision
Fraid a répondu à un(e) sujet de Bortch59 dans Débuter en LISP
Bonjour, A tu essayer en modifiant la variable dimzin, la mettre a 4 RTOS est dependant de pas mal de variables va voir dans l'aide du developer -
Bonjour, J'essais de me servir de la version batch de circé afin de l'integrer dans un lisp. voici le .bat "C:\Program Files (x86)\Institut Géographique National\Circé France Batch 4.0\CirceBatch.exe" -init Circe.ini -mode 0 -type 2 -sys1 2 -sys2 2 -typcoor1 3 102 -typcoor2 3 120 -E 314248.125 -N 250214.62 -H 0.0 > "C:\\TMP\\ReturnCirce.txt" Quand je copie cette ligne dans la fenetre de Commandes Windows cela fonctionne nickel j'obtient un texte avec mes nouvelles coordonnées plus qu'a la lire Parcontre des que je l'utilise dans un lisp via startapp ou shell le fichier texte est bien créer mais est vide :o Ya t'il une subtilité qui m'a echappé? Merci en plus je viens de double cliquer sur le .bat et cela fait la meme chose que starapp fichier vide re :o [Edité le 28/5/2011 par Fraid]
-
Bonjour, C'est tout a fait normal En quoi cela peut il te géner?
-
Bonjour, Il faut l'ouvrir avec l'editeur de bloc (clic droit) puis tu peux changer les proprietées de tes attributs
-
Bonjour, Si tu fait plusieurs fenetre que tu superpose, en changeant la couleur des calques dans les fenetres qui t'arange tu devrais arrivé a tes fin. bonne chance je viens de me relire et je ne comprend pas trop ce que vien de dire :casstet: et peut etre qu'il n'y a pas besoin de les superposé mais seulement qu'elle soit jointive tu copie sur place ta fenetre de presentation (un fois que t'est sur du de la vue) et tu les modifiees avec les poignées les couleurs des calques sont gerable par fenetre di tu ouvre le gestionnaire de calques (une fois entré dans ta fenetre) il faut faire glisser vers la gauche les proprietes des calques pour trouvé comment modifier la couleur uniquement dans cette fenetre. du coup je me repete[Edité le 26/5/2011 par Fraid] en tout cas il n'y a pas besoin de programmer pour cela ;) [Edité le 26/5/2011 par Fraid]
-
essaye en utilisant ce site tu colle le lien qu'il te donne http://dl.free.fr/
-
Bonjour, a moins qu'elles soient identiques et parallèles cela ne veut rien dire ou la distance entre leur première poignée peut être ? Peut tu reformuler ta question, ou/et nous envoyer un exemple?
-
Puisque ton dessin est vide pourquoi ne pas en ouvrir un nouveau :casstet:
-
Bonjour, Tu te met mode ortho F8 tu clic sur une poignée tu tappe 2 fois barre espace et tu tourne comme tu veux
-
Bonjour, Tu édite ton bloc avec l'editeur de bloc et tu modifie les propriétés de ton attribut sélectionne [Edité le 23/5/2011 par Fraid]
-
Bonjour, C'est aussi accessible par le clic droit Délimitation pdf
-
Bonjour, Un "petit" cours sur les .bat http://windows.developpez.com/cours/ligne-commande/ ça aide :)
-
Bonjour, Autocad pond des fichiers a tout va (ça fi chiers) il faut s'habituer a cela quand je surprend quelqu'un supprimant un .bak c'est la calotte entre les Oreilles :mad: pha bien et l'idée de les regrouper :exclam: je demande a voir cela va devenir a sacré dépotoir vite fait
-
Bonjour, Avec l'editeur Visual-lisp tu peux compiler un ensemble de lisp en un .FAS cela devrais repondre a tes besoins
-
Bonjour, Dés que l'homme ne comprend pas quelque chose, il attribut cela à une intelligence supérieur :exclam: Et si les shamans avait raison. Que tout ce que nous percevons du monde n’étaient qu'un" rêve" collectif contrôlé par nos conditionnements, et qu'en fait le monde ne serait que lumière.....
-
Bonjour, je pense que c'est d'abord dans Autocad MEP qu'il faut bien exporter demande a ton client de le faire, il doit savoir.
-
Bonjour, Aurait tu une carte graphique de chez ATI ?
