-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
Je me joins à vous tous pour souhaiter à tous les Cadxpien(ne)s de très bonnes fêtes. [marquee]http://smileys.smileycentral.com/cat/36/36_15_1.gif[/marquee] @+
-
La plus grande invention du 21° siècle
Patrick_35 a répondu à un(e) sujet de kallain dans Pause café
La téléportation pour enfin aller sur la lune et rêver de la terre @+ -
additionner la longueur de plusieurs lignes ou polylignes
Patrick_35 a répondu à un(e) sujet de laura dans Routines LISP
Si je souhaite par exemple trouver la moitié de mon objet, un (vlax-curve-getDistAtParam sel (/ (- fin deb) 2)) suffit @+ -
additionner la longueur de plusieurs lignes ou polylignes
Patrick_35 a répondu à un(e) sujet de laura dans Routines LISP
Salut Tu as aussi ce sujet @+ -
Salut Ou encore expresstools directement au clavier @+
-
Liste des codes utilisables dans une macro ?
Patrick_35 a répondu à un(e) sujet de jifi dans Personnalisation, macros, DIESEL
Ou encore dans l'aide C'est dans guide de personnalisation, chapitre diesel et un catalogue des fonctions Extraits de l'aide @+ -
Oui, sauf qu'une entité est traduite en OCS (Object Coordinate System). Ces coordonnées sont habituellement converties en WCS, UCS courant, ou DCS courant, selon l'utilisation prévue de l'objet @+
-
Salut Je te propose un truc plus simple dans la fonction trans par rapport au 1er lisp (setq minpoint (trans (vlax-safearray->list minpoint) (vlax-vla-object->ename obj) 1)) (setq maxpoint (trans (vlax-safearray->list maxpoint) (vlax-vla-object->ename obj) 1)) @+
-
Salut Pour parcourir et décomposer tous les groupes (setq grp (vla-get-groups (vla-get-activedocument(vlax-get-acad-object))))) (vlax-for gr grp (vla-delete gr) ; pour décomposer le groupe ) @+
-
Salut Pour (gile) (ssget "_X" '((-4 . "< and") (0 . "*LINE") (0 . "~X*") (0 . "~M*") (-4 . "and>") ) ) peut aussi s'écrire (ssget "_x" (list (cons 0 "*LINE,~X*,~M*"))) pour zebulon_ Rien n'interdit un (setq ss (ssget "_+.:e:s" '((0 . "INSERT")(2 . "toto*")))) @+
-
Du C++ dans le VBA pour Autocad
Patrick_35 a répondu à un(e) sujet de Encoretoutpetit dans VBA et VB
Salut Je ne suis pas un pro en c++, mais en arx ? @+ -
Salut Et pour compléter la réponse d'oli553, la touche F1 @+
-
blocage à l\'ouverture du fichier.
Patrick_35 a répondu à un(e) sujet de guerin dans AutoCAD 2000 à 2002
Salut Et avec la commande _recover ? @+ -
Salut Trouvé dans l'aide (c'est dans AcadSelectionSet --> Highlight pour ceux qui le veulent en vlisp) @+ Sub Example_Highlight() ' This example creates several objects in model space. ' It then iterates through model space and highlights each ' object and displays it's Entity Name. ' Create a Ray object in model space Dim rayObj As AcadRay Dim basePoint(0 To 2) As Double Dim SecondPoint(0 To 2) As Double basePoint(0) = 3#: basePoint(1) = 3#: basePoint(2) = 0# SecondPoint(0) = 1#: SecondPoint(1) = 3#: SecondPoint(2) = 0# Set rayObj = ThisDrawing.ModelSpace.AddRay(basePoint, SecondPoint) ' Create a polyline object in model space Dim plineObj As AcadLWPolyline Dim points(0 To 5) As Double points(0) = 3: points(1) = 7 points(2) = 9: points(3) = 2 points(4) = 3: points(5) = 5 Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points) plineObj.Closed = True ' Create a line object in model space Dim lineObj As AcadLine Dim startPoint(0 To 2) As Double Dim endPoint(0 To 2) As Double startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0 endPoint(0) = 2: endPoint(1) = 2: endPoint(2) = 0 Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint) ' Create a circle object in model space Dim circObj As AcadCircle Dim centerPt(0 To 2) As Double Dim radius As Double centerPt(0) = 20: centerPt(1) = 30: centerPt(2) = 0 radius = 3 Set circObj = ThisDrawing.ModelSpace.AddCircle(centerPt, radius) ' Create an ellipse object in model space Dim ellObj As AcadEllipse Dim majAxis(0 To 2) As Double Dim center(0 To 2) As Double Dim radRatio As Double center(0) = 5#: center(1) = 5#: center(2) = 0# majAxis(0) = 10: majAxis(1) = 20#: majAxis(2) = 0# radRatio = 0.3 Set ellObj = ThisDrawing.ModelSpace.AddEllipse(center, majAxis, radRatio) ZoomAll ' Iterate through the model space collection and ' highlight each entity. Dim entName As String Dim entry As AcadEntity For Each entry In ThisDrawing.ModelSpace entName = entry.ObjectName entry.Highlight (True) MsgBox "The name of this object is " & entName, vbInformation, "Highlight Example" entry.Highlight (False) Next End Sub
-
copier-coller la valeur d\'un attribut à un autre
Patrick_35 a répondu à un(e) sujet de laura dans AutoCAD 2000 à 2002
Ah oui, le problème est plus complexe Pour faire une sélection de tous les blocs portants le même nom (setq js (ssget "x" (list (cons 0 "INSERT") (cons 2 "MON_BLOC")))) Pour parcourir une sélection (setq n 0) (while (ssname js n) (setq bl (entget (ssname js n))) (princ (strcat "\nBloc " (cdr (assoc 2 bl)) " N° " (itoa n))) (setq n (1+ n)) ) Maintenant, pour parcourir les éléments qui composent un bloc (à inclure dans le premier while) (setq ent (entget (entnext (cdr (assoc -1 bl))))) (while (/= (cdr (assoc 0 ent)) "SEQEND") (princ (strcat "\nType d'élément " (cdr (assoc 0 ent)))) (setq ent (entget (entnext (cdr (assoc -1 ent))))) ) Et pour tester si c'est un attribut avec son étiquette (à inclure dans le deuxième while) (if (and (= (cdr (assoc 0 ent)) "ATTRIB") (= (cdr (assoc 2 "MON_ETI"))) (progn (je reprends mon premier post) ) ) @+ -
copier-coller la valeur d\'un attribut à un autre
Patrick_35 a répondu à un(e) sujet de laura dans AutoCAD 2000 à 2002
Salut Par exemple (setq val (assoc 1 att1)) ; att1 pour le premier attribut (setq att2 (subst val (assoc 1 att2) att2)) ; att2 pour le 2em attribut et on remplace la valeur du 2em par le 1er (entmod att2) ; pour mettre à jour le 2em attribut (entupd (cdr (assoc -1 att2))) ; pour voir à l'écran que le 2em attribut a été mis à jour @+ [Edité le 13/12/2005 par Patrick_35] -
Merci (gile) Je suis comme Tramber, c'est le genre de page à conserver comme lien @9
-
Demande de fichier lors de l\'ouverture d\'un plan
Patrick_35 a répondu à un(e) sujet de Mickael14 dans AutoCAD 2005
Salut Quand ça m'arrive, je fais une copie d'un shx existant que je renomme ensuite avec le manquant Remplacer un shx par un autre ne fonctionne pas à tous les coups. Dans ce cas, je fais la copie d'un autre shx @+ -
Un grand chantier pour dégraisser le Mammouth
Patrick_35 a répondu à un(e) sujet de rebcao dans CADxp, vos souhaits
Bonjour à tous Et pourquoi ne pas demander à patrick une stat sur les recherches, je pense que ça donnerai une très bonne base de départ @+ -
Salut Tu me surprends, d'après l'état de la recherche suivant l'ARSEP, je n'ai rien vu sur ce que tu affirmes. Si tu as un article sur ce sujet, je suis preneur @+
-
Ok, mais pas pour la SEP, c'est la myéline qui est atteinte, ce qui induit une mauvaise transmission entre les neurones. La régénération des nerfs est surtout valable pour ceux qui on eu des accidents afin de leurs redonner une certaine autonomie @+
-
Salut Tu as deux manières de procéder En autolisp avec un bloc nommé par exemple Meuble1 sans attributs (command "_.insert" "Meuble1=C:\\rep1\\rep2\\rep3\\Meuble1.dwg" "0,0" "1" "1" "0") (entdel (entlast)) Si tu as un bloc avec des attributs, tu dois changer la variable attreq pour que ta commande se déroule sans encombre Si tu n'as pas bloqué le regen avec la variable regenmmode et que ton dessin est un peu lourd, cela peut être un inconvénient Maintenant par la méthode vlisp (vl-load-com) (vla-delete (vla-InsertBlock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0.0 0.0 0.0)) " C:\\rep1\\rep2\\rep3\\Meuble1.dwg" 1 1 1 0)) Cela revient au même qu’en autolisp , sauf qu’il n’y a pas de regen, ni besoin de savoir si le bloc possède ou pas des attributs @+
-
Merci (gile), c'est exactement ce que je cherchai J'avoue ne pas encore tout comprendre avec la fonction trans, mais je vais m'y pencher dessus ps: hje viens de modifier le lisp @+
-
Pas à ma connaissance. Les appels pour faire afficher les slides sont en autolisp @+
-
Salut Je viens d'adapter uin de mes lisps à tes besoins Tu as juste cette ligne (setq Nom_bloc "MON_BLOC" Eti_Bloc '("ETI1" "ETI2" "ETI3")) à modifier pour donner le bon nom du bloc et de ses etiquettes Il y a juste une chose auquel je bute pour l'instant, c'est si ton scu est différent de ton sgc, je n'arrive pas encore à trouver la différence d'angle entre les deux @+ (defun Attributs_ini(Rea Cde) (setq dernier_ent (entlast)) ) (defun Attributs_rot(Rea Cde / ang bl js i n) (cond ((eq (car Cde) "ROTATE") (setq js (ssget "_p")) ) ((eq (car Cde) "GRIP_ROTATE") (setq js (cadr (ssgetfirst))) ) ((eq (car Cde) "INSERT") (setq js (ssadd)) (ssadd (entlast) js) ) ((eq (car Cde) "COPY") (setq js (ssadd) n (entnext dernier_ent)) (while n (ssadd n js) (setq n (entnext n)) ) ) ) (if js (progn (setq n 0) (while (ssname js n) (setq bl (entget (ssname js n))) (if (and (eq (cdr (assoc 0 bl)) "INSERT") (eq (strcase (cdr (assoc 2 bl))) (strcase Nom_bloc))) (if (cdr (assoc 66 bl)) (progn (setq az bl) (while (not (eq (cdr (assoc 0 bl)) "SEQEND")) (if (eq (cdr (assoc 0 bl)) "ATTRIB") (progn (setq i 0) (while (nth i Eti_Bloc) (if (eq (strcase (cdr (assoc 2 bl))) (strcase (nth i Eti_Bloc))) (progn (setq bl (subst (cons 50 (angle '(0 0) (trans (getvar "UCSXDIR") 0 (trans '(0 0 1) 1 0 T)))) (assoc 50 bl) bl)) (entmod bl) (entupd (cdr (assoc -1 bl))) ) ) (setq i (1+ i)) ) ) ) (setq bl (entget (entnext (cdr (assoc -1 bl))))) ) ) ) ) (setq n (1+ n)) ) ) ) (princ) ) (defun c:srot(/ i j n) (if (setq i (vlr-reactors :vlr-Command-Reactor)) (progn (setq n 1 i (nth n (car i))) (while i (setq j nil) (if (or (eq (cdr (car (vlr-reactions i))) 'ATTRIBUTS_ROT) (eq (cdr (car (vlr-reactions i))) 'ATTRIBUTS_INI)) (setq j i) ) (if j (vlr-remove j) (setq n (1+ n)) ) (if (setq i (vlr-reactors :vlr-Command-Reactor)) (setq i (nth n (car i))) ) ) (if mrea_rot (princ (strcat "\n\tDésactivation de la Rotation des Attributs du bloc " Nom_bloc ".")) ) (setq mrea_rot nil) ) ) (princ) ) (defun c:rot() (if (not mrea_rot) (progn (c:srot) (vlr-command-reactor nil '((:vlr-commandwillstart . Attributs_ini))) (setq mrea_rot (vlr-command-reactor nil '((:vlr-commandEnded . Attributs_rot)))) (princ (strcat "\n\tActivation de la rotation des Attributs du bloc " Nom_bloc ".")) ) (princ (strcat "\n\tLa mise à jour de la rotation des Attributs du bloc " Nom_bloc " est déjà activée.")) ) (princ) ) (vl-load-com) (setq Nom_bloc "MON_BLOC" Eti_Bloc '("ETI1" "ETI2" "ETI3")) (princ (strcat "\n\tPour activer la mise à jour des Attributs du bloc " Nom_bloc ", lancez la commande ROT.\n\tPour revenir à la normale, faites la commande SROT.")) (princ) [Edité le 28/11/2005 par Patrick_35]
