Aller au contenu

modif point de base carré


Invité samuelM

Messages recommandés

Invité samuelM

Bonjour,

 

Voici un début de programme mais j'ai besoin de votre aide pour pouvoir le modifier et le finir.

Il est similaire à l'outil rectangle car lui aussi trace un rectangle mais je voudrai mais je voudrai pouvoir définir son point de base en indiquant une distance par addition à partir d'un autre point. je serai ravis si quelqu'un pouvait m'aider.

 

(setvar "osmode" 0)
(setq p1 (getpoint"\nPoint de Base\n"))
(setq longueur (getreal"\nLargeur tableau\n")
     largeur(getreal"\nLongeur tableau\n"))
(setq p2 (list
          (+ (car p1) longueur)
          (cadr p1)
          )
     p3 (list
          (+ (car p1) longueur)
          (+ (cadr p2) largeur)
          )
     p4 (list
          (car p1)
          (+ (cadr p1) largeur)
          )
     )
(command "_pline" p1 p2 p3 p4 "c")
(command "_rotate" "d" "" p1 pause "")

Lien vers le commentaire
Partager sur d’autres sites

je voudrai pouvoir définir son point de base en indiquant une distance par addition à partir d'un autre point

Je ne comprends pas la demande.

 

Mais je peux te faire quelques propositions pour améliorer ton code :

 

Utiliser getdist au lieu de getreal permet de spécifier la distance à la ligne de commande ou à l'écran avec le pointeur (il vaut donc mieux ne pas désactiver les accrochages).

 

Utiliser la commande "_rectangle" plutôt que "_polyline" pour n'avoir que deux points à spécifier.

 

Utiliser "_non" (pour "auc" ou "aucun") pour désactiver les accrochages temporairement lors de la spécification des points dans (command ...)

 

Utiliser mapcar pour calculer le coin opposé du rectangle. Ce point est un déplacement du point de base à l'aide d'un vecteur 2d dont la coordonnée X est la valeur de longueur et la coordonnée Y celle de largeur.

(mapcar '+ p1 (list longueur largeur))

applique la fonction + à chacun des éléments correspondants des listes qui lui sont passées en argument et retourne la liste des résultats. ce qui équivaut à :

(list (+ (car p1) longueur) (+ (cadr p1) largeur))

Ceci répond peut-être en partie à ta demande.

 

(setq p1       (getpoint "\nPoint de Base\n")
     longueur (getdist p1 "\nLargeur tableau: ")
     largeur  (getdist p1 "\nLongeur tableau: ")
     p3       (mapcar '+ p1 (list longueur largeur))
)
(command "_rectangle" "_non" p1 "_non" p3)
(command "_rotate" "d" "" p1 pause "")

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Invité samuelM

Bonjour

 

merci pour ce que tu à fait.

 

en faite c'est surtout getpoint que je voudrai modifier. je voudrai au lieu de pointer son point de base pouvoir lui indiquer une distance par addition à partir d'un point.

je ne sais pas comment mettre une image sur le forum pour te montrer le résultat que je voudrai.

Ex : je veux cette fonction pour placer les ouvertures d'une fenêtre, représenté par un rectangle, à 10+2100 du sol, puis lui indiquer les dimensions de l'ouverture.longueur tableau = 600 largeur tableau = 1200. ce qui m'importe c'est la position en y.

 

je ne sais pas si c'est mieux là?

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité