rrobert
Membres-
Compteur de contenus
145 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par rrobert
-
J'ai rajouté quelques lignes afin de créer un cercle dont le centre se trouve sur les points d'intersection trouvés. Et bien pour les blocs, tout cela parait bien chaotique...
-
Des objets de construction, c'est à dire? Mais du coup, que prend-t-il en compte pour déterminer les points de croisement?
-
Alors ca marche très bien sur des objets de base (cercle, polyligne), mais sur les blocs j'ai du mal à comprendre 😕 On dirait que si les blocs sont proches, même s'ils ne se touchent pas, il renvoie un ou deux points, et ce même s'il y a plus de deux points de croisement. Et si les blocs sont suffisamment éloignés, il ne détecte pas de croisement. Voici le code test utilisé (repris en partie de la page Autocad) : Sub Example_IntersectWith() Dim selection1 As AcadEntity Dim selection2 As AcadEntity Dim point_selection As Variant 'Si la sélection comporte une erreur on recommence la phase de sélection On Error Resume Next RETRY: 'Code de sélection ThisDrawing.Utility.GetEntity selection1, point_selection, vbCr & "Sélectionnez l'objet 1" 'verification des erreurs de selection If Err <> 0 Then Err.Clear MsgBox "La sélection est vide ou non valide." GoTo RETRY End If 'Si la sélection comporte une erreur on recommence la phase de sélection On Error Resume Next RETRY2: 'Code de sélection ThisDrawing.Utility.GetEntity selection2, point_selection, vbCr & "Sélectionnez l'objet 2" 'verification des erreurs de selection If Err <> 0 Then Err.Clear MsgBox "La sélection est vide ou non valide." GoTo RETRY2 End If ' Find the intersection points between the line and the circle Dim intPoints As Variant intPoints = selection1.IntersectWith(selection2, acExtendNone) Dim str As String str = "" ' Print all the intersection points Dim I As Integer, j As Integer, k As Integer If VarType(intPoints) <> vbEmpty Then For I = LBound(intPoints) To UBound(intPoints) str = str & Chr(13) & "Intersection Point[" & k & "] is: " & intPoints(j) & " , " & intPoints(j + 1) & " , " & intPoints(j + 2) I = I + 2 j = j + 3 k = k + 1 Next MsgBox str, , "IntersectWith Example" End If End Sub J'ai également joint le fichier de test utilisé (une polyligne et un bloc simple). EDIT 1 : je suis pourtant bien en option acExtendNone, n'est-il pas censé ne pas étendre les objets? EDIT 2 : lorsque deux blocs se croisent et ont plus de 2 points de croisement, il ne me sort que 2 points d'intersection (ca parait logique car c'est un bloc composé de plusieurs objets élémentaires, mais peut-on trouver tous les points d'intersection de tous les objets des deux blocs?) Dessin2.dwg
-
Mais c'est magique ça ! Je regarde ce midi, merci. Rémi
-
Bonjour, Ca y est, j'ai aussi passé la barre du VBA ! Vraiment simple en réalité, connaissant déjà VBA sur Excel, le passage sur Autocad se fait en effet sans encombres 🙂 J'aimerai créer une macro qui détecte le croisement d'objets sur Autocad. J'ai plein d'idées en têtes mais je suis sûr que vos idées et conseils sauront m'orienter dans la méthode de détection. Je m'explique, ce que je veux : - Sélectionner des objets sur mon plan Autocad (deux objets pour commencer) - Détecter tous les points de croisement entre ces objets - Créer un cercle autour du point de croisement détecté. Ainsi si deux objets ont au moins un point dont les coordonnées X, Y correspondent, alors il y a détection de croisement. Sachant que les objets seront principalement des blocs, avec plusieurs polylignes et cercles. Des exemples pour mieux comprendre : Attention, je ne cherche pas une macro toute faite, je suis simplement à la recherche de conseils pour établir une méthode de détection ! J'avais pensé à créer deux points dynamiques appelés Conn1 et Conn2 pour chaque bloc et faire correspondre les points de chaque bloc. Ainsi la macro pourrait vérifier s'ils y a une correspondance entre les "Connecteurs" des blocs sélectionnés. Sauf que cela m'oblige à déplacer tous les connecteurs des blocs en fonction de chaque paramètre dynamique, et m'aimerai éviter cela 😉 Dans l'attente de vos idées je vous souhaite une bonne journée ! Rémi
-
Sélectionner des blocs dynamiques en fonction de leurs paramètres
rrobert a répondu à un(e) sujet de rrobert dans AutoCAD 2020-2024
Bonjour @gile, loin de moi l'envie de vous demander de modifier votre lisp pour mon besoin personnel. Je vous posais simplement des questions pouvant m'aiguiller sur la lecture de votre code et sa meilleure compréhension, désolé si ce n'était pas clair. En l'occurrence j'ai trouvé ma réponse dans votre code, j'avais raté la partie définissant la valeur de tolérance de sélection. @Luna ta fonction parait très riche également, j'avoue que ça me freine un peu car je n'ai encore jamais utilisé ça, mais l'idée de pouvoir sélectionner peu importe le nom des blocs et attributs, c'est quelque chose de très intéressant dans ma manière de fonctionner ! Je vais quand même essayer de comprendre tout ça et je reviendrai vers toi quand j'aurai pu potasser un peu le sujet 🙂 Merci de la proposition. Rémi- 5 réponses
-
- autocad2021
- bloc
-
(et 3 en plus)
Étiqueté avec :
-
Sélectionner des blocs dynamiques en fonction de leurs paramètres
rrobert a répondu à un(e) sujet de rrobert dans AutoCAD 2020-2024
Bonjour @gile, Je reviens vers vous bien longtemps après votre post, n'ayant pas pu regarder cela avant, mes obligations professionnelles m'ayant amenées à d'autres projets... Tout d'abord, votre lisp est magique !! J'ai essayé SSD, c'est très puissant. J'ai tout de même une petite question : De base le filtre dynamique a une tolérance de 1e-12, mais est-il possible que ce filtre s'ouvre avec aucun paramètre, ainsi qu'une tolérance de 1e+12? Afin que je choisisse exactement le paramètre de sélection que je souhaite dans cette liste? Pour SSAT j'avoue ne pas tout à fait comprendre la fonction. J'ai des blocs avec plusieurs attributs, que se passe-t-il exactement lorsque je sélectionne un bloc? Il sélectionne tous les blocs ayant les mêmes attributs? Existe-t-il une solution pour sélectionner les blocs ayant le même attribut et dont la valeur d'attribut est la même? Merci, Rémi- 5 réponses
-
- autocad2021
- bloc
-
(et 3 en plus)
Étiqueté avec :
-
@didier je cherche à copier des éléments vers une hauteur Y bien précise, renseignée au clavier, peu importe la hauteur Y initiale de l'objet sélectionné.
-
C'est actuellement ce que je fais, le problème de prendre 0,0,0 comme référence c'est que mon copier se traduit par une valeur de distance alors que je cherche des coordonnées. (copier depuis 0,0,0 ver 0,50,0 revient à copier avec un déplacement de 50 en y. Donc dépendant de l'étage auquel je me trouve)
-
Oh, pardon, je suis allé trop vite, je pensais avoir sélectionné AutoCAD full !! Au temps pour moi... Ah mais oui... J'utilisais le copier uniquement en déplacement, donc si je comprends bien, je peux renseigner un point de référence, tant que les coordonnées (et non pas le déplacement) x,y,z sont à l'étage que je veux, ça amènera ma sélection au bon niveau ?
-
Bonjour, Sur Autocad lorsque l'on copie un objet ou déplace ou la vue, il faut systématiquement entrer un point de référence, puis un point de destination. Mais est-il possible de faire la même chose peu importe le point de référence? Par exemple, je souhaite copier des éléments au point 0,50,0, peu importe où ils se situent dans le plan. Est-ce possible? À ceux qui me répondent que c'est jouable en lisp, je suis preneur cette fois, mais quelques aides seront bienvenues 😉 Merci, Rémi
-
Bonjour, Ca y est, je me le lance dans le lisp ! Briser la glace n'a pas été facile et le chemin est encore long et épineux, mais ça fait déjà du bien 🙂 J'ai un lisp qui me créé une fonction "copierETAGE", dont l'alias est "+". Cette fonction me permet de récupérer une sélection pré-établie et de la copier à un étage de mon choix, rentré par une saisie clavier. Par exemple, pour copier mes éléments au R+5, je tape "+" puis "5". Mais, toujours en quête de rapidité, je me demandais s'il était possible de réaliser la même chose, mais en tappant directement "+5" au clavier? Evidemment il serait possible de faire ainsi en créant un lisp pour chaque étage, chaque lisp ayant un alias du type "+5", mais le jour où j'ai 12 étages, autant dire que je n'ai pas envie de créer 12 lisps 😉 Merci de vos retours, Rémi
-
Euh, dernière question, j'essaie quand même ! Existe-t-il une fonction permettant de centrer la vue sur des coordonnées bien précises rentrées au clavier?
-
Vous êtes trop forts... Mille mercis ! Rémi
-
Bonjour, Existe-t-il une variable autocad contenant la valeur "Centre Y" de la vue en cours sur Autocad? J'aimerai récupérer cette valeur dans une macro ou un lisp afin de déplacer ma vue vers un point bien particulier depuis la vue active. Par exemple, déplacer ma vue active vers la même vue mais avec un centre Y égal à 200, ou 300, etc, en fonction d'une saisie clavier. Merci, Rémi
-
Dessinateur (salaire / opinion)
rrobert a répondu à un(e) sujet de Nico59 dans Emploi, monde du travail
Bonjour à toutes et à tous, Ce topic est très intéressant, j'avoue que me posant des questions sur ma situation, vos conseils seront intéressants ! -27 ans -3 ans d'expérience en alternance -Diplôme d'ingénieur (BAC+5) -2 ans d'expérience en entreprise -À ce jour je suis chargé d'études, ainsi je réalise l'intégralité des études d'exécution d'un chantier : réalisation des dimensionnements, notes de calculs, lien avec les autres lot pour coordonner nos travaux, envoi des pièces officielles aux personnes concernées, réalisation et modification de tous les plans sur Autocad, demandes et analyses de prix auprès de nos fournisseurs, choix du matériel technique, réalisation du carnet d'échantillons, assistance technique durant le chantier, réalisation des DOE. -J'habite en Normandie -Contrat cadre horaire 35h (40-45h en réel, heures sup non payées) -2630 € brut mensuel sur 12 mois (31500€ brut annuel), très bonne mutuelle, aucunes primes ni avantages, pas de RTT, pas de ticket resto. Est-ce une situation déconnante ou pas? Je précise bien : le dessin représente au max 50% de mon travail effectif, le reste est technique et financier. Merci pour vos retours, Rémi PS : merci d'éviter les commentaires négatifs, je me pose simplement des questions et je sollicite ce topic du forum pour avoir des retours enrichissants. -
Détecter une touche clavier en diesel
rrobert a répondu à un(e) sujet de rrobert dans Personnalisation, macros, DIESEL
J'avais effectivement pas mal potassé cette page d'aide au Diesel, sans rien trouver. Bon, encore un argument en faveur du lisp, décidément, faut vraiment que je m'y mette 😉 Merci Luna, Rémi -
Détecter une touche clavier en diesel
rrobert a posté un sujet dans Personnalisation, macros, DIESEL
Bonjour, Est-il possible en diesel de détecter si une touche clavier (par exemple Ctrl) est appuyée? Merci, Rémi -
Peut-on créer sa propre variable Autocad?
rrobert a répondu à un(e) sujet de rrobert dans AutoCAD 2020-2024
@didier sur le principe je suis complètement d'accord avec vous et je vous rejoins sur l'efficacité de la chose. En effet les anciens superposaient les calques et je le fais encore sur des impressions papier ! Le seul hic à ce jour est que si je veux accélérer et faciliter le traitement d'un tel fonctionnement il faudrait que je passe un minimum de temps à mettre ça en place, et cependant l'activité de mon entreprise à ce jour ne me permet pas d'investir ce temps... 😕 -
Peut-on créer sa propre variable Autocad?
rrobert a répondu à un(e) sujet de rrobert dans AutoCAD 2020-2024
Bonjour, Merci pour toutes vos réponses ! Je sais qu'il faut vraiment que je m'intéresse au lisp de plus proche, mais pour l'instant mon temps ne me permet que de bricoler 😉 Promis je m'y colle bientôt, j'ai déjà récupéré des bases sur le forum. Merci lecrabe, j'ai retenu votre solution et utiliser un getvar de USERI1 dans la macro correspond tout à fait à mon besoin, c'est génial ! @didier en effet c'est des plans d'immeubles. Votre idée est intéressante mais j'ai peur que cela surcharge le plan et que mes collègues n'arrivent pas à s'y mettre si je change de méthode 😉 Rémi -
Peut-on créer sa propre variable Autocad?
rrobert a répondu à un(e) sujet de rrobert dans AutoCAD 2020-2024
Sauf que je ne connais pas le lisp 😛 -
Changer la valeur d'une macro en appuyant sur une touche supplémentaire
rrobert a posté un sujet dans AutoCAD 2020-2024
Bonjour, J'utilise la macro suivante (associée à un raccourci clavier) afin de changer de scu en un clic de souris (attribué à mon racourci clavier) : ^C^C_UCS _Name _Restore "Droite" J'ai donc une macro pour chaque type de scu, chaque scu ayant le même nom pour tous mes plans. Cependant j'aimerai ajouter davantage de scu, mais j'ai un nombre limité de boutons sur ma souris 😉 Est-il possible de changer le nom du scu de la macro si j'appuie sur une touche du clavier en même temps que j'exécute la macro? Autrement dit, est-il possible de faire réagir la macro d'une autre manière en appuyant sur une touche clavier lors de l'exécution de la macro. Par exemple : Si j'exécute la macro normalement, je rend courant le scu "Gauche". Si j'exécute la macro en appuyant sur la touche "Ctrl" du clavier, je rend courant le scu "Gauche 45°" Est-ce possible? Merci, Rémi -
Bonjour, J'utilise la macro suivante pour changer de niveau de plan avec ma souris (souris attribuée au raccourci clavier de la macro) : ^c^c-PAN 0,0 0,100 Sauf qu'évidemment, en fonction de mes plans, les niveaux seront tantôt espacés de 50m, tantôt de 100m... Et quand je travaille sur 5 plans dans la journée, tous avec des niveaux d'espacements différents, ça devient long de changer à chaque fois la macro 😉 Je me demande donc s'il est possible de créer sa propre variable afin qu'à chaque ouverture de plan je renseigne l'espacement entre chaque niveau et que ma macro prenne en compte cette valeur de variable. Par ailleurs, si c'est possible, quel serait le code de la macro pour prendre en compte la valeur stockée dans une variable? Merci pour vos coups de mains, Rémi
-
Aaaaaaahhhh heureux de voir que je ne suis pas le seul !! Bien qu'évidemment cela soit triste... En effet il pourrait éventuellement venir d'une extension des limites d'altimétrie autocad, @didier m'en avait parlé mais je ne sais pas s'il a pu se pencher sur le problème depuis.
-
Etrange, ce matin je ne rencontre pas ce souci... Il a bien enregistré les modifications. Je retiens la deuxième commande au cas-où !
