Đến nội dung


Hình ảnh
- - - - -

Lấy số thứ tự của đối tượng trong tập chọn


  • Please log in to reply
11 replies to this topic

#1 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 02 December 2010 - 03:35 PM

Các bác cho e hỏi có cách nào để lấy được số thứ tự của đối tượng trong 1 tập chọn không ạ ?
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 02 December 2010 - 04:03 PM

Các bác cho e hỏi có cách nào để lấy được số thứ tự của đối tượng trong 1 tập chọn không ạ ?

Hề hề hề,
Ý bác là sao hè??? Số thứ tự này là số thứ tự đánh giá theo tiêu chí nào ạ????
Nếu là số thứ tự theo trình tự đốii tượng được thiết lập trong AutoCAD thì bác dựa vào mã DXF 5 được sắp xếp theo hệ thập lục phân (cơ số 16)> Diễn đàn cũng đã có lisp đổi một chuỗi số từ hệ thập lục phân ra hệ thập phân bác à. Cứ thằng to đứng sau thằng nhỏ đứng trước.
Nếu là số thừ tự theo trật tự lựa chọn thì hơi chua nếu bác sử dụng các phương pháp chọn tổng hợp.
Nếu là trật tự đối tượng theo vị trí đối tượng thì bác phải cho quy luật sắp xếp.
.............................................................
Hề hề hề, quả là có hơi rối rắm bác hỉ???
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 phamngoctukts

phamngoctukts

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1107 Bài viết
Điểm đánh giá: 696 (tốt)

Đã gửi 02 December 2010 - 04:10 PM

Hề hề hề,
Ý bác là sao hè??? Số thứ tự này là số thứ tự đánh giá theo tiêu chí nào ạ????
Nếu là số thứ tự theo trình tự đốii tượng được thiết lập trong AutoCAD thì bác dựa vào mã DXF 5 được sắp xếp theo hệ thập lục phân (cơ số 16)> Diễn đàn cũng đã có lisp đổi một chuỗi số từ hệ thập lục phân ra hệ thập phân bác à. Cứ thằng to đứng sau thằng nhỏ đứng trước.
Nếu là số thừ tự theo trật tự lựa chọn thì hơi chua nếu bác sử dụng các phương pháp chọn tổng hợp.
Nếu là trật tự đối tượng theo vị trí đối tượng thì bác phải cho quy luật sắp xếp.
.............................................................
Hề hề hề, quả là có hơi rối rắm bác hỉ???

Bác bình!
Theo em nghĩ thì bạn ý muốn lấy phần tử trong tập chọn thôi giống như (ssname ss i) nhưng mà trong VBA. Bạn ketxu này bỏ anh bạn lisp rồi bác ạ.
@ketxu!
Còn nếu dùng visualisp thì bạn có thể dùng như sau:
(setq ss (acet-ss-to-list ss)
name (car (entsel))
stt (vl-position name ss)
)
  • 1
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#4 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 02 December 2010 - 04:24 PM

Bác bình!
Theo em nghĩ thì bạn ý muốn lấy phần tử trong tập chọn thôi giống như (ssname ss i) nhưng mà trong VBA. Bạn ketxu này bỏ anh bạn lisp rồi bác ạ.
@ketxu!
Còn nếu dùng visualisp thì bạn có thể dùng như sau:
(setq ss (acet-ss-to-list ss)
name (car (entsel))
stt (vl-position name ss)
)

Hề hề hề,
Sorry , sorry, so so ry.
Mắt mũi kèm nhèm, lộn vô chuồng VBA mà chả biết, tí nữa thì uýnh nhau to các bác hỉ???
Thôi thì các bác thông cảm cho xin hai chữ đại xá hỉ????
Thôi mình phắn đây. Hề hề hề.....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 02 December 2010 - 04:36 PM

Hì hì ^^ Tks 2 bác.E vẫn âm thầm mót lisp đấy chứ,n mà phải chiến với VBA nhiều hơn vì các phần mềm CTy e đều dùng VB kết hợp VBA,chẳng lẽ mình dùng mà lại k biết thì buồn quá ^^
Ý đồ của e đúng là như trên đấy ạ.Chẳng là e có 1 tập chọn các L,PL.E định thực hiện vòng lặp để lấy chiều dài đối tượng rồi kẻ bảng bên dưới.Số vòng lặp cần để kẻ bảng thì e cũng có rồi.Vấn đề bây giờ là làm sao e biết ng ta chọn cái j trước,cái j sau để mà còn ghi vào bảng :cheers:.K biết việc này có thực hiện được với chế độ Selecttion On Screen k nữa :leluoi:
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#6 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 02 December 2010 - 04:41 PM

