Đến nội dung


Hình ảnh
* * * - - 1 Bình chọn

[Yêu cầu] lisp Phun tọa độ các điểm từ file txt vào CAD


  • Please log in to reply
107 replies to this topic

#1 tuyphong_frv

tuyphong_frv

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 30 May 2010 - 11:11 AM

Mình cũng mới ra trường, mình có một file txt tọa độ và độ cao của các điểm. MÌnh cần phun các điểm này lên cad, mình đang chạy Cad 2004, mong các bạn giúp mình với. Mình xin cảm ơn các bạn nhiều
Cấu trúc file dữ liệu txt của mình như sau : STT[dấu tab]X[dấu tab]Y[dấu tab]H
Đây là file dữ liệu text của mình

1 2329601.111 354348.8217 4.05
2 2329680.452 354348.2847 4.8
3 2329695.731 354348.2665 4.59
4 2329760.395 354350.4096 3.83
5 2329734.627 354350.1736 4.06
6 2330033.924 354349.2966 4.02
7 2329853.42 354349.7547 2.51
8 2329954.23 354348.8552 2.96
9 2330024.335 354351.0173 4.36
10 2329141.601 353367.2477 0.87
11 2330083.283 354226.1244 4.41
12 2330096.782 354188.1586 4.56
13 2330084.739 354223.5669 4.41
14 2330072.18 354255.2336 4.24
15 2330082.446 354246.8349 4.28
16 2330086.674 354234.9562 4.31
17 2330090.746 354233.5468 4.34
18 2330116.096 354243.8815 4.56
19 2330118.593 354238.1892 4.6
20 2330101.13 354230.8936 4.38
21 2330091.073 354224.7862 4.53
22 2330091.201 354221.8695 4.55
23 2330099.308 354215.9192 4.74
24 2330071.157 354221.5968 4.64
25 2330095.871 354223.633 4.76
26 2330100.713 354225.8228 4.74
27 2330096.417 354228.2863 4.4
28 2330076.872 354207.8337 4.33
29 2330098.445 354236.9191 4.18
30 2330089.139 354245.2211 4.54
31 2330093.554 354234.947 4.43
32 2330093.809 354234.1311 4.3
33 2330077.296 354206.8475 4.36
34 2330077.296 354206.8359 4.36
35 2330080.467 354207.1728 4.34
36 2330077.579 354223.6025 4.32
37 2328911.223 353810.2686 1.55
38 2328930.38 353819.8861 1.35
39 2328932.433 353812.9436 1.94
40 2328924.433 353805.1256 1.6
41 2328947.281 353825.2526 0.83
42 2328949.977 353816.2742 1.76
43 2328906.788 353794.8497 2.29
44 2328976.065 353841.1843 0.85
45 2328979.015 353829.1792 1.93
46 2328880.018 353796.0264 0.95
47 2328884.037 353784.6955 2.26
48 2329026.355 353856.6625 1.55
49 2329027.518 353848.5523 1.71
50 2328858.222 353787.9463 0.95
51 2328862.666 353775.4874 1.88
52 2329054.445 353866.6599 1.27
53 2329053.742 353858.7875 1.73
54 2328839.054 353780.611 1.26
55 2328843.557 353768.0034 1.91
56 2329078.308 353869.6154 2.39
57 2329085.9 353867.6712 3.99
58 2328821.916 353769.5474 1.71
59 2328825.473 353760.1213 1.95
60 2329026.61 353860.7997 1.44
61 2329003.847 353875.4712 1.46
62 2329011.732 353897.4581 0.79
63 2329021.917 353911.9714 1.73
64 2329028.05 353914.3383 3.28
65 2329044.328 353901.1668 3.16
66 2329040.012 353897.6879 2.55
67 2329034.921 353863.9433 1.39
68 2329039.723 353881.0748 1.45
69 2329044.894 353889.0434 1.77
70 2329011.37 353425.3278 4.61
71 2329064.694 353867.1626 1.64
72 2329069.979 353873.7371 1.81
73 2329061.087 353463.8208 3.11
74 2329329.408 354070.541 2.66
75 2329080.108 353860.5343 4.69
76 2328794.414 354261.704 6.67
77 2329329.419 354070.4917 2.7
78 2329189.908 353430.8551 0.9
79 2329601.943 353646.8228 1.8
80 2329581.827 353628.4327 1.77
81 2329588.321 353590.2256 1.85
82 2329552.453 353635.0785 1.7
83 2329566.867 353618.4323 1.68
84 2329548.335 353606.4003 1.64
85 2329563.541 353597.9979 1.64
86 2329559.423 353565.6399 1.5
87 2329528.219 353567.7175 1.34
88 2329360.117 353856.4385 3.01
89 2329901.307 353838.1542 2.03
90 2329879.959 353833.0103 2.06
91 2329410.493 354139.359 3.16
92 2329414.134 354181.8021 3.26
93 2329460.394 354210.5262 3.06
94 2329438.549 354182.5595 3.21
95 2329428.269 354155.6503 3.36
96 2329444.118 354137.8585 3.37
97 2329450.543 354157.3651 3.18
98 2329462.536 354182.8739 3.08
99 2329471.821 354156.3236 3.13
100 2329498.932 354159.7108 2.94
101 2329484.285 354175.7011 3.03
102 2329478.605 354199.3376 3.22
103 2329476.064 354222.5253 2.98
104 2329491.459 354232.4484 3.11
105 2329509.754 354224.4423 2.73
106 2329497.199 354210.2139 2.79
107 2329500.637 354180.743 2.89
108 2329515.733 354203.4819 2.89
109 2329519.619 354178.6653 2.83
110 2329559.919 354231.6953 2.76
111 2329571.177 354254.3869 2.86
112 2329577.346 354209.3126 2.83
113 2329540.482 354182.3826 2.79
114 2329524.382 354228.2562 2.68
115 2329533.636 354206.4522 2.67
116 2329543.566 354223.8679 2.69
117 2329553.784 354207.0975 2.68
118 2329626.709 354331.7136 3.51
119 2329631.417 354307.7982 3.58
120 2329600.893 354265.6954 3.42
121 2329656.473 354242.136 3.08
122 2329641.136 354231.0403 3.23
123 2329628.227 354248.2159 3.73
124 2329627.013 354275.7271 3.65
125 2329639.01 354283.0229 3.67
126 2329697.331 354296.742 3.03
127 2329698.904 354271.4127 3.04
128 2329728.226 354318.2756 3.34
129 2329733.608 354337.3948 3.46
130 2329749.658 354324.7107 3.54
131 2329735.412 354298.1964 3.2
132 2329741.424 354314.1186 3.35
133 2329327.247 354208.2119 2.83
134 2329382.94 354215.3401 2.71
135 2329400.162 354250.7598 2.74
136 2329590.31 354326.2031 4.12
137 2329567.523 354298.5968 4.14
138 2329551.795 354288.4233 4.09
139 2329530.579 354281.19 3.99
140 2329508.943 354268.9288 3.89
141 2329491.988 354267.0737 3.97
142 2329472.663 354263.0806 3.85
143 2329464.457 354128.786 3.11
144 2329461.662 354104.0341 3.12
145 2329436.668 354113.7444 3.42
146 2329446.863 354082.3093 3.33
147 2329447.192 354101.0716 3.3
148 2329452.454 354120.1631 3.23
149 2329014.338 353983.0356 1.72
150 2329004.07 354005.1022 1.76
151 2328988.285 354016.6165 1.8
152 2328977.317 354034.1895 1.81
153 2329003.535 354023.2941 1.79
154 2329023.772 354001.9913 1.72
155 2329031.652 353982.1207 1.69
156 2329032.875 353961.4675 1.66
157 2329044.695 353990.4159 1.69
158 2329049.043 353969.7627 1.67
159 2329048.499 353948.2936 1.64
160 2329060.35 353958.853 1.63
161 2329069.861 353973.5229 1.59
162 2329061.981 353991.1177 1.61
163 2329052.575 354004.0478 1.64
164 2329038.11 354011.4198 1.72
165 2329019.846 354026.4674 1.75
166 2328993.661 354039.0803 1.83
167 2329011.432 354040.0549 1.82
168 2328990.496 354057.3544 1.82
169 2329088.88 353976.5068 1.82
170 2329098.556 353970.0502 1.92
171 2329099.094 353969.461 1.92
172 2329109.388 354100.9901 1.96
173 2329115.774 354082.3129 1.97
174 2329091.236 354016.8952 1.87
175 2329118.582 354052.5581 2.01
176 2329097.306 354049.8987 1.94
177 2329079.97 354054.5447 1.86
178 2329088.598 354043.3077 1.87
179 2329073.536 354024.497 1.83
180 2329065.01 354035.6059 1.82
181 2329056.511 354046.945 1.82
182 2329067.337 354109.8725 1.81
183 2329061.774 354086.6043 1.84
184 2329059.196 354065.9122 1.89
185 2329041.657 354070.4651 1.85
186 2329038.549 354086.206 1.84
187 2329035.826 354115.7098 1.76
188 2329054.451 354133.0674 1.77
189 2329048.2 354110.8097 1.75
190 2329029.83 354103.7988 1.81
191 2329041.392 354140.1436 1.73
192 2329045.719 354159.8214 1.73
193 2329060.005 354163.5647 1.74
194 2329123.259 354116.0352 1.91
195 2329121.565 354102.2377 1.94
196 2329133.097 354091.2322 1.96
197 2329097.002 354076.1075 1.99
198 2329079.472 354089.8692 1.91
199 2329079.575 354068.2903 1.92
200 2329099.401 354063.3615 1.94
201 2329108.934 354073.4725 1.97
202 2329109.467 354132.6348 1.85
203 2329102.084 354112.7204 1.88
204 2329083.817 354111.8766 1.86
205 2329086.662 354131.7224 1.81
206 2329078.821 354145.9014 1.78
207 2329084.443 354161.5853 1.77
208 2329102.146 354146.9556 1.81
209 2329086.538 354224.0938 1.7
210 2329126.434 354242.1297 1.73
211 2329125.352 354227.33 1.71
212 2329127.709 354213.3064 1.84
213 2329106.1 354221.002 1.72
214 2329101.997 354204.2132 1.81
215 2329109.828 354191.2014 1.79
216 2329095.116 354169.3198 1.76
217 2329109.344 354175.6344 1.74
218 2329116.48 354160.4862 1.82
219 2329159.585 354221.5597 1.76
220 2329137.947 354216.668 1.76
221 2329124.202 354198.1743 1.76
222 2329129.275 354181.278 1.72
223 2329160.525 354208.2795 1.75
224 2329146.39 354197.641 1.75
225 2329151.466 354181.7352 1.7
226 2329169.994 354201.3772 1.74
227 2329167.87 354178.5351 1.73
228 2329136.449 354160.2965 1.89
229 2329149.083 354162.7697 1.8
230 2329144.757 354149.3288 1.87
231 2329125.069 354142.1175 1.88
232 2329150.965 354136.2676 1.88
233 2329133.172 354125.1692 1.9
234 2329169.971 354147.125 1.78
235 2329162.062 354159.5629 1.46
236 2329154.539 354122.9936 1.88
237 2329168.803 354105.9881 1.87
238 2329186.445 354123.9234 1.77
239 2329205.451 354129.2301 1.77
240 2329192.144 354145.4276 1.76
241 2329192.056 354068.6113 1.86
242 2329166.475 354083.4023 1.95
243 2329197.398 354112.6559 1.79
244 2329186.238 354095.3848 1.84
245 2329178.505 354134.0333 1.78
246 2329172.778 354122.4415 1.81
247 2329143.789 354108.3114 1.93
248 2329157.596 354094.9717 1.96
249 2329144.009 354077.1375 1.24
250 2329130.953 354075.7252 1.97
251 2329146.794 354054.4384 1.99
252 2329187.345 353995.6889 1.92
253 2329132.434 353961.3012 1.92
254 2329132.028 353935.1167 1.84
255 2329119.202 353926.778 1.72
256 2329109.045 353960.1 1.84
257 2329109.709 353948.4834 1.68
258 2329109.348 353930.9206 1.72
259 2329101.629 353920.3708 1.67
260 2329083.57 353942.8778 1.6
261 2329088.078 353930.3007 1.65
262 2329075.722 353913.924 1.68
263 2329093.13 354005.5501 1.91
264 2329111.642 354027.8498 1.98
265 2329115.959 354004.2776 1.98
266 2329125.05 353988.8494 2.01
267 2329130.009 354031.9827 2.02
268 2329127.738 354056.8024 1.99
269 2329158.064 354064.8042 1.99
270 2329166.641 354042.8475 1.96
271 2329147.118 354039.4426 1.99
272 2329150.307 354015.8454 2.01
273 2329169.275 354027.0437 1.97
274 2329173.484 354055.9448 1.87
275 2329182.549 354074.7298 1.85
276 2329187.861 354044.5164 1.95
277 2329198.877 354060.5214 1.87
278 2329201.533 354075.7256 1.89
279 2329214.057 354052.622 1.89
280 2329203.212 354027.854 1.94
281 2329226.797 354038.1144 1.92
282 2329237.518 354042.2618 1.98
283 2329222.929 354012.2059 1.85
284 2329229.828 354000.1155 1.74
285 2329236.555 353979.3012 1.92
286 2329238.533 353992.1372 1.76
287 2329249.809 354004.2657 1.72

  • 0

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 31 May 2010 - 08:00 AM

