Đến nội dung


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

Chon đối tượng theo dang đường linetype !


  • Please log in to reply
18 replies to this topic

#1 laivanyen

laivanyen

    biết vẽ line

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

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

Các Bác Pro viết giúp em cái list mà ta có thể chọn các đối tượng theo dang linetype, ví dụ như: hidden, center, conti, continouns...
Em xin chân thành cảm ơn a. !
  • 0

#2 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 13 December 2010 - 02:34 PM

Các Bác Pro viết giúp em cái list mà ta có thể chọn các đối tượng theo dang linetype, ví dụ như: hidden, center, conti, continouns...
Em xin chân thành cảm ơn a. !

*Hai đối tượng có hình dáng giống hệt nhau thì vẩn có 2 trường hợp xảy ra:
-1 đối tượng có kiểu đường là bylayer và layer đó có kiểu đường là (chấm gạch chẳng hạn).
-1 đối tượng có kiểu đường là chấm gạch và không phải bylayer.
*Bạn yêu cầu viết kiểu gì Cứ hình dáng giống nhau thì chọn tất không kể bylayer hay ko hay là chỉ chọn đối tượng cùng kiểu đường và ko byleyer?.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3 laivanyen

laivanyen

    biết vẽ line

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

Đã gửi 13 December 2010 - 02:39 PM

*Hai đối tượng có hình dáng giống hệt nhau thì vẩn có 2 trường hợp xảy ra:
-1 đối tượng có kiểu đường là bylayer và layer đó có kiểu đường là (chấm gạch chẳng hạn).
-1 đối tượng có kiểu đường là chấm gạch và không phải bylayer.
*Bạn yêu cầu viết kiểu gì Cứ hình dáng giống nhau thì chọn tất không kể bylayer hay ko hay là chỉ chọn đối tượng cùng kiểu đường và ko byleyer?.


Yêu cầu của em là: Chọn các line hoặc pline có chung đặc điểm linetype thôi ạ !
  • 0

#4 npham

npham

    biết lệnh rotate

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

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

Yêu cầu của em là: Chọn các line hoặc pline có chung đặc điểm linetype thôi ạ !



ủa? hồi nãy mình trả lời rồi mà bài đâu mất vậy ta???

mã DXF linetype là 6. nằm trong LAYER của đối tượng. Do đó bạn phải đọc layer rồi đọc lilntype. Nếu có cùng LT thì cho nó OK.
  • 0

#5 laivanyen

laivanyen

    biết vẽ line

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

Đã gửi 13 December 2010 - 06:15 PM

ủa? hồi nãy mình trả lời rồi mà bài đâu mất vậy ta???

mã DXF linetype là 6. nằm trong LAYER của đối tượng. Do đó bạn phải đọc layer rồi đọc lilntype. Nếu có cùng LT thì cho nó OK.

Bác giúp em với . Bác nói thế em không làm được ! bác viết cho em 1 lisp cụ thể được không ạ !
  • 0

#6 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 13 December 2010 - 06:36 PM

Yêu cầu của em là: Chọn các line hoặc pline có chung đặc điểm linetype thôi ạ !

Hề hề hề,
Không biết cái này bạn có xài được không hỉ???

(defun c:slblt ()
(setq ss (ssget (list (cons 0 "*LINE,CIRCLE,ELLIPSE")))
i 0
n (sslength ss)
sslt (ssadd)
lt (getstring t "\n Nhap ten linetype can chon: ")
)
(while (< i n)
(setq en (ssname ss i)
els (entget en)
la (cdr (assoc 8 els))
)
(if (/= (cdr (assoc 6 els)) nil)
(if (= (cdr (assoc 6 els)) lt)
(setq sslt (ssadd en sslt))
)
(if (= (cdr (assoc 6 (tblsearch "layer" la))) lt)
(setq sslt (ssadd en sslt))
)
)
(setq i (1+ i))
)
sslt
(sssetfirst nil sslt)
(princ)
)

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

