• Ce forum est la traduction générée par la machine de www.cad3d.it/forum1 - la communauté italienne du design. Plusieurs termes ne sont pas traduits correctement.

Problème cifre décimi

  • Auteur du sujet Auteur du sujet joe
  • Date de début Date de début

joe

Guest
Bonjour à tous, en dessous d'une question concernant les chiffres décimales:
dans un dessin il y a une grande quantité de lignes avec des longueurs variables et toutes avec des chiffres décimaux; En définissant la précision "0", chaque longueur sera arrondie par excès ou faute et au moyen d'une recherche, je devrais pouvoir faire une liste de longueurs entières, .
C'est ce dont j'ai besoin pour le travail que je dois faire; l'erreur autocadienne, qui me retire de la route, est la suivante: pendant le comptage avec «qselect» d'une longueur donnée, un nombre total de lignes est rapporté, avec cette longueur, que je prends pour vrai; dans la recherche de la seconde longueur la différence est de 1 mm et la même ligne, qui avait été comptée précédemment, est recalculée;
Par exemple: si dans le dessin il y a des lignes de longueur 2150.90 et 2150.40, après avoir réglé la précision à "0", avec "qselect" le résultat est le suivant:
la longueur de recherche 2150 sélectionne toutes les lignes entre 2150.40 et 2150.90
recherche longueur 2151 la sélection identique

avec cela, quelques mêmes lignes seront comptées deux fois et je me trompe les comptes
Pourquoi ?
Merci, Gianni.
 
Code:
Changement public
(setq sll1 0,0)
(setq sll2 0,0)

; longueur de sélection des lignes
(défunc c:sellinedaline(/n p10 p11)
(commande "_regen")
(setq n (voiture (sing "\sélectionner la ligne: ")
(setq p10 (cdr 10 (entier n))))
(setq p11 (cdr (assoc 11)))
(setq sll1 (distance p10 p11))
(c: sellinel)
)

; longueurs de gamme définies
(défun c:sellinel())
(commande "_regen")
(setq sll1 (par défaut sll1 "\nlunghezza linea: ")
(setq sll2 (par défaut sll1 "\nlunghezza linea: ")
(Sellinel)
)

(défun sellel(/ delta l sel c p10 p11 d s)
(setq ssel (score "x" (cons 0 "ligne")))
(voir c 0)
(Setq s)
(Sectq delta (abs (- sll1 sll2))
(répète (selle de longueur)
(setq n (nom de l'expéditeur c))
(setq p10 (cdr 10 (entier n))))
(setq p11 (cdr (assoc 11)))
(setq d (distance p10 p11))
(si (et (> = d sll1) (< d (+ sll1 delta 0,99))
(progrès)
(Secteurs)
(retiré n 3)
)
)
(setq c (1+ c))
)
(principaux (strcat "\nlinee selected ") (rtos (longueur s) 2 0) " (rtos c 2 0))
(principal)
)

; fonction. entrée de l'invite de commande. repropose la valeur précédente ou passée à l'appel de fonction.
; var: valeur variable ou réelle ou valeur de chaîne
; invite : variable de type chaîne
; exemple: (par défaut 10,0 "valeur de sortie") -> Saisissez la valeur <10.0> & #160;:
; avec confirmation d'envoi 10.0 sinon la fonction retourne la nouvelle valeur
(défend par défaut (var prompt / i)
(si (= (type var) (type "))
(progrès)
(si (= valeur nulle)
(setq var)
)
(setq i (getstring t (invite strcat "<" var ">): ")
(si)
(Sect. i néant)
)
)
(progrès)
(si (= valeur nulle)
(setq var 0.0)
)
(setq i (vitréal (vitréal "<" (rtos var) ">: ")))
)
)
(si (= zéro)
)
selles : longueur de ligne imposée pour la recherche par sélection de ligne
selleinelle: Définir la plage de longueur par 2 valeurs
 
Bonjour, j'ai vu qu'avec ce code les lignes pertinentes sont surlignées mais non sélectionnées; S'ils ont été sélectionnés, je pourrais les envoyer tous à un nouveau calque ou les cacher.
Pourriez-vous changer le lis en ce sens ?
Je vous remercie.
 
Code:
Changement public
(setq sll1 0,0)
(setq sll2 0,0)

; longueur de sélection des lignes
(défunc c:sellinedaline(/n p10 p11)
(commande "_regen")
(setq n (voiture (sing "\sélectionner la ligne: ")
(setq p10 (cdr 10 (entier n))))
(setq p11 (cdr (assoc 11)))
(setq sll1 (distance p10 p11))
(c: sellinel)
)

; longueurs de gamme définies
(défun c:sellinel(/ lsel)
(commande "_regen")
(setq sll1 (par défaut sll1 "\nlunghezza linea: ")
(setq sll2 (par défaut sll1 "\nlunghezza linea: ")
(Sellinel)
(commander "_sélectionner" (voiture) ")
(principaux (strcat "\nlinee selected ") (rtos (longueur (car lsel)) 2 0) " (rtos (cadr lsel) 2)))
(principal)
)

(défun sellel(/ delta l sel c p10 p11 d s)
(setq ssel (score "x" (cons 0 "ligne")))
(voir c 0)
(Setq s)
(Sectq delta (abs (- sll1 sll2))
(répète (selle de longueur)
(setq n (nom de l'expéditeur c))
(setq p10 (cdr 10 (entier n))))
(setq p11 (cdr (assoc 11)))
(setq d (distance p10 p11))
(si (et (> = d sll1) (< d (+ sll1 delta 0,99))
(Secteurs)
)
(setq c (1+ c))
)
(liste s c)
)

; fonction. entrée de l'invite de commande. repropose la valeur précédente ou passée à l'appel de fonction.
; var: valeur variable ou réelle ou valeur de chaîne
; invite : variable de type chaîne
; exemple: (par défaut 10,0 "valeur de sortie") -> Saisissez la valeur <10.0> & #160;:
; avec confirmation d'envoi 10.0 sinon la fonction retourne la nouvelle valeur
(défend par défaut (var prompt / i)
(si (= (type var) (type "))
(progrès)
(si (= valeur nulle)
(setq var)
)
(setq i (getstring t (invite strcat "<" var ">): ")
(si)
(Sect. i néant)
)
)
(progrès)
(si (= valeur nulle)
(setq var 0.0)
)
(setq i (vitréal (vitréal "<" (rtos var) ">: ")))
)
)
(si (= zéro)
)

; fonction nécessitant de sélectionner l'entité. utilise la fonction entsel.
(pourfun chanter (prompt / a)
(alors qu'il ne s'agit pas de (setq a)
a
)
sélection des lignes sélectionnées par _précédent
 

Statistiques du forum

Sujets
58 521
Messages
499 056
Membres
104 110
Dernier membre
ChristianR

Membres en ligne

Aucun membre en ligne actuellement.
Retour
Haut