Mình cũng mới ra trường, mình có một file txt tọa độ và độ cao của các điểm. MÌnh cần phun các điểm này lên cad, mình đang chạy Cad 2004, mong các bạn giúp mình với. Mình xin cảm ơn các bạn nhiều
Cấu trúc file dữ liệu txt của mình như sau : STT[dấu tab]X[dấu tab]Y[dấu tab]H
Đây là file dữ liệu text của mình


[color="#0000FF"]...........
57 2329085.9 353867.6712 3.99
...........
189 2329048.2 354110.8097 1.75
...........
213 2329106.1 354221.002 1.72
...........[/color]

Bạn chạy thử LISP đọc file txt có cấu trúc file dữ liệu như yêu cầu : STT[dấu tab]X[dấu tab]Y[dấu tab]H
Chú ý : trong file dữ liệu bạn Post lên, 3 dòng (57,189,213) có cấu trúc khác biệt.
Chiều cao Txt có thể thay đổi tại dòng : (setq h ....)
(defun c:RFT(/ data f h line pt spc ten val);Read File Txt
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h (* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data) )
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(vla-addtext spc val (vlax-3d-point pt) h) )))) ))
(princ))

  • 2

#3 tuyphong_frv

tuyphong_frv

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 01 June 2010 - 10:38 PM

