-
Compteur de contenus
4 029 -
Inscription
-
Dernière visite
-
Jours gagnés
21
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par DenisHen
-
[Résolu] Récupère un attribut pour en faire un nouveau texte
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Salut à tous, Bon, j'arrive maintenant à récupérer la valeur de mon attribut dans mon bloc avec : (defun c:PtrlVersTxt () (vl-load-com) ;Sauvegarde des variables AutoCAD courantes (setq old_osmd (getvar "osmode") old_abase (getvar "angbase") old_adir (getvar "angdir") ) ;_ Fin de setq ;Attribution de variables AutoCAD (setvar "osmode" 0) (setvar "angbase" 0) (setvar "angdir" 0) (setvar "cmdecho" 0) (setq ent_bloc (entsel "\nSélectionnez le 'PTRL': ")) (setq ent_bloc (car ent_bloc)) ;Vérification que le bloc sélectionné est bien "PTRL_PROF" (if (= (cdr (assoc 66 (entget ent_bloc))) "PTRL_PROF") ((setq ent_att (entnext ent_bloc)) ;Extraction de la valeur de l'attribut "PROF" (setq att_val (cdr (assoc 1 (entget ent_att)))) ) ) ;_ Fin de if (princ att_val) (princ) ;Sélection du segment pour orienter le texte ;Placement du texte le long du segment de la polyligne ;Réaffectation des variables AutoCAD (setvar "osmode" old_osmd) (setvar "angbase" old_abase) (setvar "angdir" old_adir) ) Maintenant, je dois récupérer la direction d'un segment de polyligne en cliquant dessus... Je sens que ça, ça va être plus dur... Denis... -
[Résolu] Récupère un attribut pour en faire un nouveau texte
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
en effet vannes, après documentation, les profondeurs des PTRL ne suffisent pas, il faut aussi indiquer l'altitude des génératrices supérieures des PTRL... Merci de m'avoir mis le doute... Denis... -
[Résolu] Récupère un attribut pour en faire un nouveau texte
DenisHen a répondu à un(e) sujet de DenisHen dans Débuter en LISP
Bonjour vannes, Il me semble que, soit on indique l'altitude de la génératrice supérieur avec une profondeur sur des points remarquables (PTRL) soit on laisse l'altitude se la surface et on indique la profondeur sur ces mêmes points... Mais effectivement, j'ai maintenant un affreux doute... Je vais me renseigner... Denis... -
Salut à tous, A cette époque, de 1992 à 2001 environ, j'avais fait des tonnes de fonctions en VBA sous Excel pour faire tous les calculs de tantièmes et de charges... Sachant qu'on avait des copropriétés de plusieurs centaines de lots. C'était en région parisienne (Clamart - Hauts de Seine) et ça me sortait aussi les descriptifs des lots ! ! ! Un petit travail de titan... J'en suis encore très fier car, apparemment, ils s'en servent toujours... Denis...
-
Bonjour à tous, Pour être géopètre EXPERT, il faut avoir son DplG et celà accède au monopole du droit foncier, en effet, les GE sont les seuls à pouvoir toucher au dommaine foncier sous toutes ses formes (bornages cadastraux, tantièmes de copropriété, lotissements...) J'ai travaillé il y a une vingtaine d'années chez un GE et je faisais des règlements de copropriété ainsi que des lotissements... Mais les GE ont tous leurs "spécialités", topo, droit foncier... Il suffit de bien le choisir... Denis...
-
[Résolu] Récupère un attribut pour en faire un nouveau texte
DenisHen a posté un sujet dans Débuter en LISP
Bonjour à tous, Et merci à tous les intervenants de ces forums grace à qui j'ai déjà appris énormément... Mais là, je but un peu. Ca fait 10 ans que je n'ai pas touché au LiSP "sérieusement". J'ai beaucoup cherché sur le NET et sur CadXP mais je n'ai pas trouvé ce que je cherche à faire... Je souhaiterais créer un LiSP dont le processus serait assez simple, sélectionner un bloc nommé "PTRL_PROF", extraire son unique attribut ("PROF", attibut invisible) et créer un texte aligné le long d'un segment d'une Polyligne avec un préfixe "Pf:". Quelques petites explications (je joins une image pour plus de clareté). 1. le bloc à sélectionner est et sera toujours le bloc "PTRL_PROF" (le petit losange à chaque sommet d'une polyligne), qui n'existe dans AutoCAD uniquement pour en faire un SHP, 2. pour la direction du texte, ce sera toujours une polyligne avec que des segments droit, jamais de lissage, d'arc... Je poste déjà ce que j'ai fais et qui est, je pense, le processus à suivre... ; Récupère l'attribut "PROF" dans le bloc "PTRL_PROF" et cré un texte type "Pf:x.xx" en l'allignant sur un segment de polyligne (defun c:PtrlVersTxt () ;Sauvegarde des variables AutoCAD courantes (setq old_osmd (getvar "osmode") old_abase (getvar "angbase") old_adir (getvar "angdir") ) ;_ Fin de setq ;Attribution de variables AutoCAD (setvar "osmode" 0) (setvar "angbase" 0) (setvar "angdir" 0) (setvar "cmdecho" 0) ;Sélection du bloc "PTRL_PROF" pour en extraire l'attribut "PROF" (while (null (setq SelBlk (entsel "\nSélectionnez le bloc 'PTRL_PROF' : ")) ) ;_ Fin de null ) ;_ Fin de while ;Vérification que le bloc sélectionné est bien "PTRL_PROF" ;Extraction de la valeur de l'attribut "PROF" ;Sélection du segment pour orienter le texte (while (null (setq e_seg (entsel "\nSélectionnez le segment d'une polyligne : ")) ) ;_ Fin de null ) ;_ Fin de while (setq typent (cdr (assoc 0 (setq dxf_ent (entget (car e_seg)))))) (cond ((or (eq typent "LWPOLYLINE") (and (eq typent "POLYLINE") (zerop (boole 1 118 (cdr (assoc 70 dxf_ent)))) ) ;_ Fin de and ) ;_ Fin de or (setq l_2pt (near_vertex_arr e_seg)) (grdraw (car l_2pt) (cadr l_2pt) -1 1) (if (zerop (caddr l_2pt)) (setq x_alpha (angle (trans (car l_2pt) 1 0) (trans (cadr l_2pt) 1 0) ) ;_ Fin de angle ) ;_ Fin de setq (progn (setq x_alpha nil) (princ "\nNe peut obtenir un angle depuis ce type d'objet!") ) ;_ Fin de progn ) ;_ Fin de if ) ) ;_ Fin de cond ;Placement du texte le long du segment de la polyligne ;Réaffectation des variables AutoCAD (setvar "osmode" old_osmd) (setvar "angbase" old_abase) (setvar "angdir" old_adir) ) ;_ Fin de defun ;Recherche de l'angle du segment cliqué, issus d'un LiSP de (gile) : ALTxt.lsp (defun near_vertex_arr (obj / obj dxf_obj obj_vlax pt_sel par pt_first pt_snd i bulge e_next ) (setq dxf_obj (entget (car obj))) (vl-load-com) (setq obj_vlax (vlax-ename->vla-object (car obj)) pt_sel (vlax-curve-getClosestPointTo obj_vlax (trans (osnap (cadr obj) "_near") 1 0) ) ;_ Fin de vlax-curve-getClosestPointTo par (vlax-curve-getParamAtPoint obj_vlax pt_sel) pt_first (trans (vlax-curve-getPointAtParam obj_vlax (fix par)) 0 1) pt_snd (trans (vlax-curve-getPointAtParam obj_vlax (1+ (fix par))) 0 1 ) ;_ Fin de trans i 0 ) ;_ Fin de setq (cond ((eq (cdr (assoc 0 dxf_obj)) "LWPOLYLINE") (while (or (/= (caar dxf_obj) 42) (if (< i (fix par)) (setq i (1+ i)) ) ;_ Fin de if ) ;_ Fin de or (setq bulge (cdadr dxf_obj) dxf_obj (cdr dxf_obj) ) ;_ Fin de setq ) ;_ Fin de while ) (T (setq e_next (entnext (car obj))) (repeat (fix par) (setq e_next (entnext e_next))) (setq bulge (cdr (assoc 42 (entget e_next)))) ) ) ;_ Fin de cond (list pt_first pt_snd bulge) ) ;_ Fin de defun J'aimerai qu'on me dise ou m'indique le ou les astuces à suivre et les pièges à éviter afin que je puisse développer cette macro... Les conseils sont aussi bienvenus ;) Merci à tous, Bonne journée Denis... -
Mon fichier de personnalisation Map.cuix est protégé en écriture
DenisHen a posté un sujet dans AutoCAD 2014
Bonjour à tous, Voilà, j'ai un petit souci depuis quelques jours. Lorsque j'ajoute un fichier .mnu dans AutoCAP Map 2014, il m'ajoute bien des barres d'icônes mais elles sont vides (pas même les icones avec le petit point d'intérogation dans un nuage) et AutoCAD me dit : "Le fichier de personnalisation 'Map.cuix' est protégé en écriture". Si je quitte AutoCAD et le relance, mes "menus" ont disparus... Si quelqu'un a une idée du truc... Merci d'avance... Denis... -
HUMOUR - MAP - Un nouvel outil dans le monde de la Cartographie/SIG/Geomatique
DenisHen a répondu à un(e) sujet de lecrabe dans Pause café
Ah ah ah ! ! ! Excellent ! ! ! Denis... -
Que sur AutoCAD 2015 ? Olivier ? Denis...
-
Pixar vous offre son logiciel pour réaliser vos propres films d’animation
DenisHen a répondu à un(e) sujet de Steven dans CAO, généralités
Tip top tous ça, mais avec quel PC on peut créer de tels films d'animation tel que "Monstre et Cie" ou autre encore ? Ce ne doit pas être faisable avec l'ordinateur de Monsieur tout-le-monde sans des semaines de compilation vidéo... Si ? Denis... -
Bonsoir lrdb, Lorsque je lance MicroStation, j'ai directement la fenêtre d'ouverture d'un fichier, et je ne trouve pas "Espace de travail". Merci de ne pas me laisser tombé... ;) Denis...
-
Bonjour, Il me semble qu'une faille avait été découverte et qu'il faut remplacer certains fichiers. J'ai tout trouvé là dedans : http://translate.google.fr/translate?hl=fr&sl=en&u=http://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/content/autodesk-C2-AE-autocad-C2-AE-2015-geolocation-online-map-hotfix.html&prev=search Denis...
-
En fait, MicroStation ne peut travailler sans avoir de fichier .dgn "ouvert". AutoCAD le peut. Microstation travail en "accès direct" sur des fichier, pas besoin d'enregistrer depuis MicroStation, il le fait tout seul. A condition d'avoir un fichier "ouvert". AutoCAD, lui, travail d'origine avec un fichier qui n'a pas encore de nom, il s'appelle généralement "Dessin1" et c'est lors du premier enregistrement qu'il demande à l'utilisateur un "vrai" nom, avec répertoire et tout... Enfin, c'est tel que je l'ai compris, du coup, j'ai fais ça : Sub MacMicroST() Dim oMicroStation As MicroStationDGN.Application Dim oFSO As Scripting.FileSystemObject Dim oConnector As MicroStationDGN.ApplicationObjectConnector Dim oDesign As DesignFile FichierDGN="C:\temp\DesignFile.dgn" FichierDGNCible="c:\temp\FichierCible.dgn" Set oFSO = New Scripting.FileSystemObject oFSO.CopyFile FichierDGN, FichierDGNCible, True If oMicroStation Is Nothing Then Set oConnector = New MicroStationDGN.ApplicationObjectConnector End If oConnector.Application.Visible = True Set oDesign = oConnector.Application.OpenDesignFile(FichierDGNCible, False) End Sub Copier un fichier DGN original et le copier en le renommant, puis, ouvrir ce dernier fichier dans MicroStation... Me reste plus qu'à trouvé la commande qui créé un "niveau" dans MicroStation avec sa couleur, type de ligne... Merci encore à tous... Denis...
-
Bonjour, Et pour le japonnais ? on demande à Julian-Nihon ? Je plaisante, merci lrdb, je teste ça cette semaine... Denis...
-
Bonjour, Voilà, j'ai essayé ça, que j'ai piqué sur le net : Sub TestDGN() Dim oMicroStation As MicroStationDGN.Application Dim oConnector As MicroStationDGN.ApplicationObjectConnector If oMicroStation Is Nothing Then Set oConnector = New MicroStationDGN.ApplicationObjectConnector End If oConnector.Application.Visible = True End SubMais ça ne m'ouvre pas de nouveau fichier DGN... Je continu de chercher sur le net, mais tout se ressemble et en plus, c'est de l'Anglais... Denis...
-
Effectivement... Je viens de l'oter... Denis...
-
Mille merci lfdb... Je testerais ça mardi... Denis...
-
Bonjour Gégé, J'ai trouvé effectivement une référence "Bentley Microstation DGN 8.9 Object Library" mais ça n'a pas l'aire de fonctionner. Je n'ai rien trouvé dans le liste de référence qui contient "Bentley", "MicroStation" ou encore "UStation" à part celle que j'essai d'utiliser... Je compte utiliser une liste de "calques" avec divers attributs depuis Excel pour les créer dans MicroStation. Je le fais déjà avec AutoCAD mais je ne sais pas comment m'y prendre avec MicroStation... Merci en tout cas pour la piste... Denis...
-
Bonjour à tous, Voilà, j'ai un petit soucis. Pour définir l'application AutoCAD depuis une VBA d'Excel 2013, je fais comme çà : Dim AcadApp As AcadApplication Dim DocAutoCad As Object On Error Resume Next Set AcadApp = GetObject(, "AutoCAD.Application") On Error GoTo 0 If AcadApp Is Nothing Then Set AcadApp = New AutoCAD.AcadApplication End If Set DocAutoCad = AcadApp.Documents.Add J'ai fais çà pour MicroStation (V8i) : Sub MacMicroST(control As IRibbonControl) Dim MicroSt As MicroStationDGN.Application Dim DocMicroSt As Object Set MicroSt = GetObject(, MicroStationDGN.application") On Error GoTo 0 If MicroSt Is Nothing Then Set MicroSt = New MicroSt.Application End If End Sub Mais à la ligne "Set MicroSt = GetObject(, MicroStationDGN.application")" VBA me sort qu'un composant ActiveX ne peut pas créer d'objet... Quelle est la démarche pour MicroStation ? Et surtout, quelle référence utiliser ? Merci, Denis...
-
Salut Georges2, Tu ouvre le classeur Excel 2013, tu paramètre des calques (j'ai laissé quelques calques pour exemple dans le classeur) et tu cliques dans le ruban "Charte" sur "AutoCAD" et il ouvre directement AutoCAD et créé les calques tels que définis dans la feuille "Calque". Cette macro créé un nouveau fichier dessin, il te faut l'enregistrer et utiliser DesignCenter ([Ctrl] + [2]) pour ajouter les calques créés dans un dessin existant. Il te faut bien sûr AutoCAD sur ton poste. Denis...
-
Lynkoa lance Lynkoeur, un nouveau site de rencontres pour concepteurs 3D exigeants
DenisHen a répondu à un sujet dans CAO, généralités
C'est même pire qua çà HBS62, je suis marié ! ! ! Mais je n'allais tout de même pas mettre "Masculin"... ;) Denis... -
Ok, on aura donc : ActiveDocument.SendCommand("-calque e NouveauCalque ") Ou plutôt ActiveDocument.SendCommand("-calque" & "e" & "NouveauCalque" & "") Mais peut-on utiliser les ";" entre chaque instruction ?
-
Avec le gestionnaire de macros, tu charge ta macro (probablement un fichier .dvb) puis ensuite, tu reviens à "VBARun" et elle devrait être dans la liste des macros. Je ne suis pas au boulo, je fais ça de tête, mais ça doit être un truc comme ça... Denis...
-
Bonjour, Peut-être avec la commande AutoCAD "VBARun"... Denis...
-
Un grand merci à (gile) et Patric_35 qui, une fois de plus, nous font partager leur immence savoir... Denis...