Có những việc với LSP thật đơn giản,vòn với VBA thì là cả vấn đề,và ngược lại :cheers:(
Sao k có bác nào viết code VBA để mỗi lần cad khởi động thì tạo 1 file đuôi lsp với nội dung LISP ở thư mục dwg,rồi âm thầm load nó nhỉ.Khi nào close phiên làm việc thì lại lặng lẽ xóa nó đi.Thế có phải là kết hợp đc cả 2không :leluoi:
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#7 phantuhuong

phantuhuong

    biết dimstyle

  • Moderator
  • PipPipPipPipPip
  • 383 Bài viết
Điểm đánh giá: 200 (khá)

Đã gửi 02 December 2010 - 11:35 PM

Tôi cũng chưa biết cách xách định thứ tự hiển thị đối tượng trong Selection Set?

http://www.cadviet.c...?showtopic=4810
  • 0
Bồi dưỡng Excel & VBA cho các đơn vị ở Hà Nội và khu vực lân cận

Từng bước loại đồ Tàu ra khỏi cuộc sống!


#8 redsea_tq

redsea_tq

    biết lệnh erase

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

Đã gửi 25 January 2011 - 12:19 AM

Hì hì ^^ Tks 2 bác.E vẫn âm thầm mót lisp đấy chứ,n mà phải chiến với VBA nhiều hơn vì các phần mềm CTy e đều dùng VB kết hợp VBA,chẳng lẽ mình dùng mà lại k biết thì buồn quá ^^
Ý đồ của e đúng là như trên đấy ạ.Chẳng là e có 1 tập chọn các L,PL.E định thực hiện vòng lặp để lấy chiều dài đối tượng rồi kẻ bảng bên dưới.Số vòng lặp cần để kẻ bảng thì e cũng có rồi.Vấn đề bây giờ là làm sao e biết ng ta chọn cái j trước,cái j sau để mà còn ghi vào bảng :).K biết việc này có thực hiện được với chế độ Selecttion On Screen k nữa :)

Nếu mình hiểu không nhầm thì bạn có thể kiểm tra tên của đối tượng trong tập chọn!
  • 0

#9 dangtosy

dangtosy

    biết pan

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

Đã gửi 18 April 2013 - 01:17 PM

Mình thiết kế 1 popup_list, danh sách thả xuống được định nghĩa: (setq Type (list "Line Curve" "Polyline Curve" "Spline Curve")). Mình muốn khi chọn các "Line Curve", "Polyline Curve" hay "Spline Curve" thì thực hiện các công việc tương ứng với nó. Có ai giúp mình không?


  • 0

#10 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 18 April 2013 - 01:31 PM

Thế này:

(cond

 ((= key "0") (FUNC1))

 ((= key "1") (FUNC2))

 ((= key "2") (FUNC3)))


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#11 dangtosy

dangtosy

    biết pan

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

Đã gửi 23 April 2013 - 02:56 PM

Thanks bạn Doan Van Ha! Mình cần phải hiểu rõ về cách truy xuất Popup_list

 

Mình làm thế này không biết được chưa?

 

(setq Type (list "Lines Curve" "Polyline Curve" "Spline Curve" "Arcs Curve"))
(start_list "curve_type" 3)
(mapcar 'add_list Type)
(end_list)

 (setq sStr (get_tile "curve_type"))
 (if (= sStr "")
  (setq list_Item nil)
  (setq list_Item (nth (atoi sStr) Type))
 )

(if (= list_Item (nth 0 Type))
   (command "line")
   (if (= list_Item (nth 1 Type))
    (command "Pline")
    (if (= list_Item (nth 2 Type))
     (command "Spline")
    )
  )
)

  • 0

#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 23 April 2013 - 04:24 PM

Thanks bạn Doan Van Ha! Mình cần phải hiểu rõ về cách truy xuất Popup_list

 

Mình làm thế này không biết được chưa?

 

(setq Type (list "Lines Curve" "Polyline Curve" "Spline Curve" "Arcs Curve"))
(start_list "curve_type" 3)
(mapcar 'add_list Type)
(end_list)

 (setq sStr (get_tile "curve_type"))
 (if (= sStr "")
  (setq list_Item nil)
  (setq list_Item (nth (atoi sStr) Type))
 )

(if (= list_Item (nth 0 Type))
   (command "line")
   (if (= list_Item (nth 1 Type))
    (command "Pline")
    (if (= list_Item (nth 2 Type))
     (command "Spline")
    )
  )
)

 

Bạn post bài trong chuyên mục khác nhé. Đây là mục VBA


  • 0