Mình đã chạy thử file lisp ma bạn viết, nhưng trên command của mình vẫn hiện dòng lỗi này nè
; error: no function definition: VLAX-GET-ACAD-OBJECT
Mình không hiểu nhiều về autolisp lắm, mong bạn giúp mình khắc phục lỗi này với
  • 0

#4 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 02 June 2010 - 06:39 AM

Bạn chạy thử LISP đọc file txt có cấu trúc file dữ liệu như yêu cầu : STT[dấu tab]X[dấu tab]Y[dấu tab]H
Chú ý : trong file dữ liệu bạn Post lên, 3 dòng (57,189,213) có cấu trúc khác biệt.
Chiều cao Txt có thể thay đổi tại dòng : (setq h ....)

(defun c:RFT(/ data f h line pt spc ten val);Read File Txt
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h (* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data) )
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(vla-addtext spc val (vlax-3d-point pt) h) )))) ))
(princ))

Nhờ Anh Gia_bach có thể bổ sung lisp trên giúp em, khi bắn ra cad thì tạo ra các lớp :
1. Lớp point có kí hiệu điểm ( là điểm của tọa độ x, y trắc địa )
2. Lớp Số thứ tự
3. Lớp Cao độ
Mong được anh giúp, mong tin anh
  • 0

#5 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 02 June 2010 - 11:51 AM

