Bonjour,
J'ai un code Lisp qui fonctionne très bien chez un développeur mais qui ne fonctionne pas chez moi.
J'ai le message d'erreur suivant : "erreur: chaîne du mode ssget incorrecte"
Le lisp a pour but de renseigner l'élévation d'une polyligne, de l'extraire selon sa hauteur et d'extruder une autre polyligne définissant le contour d'un autre volume le traversant. C'est plus simple à comprendre via cette vidéo : http://www.youtube.com/watch?v=DAE3o...ature=youtu.be
Est-ce que vous pouvez me renseigner sur l'origine du message d'erreur ?
Est-ce qu'une bibliothèque .dll manquante peut générer ce type d'erreur ?
Voici le code :Est-ce que d'autres personnes sont concernées par ce message d'erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 (defun c:Ex-sub (/ *error* _sel sd s pts ss cm e i s1) ;;; ==-- Author : Tharwat Al Shoufi --== ;;; ;;; Extrude and extract inside polylines ;;; (vl-load-com) (or Doc (setq Doc (vla-get-ActiveDocument (vlax-get-acad-object))) ) (defun _sel (string) (progn (prompt string) (setq s (ssget "_+.:s" '((0 . "*POLYLINE") (-4 . "&=") (70 . 1))) ) ) s ) (defun *error* (x) (if cm (setvar 'cmdecho cm) ) (vla-Endundomark Doc) (princ "\n *Cancel*") ) (setq *elv* (if *elv* *elv* 1.0 ) *ex* (if *ex* *ex* 1.0 ) ) (if (and (progn (initget 6) (setq *elv* (cond ((getdist (strcat "\n Specify Elevations " (strcat " < " (rtos *elv* 2 2) " > :") ) ) ) (t *elv*) ) ) ) (progn (initget 6) (setq *ex* (cond ((getdist (strcat "\n Specify extrusion height " (strcat " < " (rtos *ex* 2 2) " > :") ) ) ) (t *ex*) ) ) ) (setq sd (ssadd)) (_sel "Select Single outside LWpolyline") ) (progn (setq pts (mapcar 'cdr (vl-remove-if-not '(lambda (x) (eq (car x) 10)) (entget (ssname s 0)) ) ) ) (if (setq ss (ssget "WP" pts '((0 . "*POLYLINE") (-4 . "&=") (70 . 1))) ) (progn (vla-StartUndoMark Doc) (setq cm (getvar 'cmdecho)) (setvar 'cmdecho 0) (entmod (subst (cons 38 *elv*) (assoc 38 (entget (ssname s 0))) (entget (ssname s 0)) ) ) (command "_.extrude" s "" *ex*) (setq s1 (entlast)) (repeat (setq i (sslength ss)) (entmod (subst (cons 38 *elv*) (assoc 38 (setq e (entget (ssname ss (setq i (1- i)))))) e ) ) (command "_.extrude" (ssname ss i) "" *ex*) (ssadd (entlast) sd) ) (command "_.subtract" s1 "" sd "") (setvar 'cmdecho cm) (vla-Endundomark Doc) ) ) ) (princ) ) (princ "\n Written by Tharwat Al Shoufi") (princ) )
Merci d'avance pour votre aide !
Partager