#7 laivanyen

laivanyen

    biết vẽ line

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

Đã gửi 13 December 2010 - 07:06 PM

Hề hề hề,
Không biết cái này bạn có xài được không hỉ???


(defun c:slblt ()
(setq ss (ssget (list (cons 0 "*LINE,CIRCLE,ELLIPSE")))
i 0
n (sslength ss)
sslt (ssadd)
lt (getstring t "\n Nhap ten linetype can chon: ")
)
(while (< i n)
(setq en (ssname ss i)
els (entget en)
la (cdr (assoc 8 els))
)
(if (/= (cdr (assoc 6 els)) nil)
(if (= (cdr (assoc 6 els)) lt)
(setq sslt (ssadd en sslt))
)
(if (= (cdr (assoc 6 (tblsearch "layer" la))) lt)
(setq sslt (ssadd en sslt))
)
)
(setq i (1+ i))
)
sslt
(sssetfirst nil sslt)
(princ)
)

Chúc bạn vui.


Không phải rùi Bác ơi ! ý em là chọn đường hidden, center..(theo linetype ạ !) mà không phân biệt LINE,CIRCLE,ELLIPSE

Bài viết đã được chỉnh sửa nội dung bởi phamthanhbinh: 15 December 2010 - 03:05 PM
Bổ sung hàm sssetfirst

  • 0

#8 npham

npham

    biết lệnh rotate

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

Đã gửi 13 December 2010 - 08:28 PM

Không phải rùi Bác ơi ! ý em là chọn đường hidden, center..(theo linetype ạ !) mà không phân biệt LINE,CIRCLE,ELLIPSE

Không biết thế này đúng ý của bác chưa? bạn dùng select p để xem lại chọn lựa nhé. Cái này chỉ chọn với *LINE, nếu muốn chọn đối tượng khác thì bạn thêm vào nhé.

(defun c:llt (/ ss linetype i )  
(setq linetype (cdr (assoc 6 (tblsearch "LAYER" (cdr (assoc 8 (entget (car (entsel)))))))))
(setq ss (ssget "x" (list (cons 0 "*LINE"))))
(setq i 0)
(while
(setq ename (ssname ss i))
(if (/=
(cdr (assoc 6 (tblsearch "LAYER" (cdr (assoc 8 (entget ename))))))
linetype
)
(progn
(setq ss (ssdel ename ss))
(setq i (1- i))
)
)
(setq i (1+ i))
)
(command "select" ss "")
)

  • 0

#9 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 13 December 2010 - 10:16 PM

Không phải rùi Bác ơi ! ý em là chọn đường hidden, center..(theo linetype ạ !) mà không phân biệt LINE,CIRCLE,ELLIPSE

Hề hề hề,
Chưa hiểu ý bạn lắm. Phải chăng trên bản vẽ của bạn có nhiều linetype được sử dụng cho các đường hidden và center?????
Hay là bạn muốn chọn các đối tượng được vẽ bởi các đường hidden và center ???? Có nhẽ bạn nên post một cái bản vẽ của bạn lên và nói rõ bạn muốn gì chứ mình thấy khó hiểu quá.....
Phiền bạn chút xíu ha.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#10 duy782006

duy782006

    PHẠM QUỐC DUY

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

Đã gửi 14 December 2010 - 07:28 AM

*Hai đối tượng có hình dáng giống hệt nhau thì vẩn có 2 trường hợp xảy ra:
-1 đối tượng có kiểu đường là bylayer và layer đó có kiểu đường là (chấm gạch chẳng hạn).
-1 đối tượng có kiểu đường là chấm gạch và không phải bylayer.
*Bạn yêu cầu viết kiểu gì Cứ hình dáng giống nhau thì chọn tất không kể bylayer hay ko hay là chỉ chọn đối tượng cùng kiểu đường và ko byleyer?.

