質問編集履歴
8
書式の改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
クリック時に(yes/no)判定を入れたい
|
test
CHANGED
File without changes
|
7
書式の改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Pythonで3Dモデル上での
|
1
|
+
Pythonで3Dモデル上での10回目のクリック時に(yes/no)判定を入れたい
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
|
3
|
+
STLファイル上でクリックした回数をカウントさせ、10回目に(yes/no)判定を入れたいのですがうまく動きません。
|
4
4
|
|
5
5
|
エラーを回避するにはどうすればよいでしょうか。
|
6
6
|
|
@@ -19,104 +19,6 @@
|
|
19
19
|
callback(self._plotter.pick_click_position())
|
20
20
|
|
21
21
|
TypeError: left_click() missing 1 required positional argument: 'self'
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
```
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
### 該当のソースコード
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
```python
|
36
|
-
|
37
|
-
# 左クリックしたらoutput関数を処理する
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
import pyvista as pv
|
42
|
-
|
43
|
-
import numpy as np
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
def __inti__(self):
|
48
|
-
|
49
|
-
self.i=0
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
def left_click(data,self):
|
54
|
-
|
55
|
-
self.i+=1
|
56
|
-
|
57
|
-
data = np.array(data)
|
58
|
-
|
59
|
-
plotter.add_points(data, render_points_as_spheres=True, point_size=10.0, color='red')
|
60
|
-
|
61
|
-
print('point:','self.i')
|
62
|
-
|
63
|
-
print(data)
|
64
|
-
|
65
|
-
print(type(data))
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
if self.i==2: #2回目のクリック時に座標確定の判定
|
70
|
-
|
71
|
-
dic={'y':True,'yes':True,'n':False,'no':False}
|
72
|
-
|
73
|
-
try:
|
74
|
-
|
75
|
-
dic[input('確定しますか? Yes/No >> ')]
|
76
|
-
|
77
|
-
except:
|
78
|
-
|
79
|
-
pass
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
if dic==True:
|
84
|
-
|
85
|
-
print('OK!')
|
86
|
-
|
87
|
-
else:
|
88
|
-
|
89
|
-
print('continue')
|
90
|
-
|
91
|
-
else: #選択範囲以外のところをクリックしたときエラー処理
|
92
|
-
|
93
|
-
print('error')
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
filename = "Lt_tibia.stl"
|
98
|
-
|
99
|
-
mesh = pv.read(filename)# 3Dモデルのファイルを読み込み
|
100
|
-
|
101
|
-
plotter = pv.Plotter() # プロッターを生成
|
102
|
-
|
103
|
-
plotter.add_mesh(mesh) # 3Dモデルをプロッターに追加
|
104
|
-
|
105
|
-
point_data = mesh.points # 3Dモデルの座標データを取得
|
106
|
-
|
107
|
-
mesh.points = translation(point_data, -268, -203, 945) #モデル全体を平行移動
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
print('座標位置を選択してください')
|
112
|
-
|
113
|
-
plotter.track_click_position(callback=left_click, side='left')
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
plotter.show()
|
118
|
-
|
119
|
-
|
120
22
|
|
121
23
|
|
122
24
|
|
@@ -144,8 +46,6 @@
|
|
144
46
|
|
145
47
|
|
146
48
|
|
147
|
-
初心者で至らない点が多いかと思いますが、より多くのアドバイスをいただければ幸いです。
|
148
|
-
|
149
49
|
<実行環境>
|
150
50
|
|
151
51
|
Windows10
|
6
文字の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Pythonで
|
1
|
+
Pythonで3Dモデル上での2回目のクリック時に(yes/no)判定を入れたい
|
test
CHANGED
File without changes
|
5
文字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,8 +3,6 @@
|
|
3
3
|
Pyvistaを使ってSTLファイル上でクリックした回数をカウントさせ、2回目に座標選択の確定(yes/no)判定を入れたいのですが、うまく動きません。
|
4
4
|
|
5
5
|
エラーを回避するにはどうすればよいでしょうか。
|
6
|
-
|
7
|
-
Pythonに触れてまだ日が浅く、基礎的な事かもしれませんがご教授のほどよろしくお願いします。
|
8
6
|
|
9
7
|
|
10
8
|
|
4
エラーメッセージの不備がありました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
WARNING:root:Encountered issue in callback (most recent call last):
|
18
18
|
|
19
|
-
File "C:\Users\
|
19
|
+
File "C:\Users\anaconda3\lib\site-packages\pyvista\plotting\render_window_interactor.py", line 133, in _click_callback
|
20
20
|
|
21
21
|
callback(self._plotter.pick_click_position())
|
22
22
|
|
3
タイトルの修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
PythonでSTLファイル上でクリック
|
1
|
+
PythonでSTLファイル上での2回目のクリック時に(yes/no)判定を入れたい
|
test
CHANGED
File without changes
|
2
文字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
Pyvistaを使ってSTLファイル上でクリックした回数をカウントさせ、2回目に座標選択の確定(yes/no)判定を入れたい
|
3
|
+
Pyvistaを使ってSTLファイル上でクリックした回数をカウントさせ、2回目に座標選択の確定(yes/no)判定を入れたいのですが、うまく動きません。
|
4
4
|
|
5
|
+
エラーを回避するにはどうすればよいでしょうか。
|
5
6
|
|
6
|
-
|
7
|
-
classがうまく機能していない原因がわからないため、その理由を教えてほしいです。
|
8
|
-
|
9
|
-
Pythonに触れてまだ日が浅く、基礎的な事かもしれませんがよろしくお願いします。
|
7
|
+
Pythonに触れてまだ日が浅く、基礎的な事かもしれませんがご教授のほどよろしくお願いします。
|
10
8
|
|
11
9
|
|
12
10
|
|
@@ -14,33 +12,15 @@
|
|
14
12
|
|
15
13
|
|
16
14
|
|
17
|
-
|
18
|
-
|
19
15
|
```
|
20
16
|
|
21
|
-
|
17
|
+
WARNING:root:Encountered issue in callback (most recent call last):
|
22
18
|
|
19
|
+
File "C:\Users\kudo0\anaconda3\lib\site-packages\pyvista\plotting\render_window_interactor.py", line 133, in _click_callback
|
23
20
|
|
21
|
+
callback(self._plotter.pick_click_position())
|
24
22
|
|
25
|
-
|
23
|
+
TypeError: left_click() missing 1 required positional argument: 'self'
|
26
|
-
|
27
|
-
class Count:
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
File "C:\Users\Python Scripts\sample.py", line 36, in Count
|
32
|
-
|
33
|
-
main()
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
File "C:\Users\Python Scripts\sample_v2.py", line 34, in main
|
38
|
-
|
39
|
-
w = Count()
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
NameError: name 'Count' is not defined
|
44
24
|
|
45
25
|
|
46
26
|
|
@@ -58,7 +38,13 @@
|
|
58
38
|
|
59
39
|
# 左クリックしたらoutput関数を処理する
|
60
40
|
|
41
|
+
|
42
|
+
|
61
|
-
|
43
|
+
import pyvista as pv
|
44
|
+
|
45
|
+
import numpy as np
|
46
|
+
|
47
|
+
|
62
48
|
|
63
49
|
def __inti__(self):
|
64
50
|
|
@@ -108,18 +94,6 @@
|
|
108
94
|
|
109
95
|
print('error')
|
110
96
|
|
111
|
-
|
112
|
-
|
113
|
-
def main():
|
114
|
-
|
115
|
-
w = Count()
|
116
|
-
|
117
|
-
w.show()
|
118
|
-
|
119
|
-
main()
|
120
|
-
|
121
|
-
|
122
|
-
|
123
97
|
|
124
98
|
|
125
99
|
filename = "Lt_tibia.stl"
|
@@ -156,9 +130,13 @@
|
|
156
130
|
|
157
131
|
|
158
132
|
|
159
|
-
for文を使ったプログラムだと無制限に座標が表示されてうまく動かなかったため、count()関数を使用しました。
|
133
|
+
~~for文を使ったプログラムだと無制限に座標が表示されてうまく動かなかったため、count()関数を使用しました。~~
|
160
134
|
|
161
135
|
|
136
|
+
|
137
|
+
>追記
|
138
|
+
|
139
|
+
クラスがあるとクリックした際に値を呼び出せなくなったためクラスを外しました。
|
162
140
|
|
163
141
|
|
164
142
|
|
1
文字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -158,7 +158,7 @@
|
|
158
158
|
|
159
159
|
for文を使ったプログラムだと無制限に座標が表示されてうまく動かなかったため、count()関数を使用しました。
|
160
160
|
|
161
|
-
|
161
|
+
|
162
162
|
|
163
163
|
|
164
164
|
|