Bạn giải thích rõ hơn :
1. Lớp point có kí hiệu điểm ( là điểm của tọa độ x, y trắc địa )
--> tạo layer có tên POINT chứa các đối tuợng point là điểm của tọa độ x, y

2. Lớp Số thứ tự
--> tạo layer có tên SoThuTu chứa đối tuợng Text đuơc tạo thành từ Lisp RFT ?

3. Lớp Cao độ
--> tạo layer có tên CaoDo : có đối tuợng gì ?
to : tuyphong_frv
Đã update Lisp, bạn lấy lại LISP trên hoặc gõ dòng (vl-load-com) tại dấu nhắc truớc khi gõ lệnh RFT.

Lớp point là chứa đối tượng có kí hiệu điểm point ( Của Cad ) theo tọa độ x,y của bảng tọa độ trên ( cột 2 và 3 )
Lớp Sothutu là thể hiện số thứ tự hay tên điểm ( cột 1 )
Lớp cao độ là xuất text ở cột 4 ( Chú ý đừng để text STT và Caodo chồng lên nhau )
Mong được anh giúp. Cám ơn
  • 0

#6 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 02 June 2010 - 01:31 PM

Lớp point là chứa đối tượng có kí hiệu điểm point ( Của Cad ) theo tọa độ x,y của bảng tọa độ trên ( cột 2 và 3 )
Lớp Sothutu là thể hiện số thứ tự hay tên điểm ( cột 1 )
Lớp cao độ là xuất text ở cột 4 ( Chú ý đừng để text STT và Caodo chồng lên nhau )
Mong được anh giúp. Cám ơn

