Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
dunguss3581

[hỏi] viết lisp lấy tọa độ điểm và tên điểm

Các bài được khuyến nghị

Hình minh họa hoặc mô tả của bạn đâu ? Có phải ai cũng có nhã hứng ngồi down file của bạn về rồi mới biết nội dung đâu :(

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

anh em ơi! giúp tôi việc này. tôi nghiên cứu mãi không ra. vấn đề tôi đã trình bày trong bản vẽ sau:

http://www.cadviet.c..._drawing1_4.dwg

Bạn dùng "Chiêu" :

Explode ra -> Lấy các đối tượng vừa Explode trong 1 tập chọn

- Lấy tâm vòng tròn (Chính là tọa độ điểm)

- Lấy Text (Tên điểm)

- Lấy xong rồi -> Undo trả lại đối tượng trở về ban đầu (Trước khi Explode)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn dùng "Chiêu" :

Explode ra -> Lấy các đối tượng vừa Explode trong 1 tập chọn

- Lấy tâm vòng tròn (Chính là tọa độ điểm)

- Lấy Text (Tên điểm)

- Lấy xong rồi -> Undo trả lại đối tượng trở về ban đầu (Trước khi Explode)

khi Explode thì không được với 2 lý do:

1. bất tiện

2. không xác định được text nào của tâm nào. trên bản vẽ rất nhiều điểm như vậy

bác có cách nào hay hơn không?

Hơn nữa tui Explode thì nó mất text không còn chỉ còn điểm và giá trị cao độ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

khi Explode thì không được với 2 lý do:

1. bất tiện

2. không xác định được text nào của tâm nào. trên bản vẽ rất nhiều điểm như vậy

bác có cách nào hay hơn không?

1.Bất tiện nhưng phải làm Vì Lisp không lấy được data của ACAD_PROXY_ENTITY

2. Hoàn toàn xác định được

Explode trong lisp chứ không phải bạn dùng lệnh Explode rồi mới làm Lisp

Chọn qua từng đối tượng "ACAD_PROXY_ENTITY"

- Qua từng đối tượng "ACAD_PROXY_ENTITY" Explode bằng Lisp -> Lấy đối tượng tạo ra bởi Explode.

Bạn có thể dùng hàm (setq ss (acet-explode (ssget '((0 . "ACAD_PROXY_ENTITY"))))

để lấy đối tượng trong 1 tập chọn đã Explode. Tham khảo thôi nhé! Vận dụng trong Lisp cho phù hợp

Sau đó Lây tâm, Lấy Text và thực hiện động tác Undo

- Duyệt tới "ACAD_PROXY_ENTITY" cuối cùng

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

anh em ơi! giúp tôi việc này. tôi nghiên cứu mãi không ra. vấn đề tôi đã trình bày trong bản vẽ sau:

http://www.cadviet.c..._drawing1_4.dwg

Hề hề hề,

Tự nhiên cao hứng ngó xem cái bạn hỏi là cái của chi.

Té ra nó là một ACAD_PROXY ENTITY bạn ạ. Tuy nhiên mình chả hiểu cái của nợ ấy nó ra sao cả.

Muốn lấy các thông số từ thằng này bạn cần explode nó ra. Nhưng bạn cần phải hiểu về bản chất của thằng cu này thì mới có thể lấy đúng cái bạn cần được.

Khi explode nó ra mình thấy nó có tới ba đối tượng với các tọa độ khác nhau nên chả biết cái chi là bạn cần cả. Vậy nên nếu ngay cả bạn cũng không biết bạn cần lấy cái chi thì mình cũng xin chào thua chứ chả thể giúp gì hơn.

 

Đọc các bài post trả lời phía trên thì thấy hình như bác Tue_NV có nhầm lẫn chút đỉnh, Cái vòng tròn là do bạn ấy vẽ vô để đánh dấu cái chỗ cần hỏi chứ không phải là đối tượng nằm trong ACAD_PROXY ENTITY.

Cách của bác Tue_NV cũng là cách mình sẽ dùng song chửa biết nên lấy cái tọa độ nào cho nó đúng với cái của chủ thớt cần.

 

Còn bạn chủ thớt chớ có lo " 2. không xác định được text nào của tâm nào. trên bản vẽ rất nhiều điểm như vậy" Việc ấy đã có lisp nó mần chứ bạn khỏi cần quan tâm. Chỉ cần bạn nói cho rõ cái bạn cần thì các lisper sẽ có thể giúp được bạn. Cái sự gọi là bất tiện ấy đôi khi lại tiện bằng vài chục lần cái cách ngồi chờ đấy bác chủ thớt ạ..

Hề hề hề....

@Bác Tue_NV: Sorry bác vì mình mắt mũi kèm nhèm chửa nhìn thấy cái vòng tròn bé ti hin có trong ACAD_PROXY ENTITY của chủ thớt bác ạ. Nếu đúng cái vòng tròn ấy đánh dấu point cần lấy tọa độ thì chả có chi phải bàn thêm bác hỉ....

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

1.Bất tiện nhưng phải làm Vì Lisp không lấy được data của ACAD_PROXY_ENTITY

2. Hoàn toàn xác định được

Explode trong lisp chứ không phải bạn dùng lệnh Explode rồi mới làm Lisp

Chọn qua từng đối tượng "ACAD_PROXY_ENTITY"

- Qua từng đối tượng "ACAD_PROXY_ENTITY" Explode bằng Lisp -> Lấy đối tượng tạo ra bởi Explode.

Bạn có thể dùng hàm (setq ss (acet-explode (ssget '((0 . "ACAD_PROXY_ENTITY"))))

để lấy đối tượng trong 1 tập chọn đã Explode

Sau đó Lây tâm, Lấy Text và thực hiện động tác Undo

em thử nhưng lại không nhận đối tượng chọn (không chọn được đối tượng) bác thử trên bản vẽ của em chưa?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Hề hề hề,

Tự nhiên cao hứng ngó xem cái bạn hỏi là cái của chi.

Té ra nó là một ACAD_PROXY ENTITY bạn ạ. Tuy nhiên mình chả hiểu cái của nợ ấy nó ra sao cả.

Muốn lấy các thông số từ thằng này bạn cần explode nó ra. Nhưng bạn cần phải hiểu về bản chất của thằng cu này thì mới có thể lấy đúng cái bạn cần được.

Khi explode nó ra mình thấy nó có tới ba đối tượng với các tọa độ khác nhau nên chả biết cái chi là bạn cần cả. Vậy nên nếu ngay cả bạn cũng không biết bạn cần lấy cái chi thì mình cũng xin chào thua chứ chả thể giúp gì hơn.

 

Đọc các bài post trả lời phía trên thì thấy hình như bác Tue_NV có nhầm lẫn chút đỉnh, Cái vòng tròn là do bạn ấy vẽ vô để đánh dấu cái chỗ cần hỏi chứ không phải là đối tượng nằm trong ACAD_PROXY ENTITY.

Cách của bác Tue_NV cũng là cách mình sẽ dùng song chửa biết nên lấy cái tọa độ nào cho nó đúng với cái của chủ thớt cần.

 

Còn bạn chủ thớt chớ có lo " 2. không xác định được text nào của tâm nào. trên bản vẽ rất nhiều điểm như vậy" Việc ấy đã có lisp nó mần chứ bạn khỏi cần quan tâm. Chỉ cần bạn nói cho rõ cái bạn cần thì các lisper sẽ có thể giúp được bạn. Cái sự gọi là bất tiện ấy đôi khi lại tiện bằng vài chục lần cái cách ngồi chờ đấy bác chủ thớt ạ..

Hề hề hề....

vấn đề mình cần là lấy đượng tọa độ của tâm vòng tròn nhỏ (trong ảnh mình đã post) lấy tên điểm là D42 đó. giúp mình nhé

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

em thử nhưng lại không nhận đối tượng chọn (không chọn được đối tượng) bác thử trên bản vẽ của em chưa?

Cái dòng này (setq ss (acet-explode (ssget '((0 . "ACAD_PROXY_ENTITY")))))

mình đã test trên CAD (bản vẽ của bạn rồi -> mới đưa ra câu trả lời

chọn được đối tượng bạn ạ. Mình sài CAD2008

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cái dòng này (setq ss (acet-explode (ssget '((0 . "ACAD_PROXY_ENTITY")))))

mình đã test trên CAD (bản vẽ của bạn rồi -> mới đưa ra câu trả lời

chọn được đối tượng bạn ạ. Mình sài CAD2008

 

Cái dòng này (setq ss (acet-explode (ssget '((0 . "ACAD_PROXY_ENTITY")))))

mình đã test trên CAD (bản vẽ của bạn rồi -> mới đưa ra câu trả lời

chọn được đối tượng bạn ạ. Mình sài CAD2008

đúng rồi mình làm trong cad thì được nhưng trong phần mềm topo lại không được. có cách khác không bác?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

đúng rồi mình làm trong cad thì được nhưng trong phần mềm topo lại không được. có cách khác không bác?

Thì làm trong CAD đi. Mình explode ra rồi chỉ lấy tọa độ điểm và tên điểm -> đưa vào List -> Undo "trả lại tên cho em" thì có mất mớ chi đâu bạn hè? :lol:

Không có cách khác đâu, bạn dùng NET thì được, với Lisp như mình nói là không lấy được Data của ACAD_PROXY_ENTITY

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Thì làm trong CAD đi. Mình explode ra rồi chỉ lấy tọa độ điểm và tên điểm -> đưa vào List -> Undo "trả lại tên cho em" thì có mất mớ chi đâu bạn hè? :lol:

Không có cách khác đâu, bạn dùng NET thì được, với Lisp như mình nói là không lấy được Data của ACAD_PROXY_ENTITY

không còn cách khác thì đành vậy thôi. dù sao cũng cảm ơn các bác nhé. nếu các bác tìm được cách nào khác thì post cho tui với nhé

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

không còn cách khác thì đành vậy thôi. dù sao cũng cảm ơn các bác nhé. nếu các bác tìm được cách nào khác thì post cho tui với nhé

Bạn đọc thêm cái này nữa nhé :)

http://www.cadviet.com/forum/index.php?showtopic=24409&st=0&p=111477&&do=findComment&comment=111477

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nếu dùng Lsp để lấy thông số của ACAD_PROXY_ENTITY thì mình không biết còn dùng lệnh của cad để lấy thông số thì mình biết đấy

Nếu để cho ra số liệu như thế này thì mình có thể chỉ bạn

1   D38C  100023.916  100048.256  408.083
2   D39C  100015.260  100018.751  404.71
3   D40  100009.681  99944.329  404.107
4   TD39  100018.223  100028.851  405.569
5   P39  100015.810  100018.684  405.258
6   TC39  100014.469  100008.202  404.666
7   CM2  99991.609  99912.974  396.781
8   D41  100017.678  99885.973  403.613
9   C1  100013.456  99994.703  403.401
10   C2  100012.724  99984.930  403.87
11   C3  100012.064  99976.125  404.017
12   C4  100011.140  99963.795  404.726
13   TD40  100010.469  99954.841  404.483
14   P40  100010.261  99944.352  404.282
15   TC40  100011.101  99933.970  404.21
16   C5  100012.616  99922.912  402.441
17   C6  100012.904  99920.807  401.145
18   M2  99996.693  99910.444  397.696
19  BD  99988.463  99917.265  396.889
20  BD  99983.630  99916.795  394.893
21  BD  99989.025  99904.478  395.136
22  BD  99991.759  99904.482  396.432
23  BD  99994.836  99900.382  395.582
24  BD  99990.388  99895.323  394.696
25  BD  99997.475  99884.449  394.686
26  BD  100000.939  99887.231  396.115
27  BD  100007.081  99888.645  397.268
28  BD  99997.533  99897.290  396.549
29   MCD8  100001.901  99898.480  398.27
30   M1  99999.302  99905.120  397.554
31   M2  99999.302  99905.123  397.568
32   M1  99999.300  99905.126  397.567
33   D41C  100001.571  99907.248  398.682
34   D41C  100001.569  99907.251  398.831
35  BD  100003.600  99903.618  397.136
36  BD  100004.402  99902.485  398.246
37   C7  100013.451  99916.819  402.008
38   C8  100014.398  99909.908  400.16
39   C9  100015.119  99904.649  402.109
40   DV8  100016.046  99901.344  403.326
41   D42  99965.186  99870.680  414.083
42   TD41  100015.919  99898.809  403.278
43   P41  100013.325  99888.629  401.67
44   P41  100013.381  99888.653  400.943
45   TC41  100005.526  99882.446  396.357
46   C10  100011.243  99884.068  397.86
47  BD  99961.588  99874.372  416.564
48  BD  99959.777  99881.496  417.625
49  LS  99987.108  99891.038  394.09
50  BD  99958.810  99889.078  420.202
51  LS  99988.169  99884.631  394.216
52  BD  99957.116  99894.053  418.911
53  BD  99949.704  99894.847  425.903
54  BD  99955.332  99881.106  425.93
55  BD  99983.942  99881.738  394.344
56  BD|  99980.899  99888.999  394.44
57  BD  99978.611  99895.260  394.827
58  BD  99977.009  99905.935  394.388
59  BD  99974.134  99916.139  394.228
60  BD  99972.369  99913.104  395.347
61  BD  99976.004  99904.396  395.29
62  BD  99957.303  99869.818  423.864
63  BD  99977.570  99886.863  396.299
64  BD  99980.531  99879.414  396.033
65  BD  99955.086  99864.192  426.981
66  BD  99958.852  99859.220  423.103
67  BD  99973.008  99880.370  402.246
68  BD  99958.020  99849.449  425.524
69  BD  99958.513  99841.626  425.407
70  BD  99974.752  99871.968  403.144
71  BD  99977.247  99859.565  403.699
72  BD  99965.413  99837.726  418.657
73  BD  99978.795  99852.381  403.148
74   D45  99980.975  99783.026  413.407
75   CM3  99975.228  99792.819  414.962
76   TD42  99978.092  99874.441  399.189
77   C14  99983.762  99876.093  395.476
78   C13  99985.529  99876.607  394.79
79   P42  99969.941  99868.584  410.083
80  BD  100021.949  99898.846  405.884
81  BD  100027.642  99892.107  408.946
82  BD  100011.299  99874.495  396.193
83  BD  100012.404  99870.952  396.374
84  BD  100012.155  99863.843  394.757
85  BD  100010.867  99862.235  394.084
86  BD  100002.224  99875.724  394.348
87   C11  99998.426  99880.365  394.403
88   C12  99994.369  99879.183  394.098
89  LS  99995.958  99869.517  394.185
90  LS  99997.162  99863.686  393.9
91  LS  99998.715  99857.474  394.043
92  LS  100002.544  99850.511  393.787
93   TC42  99967.598  99857.288  413.467
94  BD  99986.332  99877.242  394.353
95  BD  99992.320  99863.499  393.91
96  BD  99992.792  99857.421  394.159
97   C15  99969.576  99846.310  413.584
98   C16  99971.150  99837.574  412.68
99   C17  99972.810  99828.357  413.778
100   CM4  99976.486  99771.265  417.225
101   D46  99972.618  99763.914  415.461
102   TC45  99977.913  99776.023  416.681
103   P45  99979.911  99783.055  414.31
104   TD45  99979.612  99790.595  412.955
105   C212.5  99978.285  99797.960  412.803
106   C21  99978.292  99797.919  412.804
107   C20  99976.434  99808.236  412.672
108   C19  99974.800  99817.307  412.628

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nếu dùng Lsp để lấy thông số của ACAD_PROXY_ENTITY thì mình không biết còn dùng lệnh của cad để lấy thông số thì mình biết đấy

Nếu để cho ra số liệu như thế này thì mình có thể chỉ bạn

1   D38C  100023.916  100048.256  408.083
2   D39C  100015.260  100018.751  404.71
3   D40  100009.681  99944.329  404.107
4   TD39  100018.223  100028.851  405.569
5   P39  100015.810  100018.684  405.258
6   TC39  100014.469  100008.202  404.666
7   CM2  99991.609  99912.974  396.781
8   D41  100017.678  99885.973  403.613
9   C1  100013.456  99994.703  403.401
10   C2  100012.724  99984.930  403.87
11   C3  100012.064  99976.125  404.017
12   C4  100011.140  99963.795  404.726
13   TD40  100010.469  99954.841  404.483
14   P40  100010.261  99944.352  404.282
15   TC40  100011.101  99933.970  404.21
16   C5  100012.616  99922.912  402.441
17   C6  100012.904  99920.807  401.145
18   M2  99996.693  99910.444  397.696
19  BD  99988.463  99917.265  396.889
20  BD  99983.630  99916.795  394.893
21  BD  99989.025  99904.478  395.136
22  BD  99991.759  99904.482  396.432
23  BD  99994.836  99900.382  395.582
24  BD  99990.388  99895.323  394.696
25  BD  99997.475  99884.449  394.686
26  BD  100000.939  99887.231  396.115
27  BD  100007.081  99888.645  397.268
28  BD  99997.533  99897.290  396.549
29   MCD8  100001.901  99898.480  398.27
30   M1  99999.302  99905.120  397.554
31   M2  99999.302  99905.123  397.568
32   M1  99999.300  99905.126  397.567
33   D41C  100001.571  99907.248  398.682
34   D41C  100001.569  99907.251  398.831
35  BD  100003.600  99903.618  397.136
36  BD  100004.402  99902.485  398.246
37   C7  100013.451  99916.819  402.008
38   C8  100014.398  99909.908  400.16
39   C9  100015.119  99904.649  402.109
40   DV8  100016.046  99901.344  403.326
41   D42  99965.186  99870.680  414.083
42   TD41  100015.919  99898.809  403.278
43   P41  100013.325  99888.629  401.67
44   P41  100013.381  99888.653  400.943
45   TC41  100005.526  99882.446  396.357
46   C10  100011.243  99884.068  397.86
47  BD  99961.588  99874.372  416.564
48  BD  99959.777  99881.496  417.625
49  LS  99987.108  99891.038  394.09
50  BD  99958.810  99889.078  420.202
51  LS  99988.169  99884.631  394.216
52  BD  99957.116  99894.053  418.911
53  BD  99949.704  99894.847  425.903
54  BD  99955.332  99881.106  425.93
55  BD  99983.942  99881.738  394.344
56  BD|  99980.899  99888.999  394.44
57  BD  99978.611  99895.260  394.827
58  BD  99977.009  99905.935  394.388
59  BD  99974.134  99916.139  394.228
60  BD  99972.369  99913.104  395.347
61  BD  99976.004  99904.396  395.29
62  BD  99957.303  99869.818  423.864
63  BD  99977.570  99886.863  396.299
64  BD  99980.531  99879.414  396.033
65  BD  99955.086  99864.192  426.981
66  BD  99958.852  99859.220  423.103
67  BD  99973.008  99880.370  402.246
68  BD  99958.020  99849.449  425.524
69  BD  99958.513  99841.626  425.407
70  BD  99974.752  99871.968  403.144
71  BD  99977.247  99859.565  403.699
72  BD  99965.413  99837.726  418.657
73  BD  99978.795  99852.381  403.148
74   D45  99980.975  99783.026  413.407
75   CM3  99975.228  99792.819  414.962
76   TD42  99978.092  99874.441  399.189
77   C14  99983.762  99876.093  395.476
78   C13  99985.529  99876.607  394.79
79   P42  99969.941  99868.584  410.083
80  BD  100021.949  99898.846  405.884
81  BD  100027.642  99892.107  408.946
82  BD  100011.299  99874.495  396.193
83  BD  100012.404  99870.952  396.374
84  BD  100012.155  99863.843  394.757
85  BD  100010.867  99862.235  394.084
86  BD  100002.224  99875.724  394.348
87   C11  99998.426  99880.365  394.403
88   C12  99994.369  99879.183  394.098
89  LS  99995.958  99869.517  394.185
90  LS  99997.162  99863.686  393.9
91  LS  99998.715  99857.474  394.043
92  LS  100002.544  99850.511  393.787
93   TC42  99967.598  99857.288  413.467
94  BD  99986.332  99877.242  394.353
95  BD  99992.320  99863.499  393.91
96  BD  99992.792  99857.421  394.159
97   C15  99969.576  99846.310  413.584
98   C16  99971.150  99837.574  412.68
99   C17  99972.810  99828.357  413.778
100   CM4  99976.486  99771.265  417.225
101   D46  99972.618  99763.914  415.461
102   TC45  99977.913  99776.023  416.681
103   P45  99979.911  99783.055  414.31
104   TD45  99979.612  99790.595  412.955
105   C212.5  99978.285  99797.960  412.803
106   C21  99978.292  99797.919  412.804
107   C20  99976.434  99808.236  412.672
108   C19  99974.800  99817.307  412.628

cái này là dùng lệnh của topo phải không?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn đọc thêm cái này nữa nhé :)

http://www.cadviet.c...77

bác có thể nói ngắn gọn lại quá trình làm được không tui đọc topic này chưa hiểu rõ lắm. ý bác là dùng autocad.net à? không phải lisp à?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

cái này là dùng lệnh của topo phải không?

 

Đúng rùi. mình chỉnh trên topo đưa cái ACAD_PROXY_ENTITY về block (khối thuộc tính) xong dùng lênh EATTEXT của cad để xuất ra số liệu.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Đúng rùi. mình chỉnh trên topo đưa cái ACAD_PROXY_ENTITY về block (khối thuộc tính) xong dùng lênh EATTEXT của cad để xuất ra số liệu.

bạn có sử dụng topo à? mình muốn gán mã diểm cho tên cọc bạn có cách nào nhanh không?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

bạn có sử dụng topo à? mình muốn gán mã diểm cho tên cọc bạn có cách nào nhanh không?

 

Mình chỉ biết chút xíu về nó thui. đang tìm hiểu mà. mình chủ yếu chạy trên nova ( cũng chỉ biết chạy tuyến và một số lệnh)

Gán mã điểm ở đây là như thế nào.

1) gán cho toàn bộ số điểm mia

2) gán cho điểm mia mà mình chọn

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

Mình chỉ biết chút xíu về nó thui. đang tìm hiểu mà. mình chủ yếu chạy trên nova ( cũng chỉ biết chạy tuyến và một số lệnh)

Gán mã điểm ở đây là như thế nào.

1) gán cho toàn bộ số điểm mia

2) gán cho điểm mia mà mình chọn

mình muốn phát sinh cọc nhưng tên cọc nhận mã điểm làm tên cọc. bac có cách không?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

mình muốn phát sinh cọc nhưng tên cọc nhận mã điểm làm tên cọc. bac có cách không?

 

Mình chưa hiểu ý của bạn lắm:

1) bổ sung thêm điểm mia (ví dụ khu địa hình này có chỗ bị lũng mình muốn thêm điểm mia)

2) chèn thêm cọc trên một tuyến đường.

Bạn có thể up cái hình or file nên mình ngó cái xem đầu đuôi nó thế nào.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

mình muốn phát sinh cọc nhưng tên cọc nhận mã điểm làm tên cọc. bac có cách không?

Hề hề hề,

Đây là lisp dùng để lấy danh sách tọa độ các điểm cùng với mã tên điểm như bạn yêu cầu, Tuy nhiên có vẻ như bạn không cần nữa. Dù sao thì cũng đã lỡ mần nên cứ gửi lên đây. Hy vọng sẽ có ích cho ai đó cần quan tâm tới nó.

Mình chả hiểu TOPO nó là cái giống oẳn tà roằn nào nên chả biết lisp này có xài được trên đó hay không.

Còn trên bản vẽ CAD như chủ thớt đã gửi thì nó chạy cũng coi được. Sau khi đã có cái danh sách này thì tùy theo yêu cầu mà các bác có thể xử lý thêm giấm thêm ớt cho nó vừa với cái khẩu vị của các bác vậy.

Hề hề hề,...


(defun c:gifpr ()
(vl-load-com)
(setq ss (ssget (list (cons 0 "acad_proxy_entity")))
         n (sslength ss)
         plst (list)
         i 0)
(while (< i n)
    (command "undo" "be")
    (setq en (entlast))
    (command "explode" (ssname ss i) "")
    (while (setq en (entnext en))
          (setq el (entget en))
          (if (= (cdr (assoc 0 el)) "CIRCLE")
              (setq p (cdr (assoc 10 el)))
          )
          (if (= (cdr (assoc 0 el)) "MTEXT")
              (progn 
                      (setq p1 (cdr (assoc 10 el)))
                      (if (equal (- (cadr p) (cadr p1)) 0.15 0.001)
                           (setq ma (cdr (assoc 1 el)))
                      )
               )
           )
       )
       (setq k (ACET-STR-FIND "\\l" ma))
       (setq ma (substr ma (+ k 2) ))
       (setq plst (append plst (list (list p ma)))
                     i (1+ i)
       )
       (command "undo" "e")
       (command "undo" 1)
)
plst
)

 

Vì là chả biết có ai còn quan tâm nữa nên mình cũng chả thèm khử biến nữa. Điều này nếu ai cần có thể tự xử lý được mà, Chỉ nhắc vậy để mọi người lưu ý.

Hề hề hề,..

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×