Câu này mình đã đưa ra dữ liệu cụ thể để bạn đặt lại câu hỏi cho đúng nhưng bạn vẩn hỏi kiểu trớt wớt => chán ko muốn tham gia.
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#11 laivanyen

laivanyen

    biết vẽ line

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

Đã gửi 14 December 2010 - 09:29 AM

Hề hề hề,
Chưa hiểu ý bạn lắm. Phải chăng trên bản vẽ của bạn có nhiều linetype được sử dụng cho các đường hidden và center?????
Hay là bạn muốn chọn các đối tượng được vẽ bởi các đường hidden và center ???? Có nhẽ bạn nên post một cái bản vẽ của bạn lên và nói rõ bạn muốn gì chứ mình thấy khó hiểu quá.....
Phiền bạn chút xíu ha.


Vâng đúng rồi ạ, ý em là muốn chọn các đối tượng được vẽ bởi các đường hidden và center. Bản vẽ đây ạ !
http://www.cadviet.c...files/3/2_1.dwg
  • 0

#12 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 14 December 2010 - 10:16 AM

Vâng đúng rồi ạ, ý em là muốn chọn các đối tượng được vẽ bởi các đường hidden và center. Bản vẽ đây ạ !
http://www.cadviet.c...files/3/2_1.dwg

Hề hề hề,
Phải chăng bạn muốn chọn tất cả các cọc trên bản vẽ mặt bằng????
Nếu đúng vậy thì vấn đề bạn đặt ra thật là ......... VẼ HƯƠU....
Các cọc này được bạn đưa vào bản vẽ ở dạng block. Mà các block này có tên là coc. Vậy thì bạn có thể dùng filter hay quick select mà chọn nó chứ cần gì phải lisp liếc cho nó...... dở hơi ..... hả bạn.
Cái lisp mình viết chỉ để chọn các đối tượng đơn mà bạn vẽ bởi cái linetype mà bạn sẽ phải nhập tên khi lisp hỏi mà thôi. Đúng là với cái block này của bạn thì nó chịu không thể nhận ra được rồi.
Bạn hãy xem lại vấn đề của bạn nhé...
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#13 laivanyen

laivanyen

    biết vẽ line

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

Đã gửi 14 December 2010 - 10:34 AM

Hề hề hề,
Phải chăng bạn muốn chọn tất cả các cọc trên bản vẽ mặt bằng????
Nếu đúng vậy thì vấn đề bạn đặt ra thật là ......... VẼ HƯƠU....
Các cọc này được bạn đưa vào bản vẽ ở dạng block. Mà các block này có tên là coc. Vậy thì bạn có thể dùng filter hay quick select mà chọn nó chứ cần gì phải lisp liếc cho nó...... dở hơi ..... hả bạn.
Cái lisp mình viết chỉ để chọn các đối tượng đơn mà bạn vẽ bởi cái linetype mà bạn sẽ phải nhập tên khi lisp hỏi mà thôi. Đúng là với cái block này của bạn thì nó chịu không thể nhận ra được rồi.
Bạn hãy xem lại vấn đề của bạn nhé...


Vâng thì em chỉ muốn chọn đối tượng đơn thôi. Em sử dụng lisp của bác rồi nhưng không được. Bác check lại giúp em với a!
  • 0

#14 npham

npham

    biết lệnh rotate

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

Đã gửi 14 December 2010 - 11:18 AM

Vâng thì em chỉ muốn chọn đối tượng đơn thôi. Em sử dụng lisp của bác rồi nhưng không được. Bác check lại giúp em với a!


Đoạn code mình post ở trên cũng không đúng ý bác hả? hic. Ý bác thế nào nhỉ?
  • 0

#15 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 14 December 2010 - 11:29 AM

Các Bác Pro viết giúp em cái list mà ta có thể chọn các đối tượng theo dang linetype, ví dụ như: hidden, center, conti, continouns...
Em xin chân thành cảm ơn a. !