Bạn chạy thử :
(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt
;| By : Gia Bach, gia_bach @ www.CadViet.com |;
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(or (tblsearch "layer" "Point") (command "-layer" "n" "Point" "") )
(or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") )
(or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") )
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h 2);(* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data))
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(setq pXY (list (car pt)(cadr pt)))
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "Point")
(vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu")
(vla-put-Alignment str 8)
(vla-put-TextAlignmentPoint str (vlax-3d-point pXY))
(vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) ))
(princ))

  • 3

#7 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 03 June 2010 - 07:27 AM

Bạn chạy thử :

(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt
;| By : Gia Bach, gia_bach @ www.CadViet.com |;
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(or (tblsearch "layer" "Point") (command "-layer" "n" "Point" "") )
(or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") )
(or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") )
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h 2);(* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data))
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(setq pXY (list (car pt)(cadr pt)))
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "Point")
(vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu")
(vla-put-Alignment str 8)
(vla-put-TextAlignmentPoint str (vlax-3d-point pXY))
(vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) ))
(princ))

Cám ơn Anh Gia_bach, Lisp rất hay.
Nhờ anh chình thêm : người dùng chọ chiều cao chữ vì khi theo tỉ lệ bản đồ cho phù hợp.
Điểm point cách xa text cao độ một chút.
** Và vấn đề này nữa :
1. Khi đo đạc mình không thể đặt điểm đểu khắp trên khu đo vậy cần phải cấy thêm điểm mia vào, chọn vị trí trên mành hỉnh, thì lisp ghi nhận toạ độ X , Y của điểm đó, Yêu cầu nhập vào số thứ tự điểm, cao độ, thì thể hiện ra trên mành hình. ----> Các Điểm thêm bổ sung trên sẻ được ghi nối vào file toạ độ **.txt cũ ở trên.
2. Nội suy cao độ : Nội suy qua 3 text , chọn 3 text cao độ và chọn vị trí cần nội suy thì tính cho ra điểm point và text cao độ, yêu cầu : nhập số thứ tự vào. ----> Các Điểm thêm bổ sung trên sẻ được ghi nối vào file toạ độ **.txt cũ ở trên.
3. Hoặc là sau khi nhập điểm bổ sung hay nội suy ở các điểm. Ta chọn hết các điểm để xuất ra 1 file text hoàn chỉnh sau cùng.
Rất mong được anh giúp.
  • 0

#8 tuyphong_frv

tuyphong_frv

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 03 June 2010 - 06:15 PM

Mình đã làm nhưng vẫn không chạy được, load chạy xong nhưng chẳng hiện điểm nào lên cad cả. Với dữ liệu file text mình đưa lên, mình mong muốn trên cad sẽ hiển thị những điểm đó, và hiển thị độ cao cụ thể bên cạnh những điểm đó trên cad. Rất mong các sư huynh giúp mình với. Xin cảm ơn anh Gia Bạch nhiều nghen
  • 0

#9 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 04 June 2010 - 04:10 PM

To : khaosat2009
Rất tiếc, Tui e rằng không đủ thời gian để thực hiện các yêu cầu này.
Nhân đây nhờ các bạn khác giúp khaosat2009 giùm.

............
cad sẽ hiển thị những điểm đó, và hiển thị độ cao cụ thể bên cạnh những điểm đó

Bạn chạy thử :
(defun c:RFT(/ data f h line pt spc ten val);Read File Txt
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h (* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data) )
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(vla-addtext spc val (vlax-3d-point pt) h)
(vla-addpoint spc (vlax-3d-point pt))) )))) ))
(princ))

  • 1

#10 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 04 June 2010 - 07:37 PM

To : khaosat2009
Rất tiếc, Tui e rằng không đủ thời gian để thực hiện các yêu cầu này.
Nhân đây nhờ các bạn khác giúp khaosat2009 giùm.

Bạn chạy thử :

