Maison >tutoriels informatiques >connaissances en informatique >modification du script cad lisp
(DEFUN C:J()
(PRINC "nVeuillez sélectionner l'annotation à combiner :)")
(SETQ S Selection Set (SSGET '((0 . "DIMENSION"))) m 0) est un code LISP utilisé pour sélectionner toutes les primitives de type "DIMENSION" dans AutoCAD et stocker les résultats de la sélection dans S Choisir de se concentrer . Le but de ce code est d'obtenir tous les objets dimensionnels.
T nombre d'annotations (ensemble de sélection sslength S) nombre total ZS et 0 T annotations alignées 0). Dans cette phrase, T représente le nombre de détails qui ne correspondent pas à l'époque. Le nombre d'éléments dans l'ensemble de sélection S peut être calculé via la fonction sslength. ZS représente le nombre total de détails, 0 représente T annotations alignées. représentent ceux qui ne correspondent pas à l’époque. Combien de détails sont marqués correctement ?
(pendant que(
"(setq a (entget (ssname S selection set m)) m (1+ m))" Cette ligne de code est une expression en langage Lisp, utilisée pour obtenir les attributs du m-ième élément dans l'ensemble de sélection S , et ajoutez 1 à la valeur de m.
(si (membre (cdr (assoc 70a))'(1 33 129 161)))
(somme totale setq ZS (+ (cdr (assoc 42 a)) somme totale ZS)) Cette ligne de code est une expression en langage LISP. Sa fonction est de mettre à jour la valeur de la somme totale des variables ZS à la valeur actuelle plus la valeur associée à la clé 42 dans la liste a. Avant d'exécuter cette ligne de code, vous devez vous assurer que les variables somme totale ZS et liste a ont été définies et affectées aux valeurs correctes. Grâce à cette ligne de code, nous pouvons mettre à jour dynamiquement la somme totale de ZS.
Annotation d'alignement en T (1+ Annotation d'alignement en T)))
)
(PRINC (STRCAT "Un total de " (annotations itoa T) " annotations ont été sélectionnées, n total " (annotations d'alignement itoa T) " annotations d'alignement ont participé à l'ajout, le total est : " (somme totale RTOS ZS 2) " ."))
);FIN DU DÉFUN
(defun c:dz (/oce1 n1 zn h1 sxh1 p1)
(vl-load-com)
(setq oce1 (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq ms (vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object)) est un code AutoLISP utilisé pour obtenir le document AutoCAD actuellement actif. Il obtient l'objet d'application AutoCAD via la fonction vlax-get-acad-object, puis obtient l'objet document actuellement actif à l'aide de la méthode vla-get-activedocument. Ce code peut être utilisé dans AutoCAD pour faire fonctionner le document actuellement ouvert dans le programme.
)
)
(si qz
()
(setq qz"")
)
(si hz
()
(setq hz "")
)
(initget "c")
(setq nqz (getstring (strcat "nVeuillez entrer le préfixe /c (vide): " )))
(cond
((= nqz "c") (setq qz ""”))
(T (if (/= nqz "")(setq qz nqz)))
)
(setq hz "")
(if (not (setq n1 (getint "nVeuillez entrer le numéro de séquence de départ : ")))
(setq n11)
)
(setq zn 1)
(if (not (setq h1 (getreal "nVeuillez préciser la hauteur du texte : ")))
(setq h1 2.5)
)
(setq sxh1 (strcat qz (itoa n1) hz)) est un morceau de code Lisp. Sa fonction est de concaténer trois chaînes pour former une nouvelle chaîne. Parmi eux, qz, n1 et hz sont des variables, représentant respectivement le préfixe, le nombre et le suffixe. En utilisant la fonction strcat et la fonction itoa, nous pouvons convertir le nombre n1 en chaîne et concaténer le préfixe et le suffixe avec celui-ci, pour finalement obtenir une nouvelle chaîne sxh1. De telles opérations peuvent être facilement générées en programmation
(setq p1 (getpoint "nVeuillez préciser le point d'insertion : "))
(pendant que (/= p1 nul)
(setq p1 (vlax-3d-point p1))
(setq txt (vla-addtext
ms
sxh1
p1
h1
)
)
(setq
n1 (+ n1 zn)
sxh1 (strcat qz (itoa n1) hz)
p1 (getpoint "nVeuillez préciser le prochain point d'insertion :")
)
)
(setvar "cmdecho" oce1)
(vlax-release-object ms)
(prince)
)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!