LISP này viết lâu rồi, không biết có đáp ứng đuợc yêu cầu của laivanyen không ?

Lisp chọn các đối tượng theo màu hay linetype
Viết lisp theo yêu cầu [phần 2]

  • 0

#16 laivanyen

laivanyen

    biết vẽ line

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

Đã gửi 14 December 2010 - 11:41 AM

LISP này viết lâu rồi, không biết có đáp ứng đuợc yêu cầu của laivanyen không ?

Lisp chọn các đối tượng theo màu hay linetype
Viết lisp theo yêu cầu [phần 2]


Hic bác ơi hình như link bị hỏng roài nó thông báo lỗi ạ ! bác làm ơn load lại giúp em với !
  • 0

#17 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 14 December 2010 - 12:07 PM

Hic bác ơi hình như link bị hỏng roài nó thông báo lỗi ạ ! bác làm ơn load lại giúp em với !

Lâu ngày không có ai down nên chắc bị xóa trên server.
Lisp chọn các đối tượng theo màu hay linetype

link : http://www.megashare...p?id=BA4E415F12
  • 1

#18 laivanyen

laivanyen

    biết vẽ line

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

Đã gửi 14 December 2010 - 01:34 PM

Lâu ngày không có ai down nên chắc bị xóa trên server.
Lisp chọn các đối tượng theo màu hay linetype

link : http://www.megashare...p?id=BA4E415F12

Hi hi cảm ơn Bác nhé ! em trình bày kém thế mà Bác vẫn hiểu ! chứng tỏ Bác là người thông minh nhất !
  • 0

#19 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 15 December 2010 - 03:29 PM

Hi hi cảm ơn Bác nhé ! em trình bày kém thế mà Bác vẫn hiểu ! chứng tỏ Bác là người thông minh nhất !

Chào bạn laivanyen,
Vậy là đã rõ, cái lisp đầu tiên mình gửi bạn hoàn toàn đúng với yêu cầu của bạn. Chỉ khác với bác Giabach về cách làm mà thôi. Cái khác như sau:
1/- Bác Giabach có highlight đối tuong chọn để bạn nhòm thấy, còn mình thì không
2/- Bác giabach chọn tên linetype bằng cách chọn đối tượng mẫu, còn mình bắt bạn phải tự nhập, điều này hình như hơi khó khăn với bạn thì phải. Thực ra đúng là cách của bác Giabach sẽ thuận tiện hơn cho người dùng. Do mình còn thiếu kinh nghiệm nên nghĩ rằng bạn đã biết tương đối về lisp nên việc nhập cái tên đó chả khó khăn gì.
3/- Bây giờ bạn có thể thử lại cái lisp đó với bản vẽ bạn đã post sẽ rõ hơn. Mình đã bổ sung hàm sssetfirst để highlight đối tượng cho bạn thấy rõ. Cách thử như sau:
-load lisp và gõ lệnh ssblt
-khi lisp yêu cầu chọn đối tượng, bạn quét toàn bộ vùng chọn chứa các đối tượng bạn muốn tìm (dùng cửa sổ chẳng hạn). nhấn Enter.
- Khi lisp yêu cầu nhập tên linetype, bạn nhập center (hoặc dash2) là tên hai loại linetype mà bạn đã đánh dấu. (Vì sao có tên này thì bạn tìm hiểu một chút về lisp sẽ hiểu. Mình lấy nó từ hàm (entget (car (entsel))) trước khi chạy lisp). Sau đó bạn nhấn Enter.
Lisp sẽ trả cho bạn bộ chọn được higlight giống hệt như lisp của bác Giabach.
4/- Ấy là nói về cái cũ, còn mình cũng sẽ dựa vào cái lisp của bác Giabach để cải tiến lại cái lisp cũ này cho thuận tiện hơn với người dùng.
Chúc bạn vui.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.