Đến nội dung


Hình ảnh
- - - - -

[Hỏi] lisp sắp xếp các text thành 1 nhóm


  • Please log in to reply
6 replies to this topic

#1 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 26 April 2014 - 10:01 AM

Tôi đang viết lisp để phục vụ cho công việc của mình đang vướng mắc nhờ mọi người giúp đỡ

nội dụng như sau:

Muốn sắp xếp các text canh lề giữa có toạ độ y bằng nhau thành 1 nhóm.

file đính kèm

http://www.cadviet.c...3/66960_thu.dwg

 

 


  • 0

#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 26 April 2014 - 11:35 AM

Tôi đang viết lisp để phục vụ cho công việc của mình đang vướng mắc nhờ mọi người giúp đỡ

nội dụng như sau:

Muốn sắp xếp các text canh lề giữa có toạ độ y bằng nhau thành 1 nhóm.

file đính kèm

http://www.cadviet.c...3/66960_thu.dwg

Hề hề hề,

Bác đang vướng chỗ nào?? Vướng sợi tóc hay vướng cọng thun, bác phải nói rõ thì mới giúp bác được chứ.

Sắp xếp thành nhóm nghĩa là sắp xếp thế nào??? Nhét chúng vào một rọ nhưng vẫn giữ nguyên vị trí và các thuộc tính của chúng??? Hay là nhặt chúng ra và nhét nó vào một vị trí nào đó trên bản vẽ??? Hay là gán cho mỗi nhóm một màu nào đó để nhận biết??? Hay là đem chúng bỏ vô trại mồ côi???

Túm lại là vấn đề bác đặt ra rõ ràng là chưa rõ ràng gì cả. Thật là khó cho kẻ muốn giúp lắm lắm.....

Mong bác bớt chút thời gian chỉnh lý lại cái yêu cầu cho nó rõ ràng là rõ ràng hơn nữa nhé.....


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 26 April 2014 - 01:27 PM

Cám ơn Bác đã quan tâm giúp đỡ 

ý muốn của em là thế này

sau khi sử dụng hàm ssget rồi ta được 1 tập hợp text là ss

bây giờ muốn tách chúng ra để sử dụng cho các mục đích khác nhau

ví dụ

1. tập độ dóc để điền vào độ dóc trên bình đồ

2. tập khoảng cách 

........

10. Lý trình

không biết nói như rứa Bác có thể hiểu và giúp được chưa????

mong tin Bác


  • 0

#4 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 26 April 2014 - 04:48 PM

Bạn dùng cái này, kết quả ra 1 list chứa tên theo từng nhóm thứ tự từ trên xuống, trong mỗi nhóm thì theo thứ tự từ trái qua.

(defun nhap(ss cao / L L1)
  (setq L (vl-sort (acet-ss-to-list ss) '(lambda(x y) (> (cadr (dxf 11 x)) (cadr (dxf 11 y))))))
  (while L
    (setq L1 (append L1 (list 
   (vl-sort (vl-remove-if '(lambda(x) (not (equal (cadr (dxf 11 (car L))) (cadr (dxf 11 x)) cao))) L)
      '(lambda(x y) (< (car (dxf 11 x)) (car (dxf 11 y)))))))
 L (vl-remove-if '(lambda(x) (equal (cadr (dxf 11 (car L))) (cadr (dxf 11 x)) cao)) L)))
  L1
)
 
(defun dxf(id v) (cdr (assoc id (entget v))))
 
(defun c:test(/ ss)
  (nhap (setq ss (ssget '((0 . "TEXT")))) (* 0.5 (dxf 40 (ssname ss 0)))))
 
  


  • 1

#5 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 26 April 2014 - 09:58 PM

Cám ơn Bác nhiều 
cái này quá đúng ý em rồi

tiện thể cho em hỏi tí nữa có cách nào nhanh để lấy 1 nhóm nào đó ra không chứ em dùng mấy hàm (car, cdr ....) lấy ra quá lâu 


  • 0

#6 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 27 April 2014 - 05:03 PM

Dùng hàm nth.
  • 1

#7 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 28 April 2014 - 08:52 AM

ok thế mà lâu nay không biết


  • 0