(defun c:RFT(/ data f h line pt spc ten val);Read File Txt
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h (* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data) )
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(vla-addtext spc val (vlax-3d-point pt) h)
(vla-addpoint spc (vlax-3d-point pt))) )))) ))
(princ))

Cám ơn Anh Gia_bach,
Rất mong được sự giúp đỡ chung của các anh chị.
Mong tin
  • 0

#11 Demenzizu

Demenzizu

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 04 June 2010 - 10:42 PM

bạn thay dòng (setq h 2) thành dòng
(Setq h (getreal"\nChieu cao chu:"))
thì người dùng có thể nhập chiều cao chữ được
  • 0

#12 cadvietcad

cadvietcad

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 04 June 2010 - 10:44 PM

Cám ơn Anh Gia_bach,
Rất mong được sự giúp đỡ chung của các anh chị.
Mong tin


Tôi tìm được cái này nghe có vẻ hay lắm, anh em xem thu nhé

Bạn dùng lệnh Bedit để sửa Point thành hình tròn cho dễ nối điểm, ặc, nhớ cài VBA cho cad nếu không là nhịn đấy, vì mình đã mất cả tiếng đồng hồ vì khôngbiết lý do

chúc bạn vui

http://www.abcautoca...re_autocad.html
Programma Import Points
"Software Import Points
Insert points automatically from a database or a text file.
Insertion of points from database and rows of text. If you have lists of points (coordinates and attributes) in a text file, a worksheet or a database, you can import them inside your DWG.
This program helps who works in AutoCAD with relief instruments or anyway has lists of remarkable points in a database, in rows of a text file, rows of Excel, Access, DBase (format also used by Shape files of ESRI), or in any other ODBC compliant database. ImportPoints allows you to import points or blocks with attributes in AutoCAD, transferring the coordinates and alphanumeric attributes from the source table to the design, automatically creating layers and blocks, if necessary. Moreover you will be able to assign the scale, the name or the layer to the imported blocks basing them on the values of the source fields of the database."
  • 0

#13 Demenzizu

Demenzizu

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 05 June 2010 - 11:30 AM

To : khaosat2009
Bạn khảosát2009 thử xem cái này có đúng ý bạn không
Bạn chạy thử :


(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(or (tblsearch "layer" "Point") (command "-layer" "n" "Point" "") )
(or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") )
(or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") )
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
;(setq h 2)
(Setq h (getreal"\nChieu cao chu:"))
(if (= nil h)(setq h 2))
(setq kitu nil)
(initget "X Y")
(setq kitu (getkword "\nChon kieu xuat [X hay Y]:"))
(cond
((= kitu "X") (setq kitu 0))
((= kitu "Y") (setq kitu 1))
)
(if (= nil kitu)(setq kitu 0))
;(* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data))
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
;(setq pXY (list (car pt)(cadr pt)))
(if (= 0 kitu)
(setq pXY (list (car pt)(cadr pt)))
)
(if (= 1 kitu)
(setq pXY (list (cadr pt)(car pt)))
)
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "Point")
;kkkkkkkkkkkkk
(vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu")
(vla-put-Alignment str 8)
(vla-put-TextAlignmentPoint str (vlax-3d-point pXY))
(vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) ))
(princ))


  • 1

#14 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 06 June 2010 - 09:46 AM

Làm thế nào chúng ta nhập thêm điểm vào vị trí bất kỳ mà ta chọn --->> chèn điểm point tại vị trí đó và Lisp yêu : cầu nhập STT và cao độ.
Mình cần 1 lisp chọn tất cả các điểm trên mành hình, gồm STT, Tọado X Y, Cao độ ra ---->> *. Txt.
Rất mong được bạn giúp.
  • 0

#15 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 08 June 2010 - 07:40 AM

Làm thế nào khi bắn các điểm tọa độ ra cad và đưa hẳn nó ra giữa màn hình.
Rất mong được các anh giúp.
  • 0

#16 meohoang

meohoang

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 811 Bài viết
Điểm đánh giá: 342 (khá)

Đã gửi 08 June 2010 - 09:33 AM

Làm thế nào khi bắn các điểm tọa độ ra cad và đưa hẳn nó ra giữa màn hình.
Rất mong được các anh giúp.

Bạn thêm dòng (command "Zoom" "A" "") vào lisp nêu trên
  • 0

#17 khaosat2009

khaosat2009

    biết lệnh offset

  • Members
  • PipPipPip
  • 171 Bài viết
Điểm đánh giá: 10 (tàm tạm)

Đã gửi 08 June 2010 - 10:48 AM

Bạn thêm dòng (command "Zoom" "A" "") vào lisp nêu trên

Thêm ở dòng nào vậy bạn
  • 0

#18 meohoang

meohoang

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 811 Bài viết
Điểm đánh giá: 342 (khá)

Đã gửi 08 June 2010 - 12:36 PM

Thêm ở dòng nào vậy bạn

Thêm vào trước dòng (princ)
  • 0

#19 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 993 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 13 June 2010 - 11:48 AM

Bạn chạy thử :

(defun c:RFT(/ data f h line pt pXY spc str ten val);Read File Txt
;| By : Gia Bach, gia_bach @ www.CadViet.com |;
(vl-load-com)
(defun Split (Str Char / Lst pos)
(while (setq pos (vl-string-search Char Str))
(if (null Lst)
(setq Lst (list (substr Str 1 pos)))
(setq Lst (append Lst (list (read (substr Str 1 pos))))))
(setq Str (substr Str (+ pos 2)) ))
(setq Lst (append Lst (list (read Str)))))

(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(or (tblsearch "layer" "Point") (command "-layer" "n" "Point" "") )
(or (tblsearch "layer" "Sothutu") (command "-layer" "n" "Sothutu" "c" 3 "Sothutu" "") )
(or (tblsearch "layer" "Caodo") (command "-layer" "n" "Caodo" "c" 4 "Caodo" "") )
(setq spc (vla-get-ModelSpace (vla-get-ActiveDocument(vlax-get-Acad-Object))))
(setq h 2);(* (getvar "dimtxt")(getvar "dimscale")))
(setq f (open (findfile ten) "r"))
(while (setq Line (read-line f))
(if (vl-string-search "\t" Line)
(progn
(setq data (split Line "\t" )
val (car data)
pt (cdr data))
(if (not(vl-catch-all-error-p (vl-catch-all-apply 'vlax-3d-point pt)))
(progn
(setq pXY (list (car pt)(cadr pt)))
(vla-put-Layer (vla-addpoint spc (vlax-3d-point pXY)) "Point")
(vla-put-Layer (setq str (vla-addtext spc val (vlax-3d-point pXY) h)) "Sothutu")
(vla-put-Alignment str 8)
(vla-put-TextAlignmentPoint str (vlax-3d-point pXY))
(vla-put-Layer (vla-addtext spc (caddr pt) (vlax-3d-point pXY) h) "Caodo") ))))) ))
(princ))


Cảm ơn bạn Gia_Bach rất nhiều nhưng mình thấy file muốn fun điểm lên bản vẽ phải đúng theo một khuôn mẫu nhất định. Mình rất mong rằng file mà bạn fun điểm lên bản vẽ chấp nhận các thông số SST X Y Z Code được phân biệt nhau bởi cả dấu " " (dấu cách) , dấu tab, dấu phẩy....
Nếu bạn lập được 1 hàm tách xâu phân biệt được các thông số đó thì chèn các ký hiệu trắc địa vào bản vẽ là bình thường.
Mình đang vướng mắc vấn đề đó.
Mong các bạn giúp đỡ mình
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#20 HIELA

HIELA

    biết zoom

  • Members
  • Pip
  • 18 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 14 June 2010 - 06:50 AM


Cảm ơn bạn Gia_Bach rất nhiều nhưng mình thấy file muốn fun điểm lên bản vẽ phải đúng theo một khuôn mẫu nhất định. Mình rất mong rằng file mà bạn fun điểm lên bản vẽ chấp nhận các thông số SST X Y Z Code được phân biệt nhau bởi cả dấu " " (dấu cách) , dấu tab, dấu phẩy....
Nếu bạn lập được 1 hàm tách xâu phân biệt được các thông số đó thì chèn các ký hiệu trắc địa vào bản vẽ là bình thường.
Mình đang vướng mắc vấn đề đó.
Mong các bạn giúp đỡ mình


Nếu bạn đọc dữ liệu trực tiếp từ Excel thì đơn giản hơn nhiều . Trong Excel ghi theo hang theo cột . Mỗi cột là một thông số . Không cần tách xâu .[/size][/font] Có thể chèn ký hiệu trắc địa vào bản vẽ bình thường
  • 0