Đến nội dung


Hình ảnh
- - - - -

Lisp sửa pline


  • Please log in to reply
18 replies to this topic

#1 asu2006

asu2006

    biết vẽ line

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

Đã gửi 23 January 2013 - 11:51 AM

Nhờ mọi người giúp đỡ.
mình muốn có 1 lisp thay đổi bề rộng (width) của hàng loạt pline theo giá trị (tăng hoặc giảm) khi nhập vào
ví dụ: mình có 10 đường Pline trong đó có 5 đường màu đỏ có width = 20, 5 đường màu xanh có width bằng 30, giờ muốn giảm width cả 10 đường trên đi 10 đơn vị ( tức là đường màu đỏ có width = 10 và đường màu xanh có width = 20)
- Đánh lệnh -> chọn đối tượng -> nhập giá thị ( tăng lên hoặc giảm đi) -> enter
Chân thành cảm ơn!
  • 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 23 January 2013 - 12:01 PM

Nhờ mọi người giúp đỡ.
mình muốn có 1 lisp thay đổi bề rộng (width) của hàng loạt pline theo giá trị (tăng hoặc giảm) khi nhập vào
ví dụ: mình có 10 đường Pline trong đó có 5 đường màu đỏ có width = 20, 5 đường màu xanh có width bằng 30, giờ muốn giảm width cả 10 đường trên đi 10 đơn vị ( tức là đường màu đỏ có width = 10 và đường màu xanh có width = 20)
- Đánh lệnh -> chọn đối tượng -> nhập giá thị ( tăng lên hoặc giảm đi) -> enter
Chân thành cảm ơn!

Hề hề hề,
Hãy gửi bản vẽ lên. Pline có nhiều loại lắm. có pline từ đầu tới cuối chỉ có một chiều dày, có pline có chiều dày thay đổi theo từng đoạn .... Và nếu như vậy thì việc bạn chọn giá trị trừ không hợp lý sẽ lôi thôi đó.
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.

#3 asu2006

asu2006

    biết vẽ line

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

Đã gửi 23 January 2013 - 12:05 PM

Pline của mình từ đầu đến cuối chỉ cố một chiều dày thôi.
mong mọi người giúp đỡ.
  • 0

#4 asu2006

asu2006

    biết vẽ line

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

Đã gửi 23 January 2013 - 12:19 PM

file mình up lên.mọi người giúp với nha. mình rất cần
  • 0

#5 asu2006

asu2006

    biết vẽ line

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

Đã gửi 23 January 2013 - 12:20 PM

file mình up lên.mọi người giúp với nha. mình rất cần
http://www.cadviet.c...113162_file.dwg
  • 0

#6 Chiron

Chiron

    biết dimradius

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

Đã gửi 23 January 2013 - 12:56 PM

Cái này dùng qselect hoặc filter rồi properties nó là xong mà, chỉ vài thao tác là xong rồi.
  • 0

#7 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 23 January 2013 - 01:41 PM

Lisp của bạn đây. Lệnh kk nhé. Nếu tăng lên thì nhập số dương. Nếu giảm thì âm.
http://www.cadviet.c.../3/71162_kk.lsp
  • 0

#8 asu2006

asu2006

    biết vẽ line

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

Đã gửi 23 January 2013 - 01:52 PM

Lisp của bạn đây. Lệnh kk nhé. Nếu tăng lên thì nhập số dương. Nếu giảm thì âm.
http://www.cadviet.c.../3/71162_kk.lsp

cảm ơn nhé! tại hay phải làm bản vẽ và thay đổi với các tỉ lệ khác nhau nên mới cần làm nhanh
  • 0

#9 asu2006

asu2006

    biết vẽ line

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

Đã gửi 23 January 2013 - 02:03 PM

Cái này dùng qselect hoặc filter rồi properties nó là xong mà, chỉ vài thao tác là xong rồi.

với số đường lên đến hàng trăm, thuộc nhiều layer, màu sắc khác nhau, vẽ cho nhiều loại tỉ lệ lên làm thế rất lâu
  • 0

#10 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 January 2013 - 05:31 PM

với số đường lên đến hàng trăm, thuộc nhiều layer, màu sắc khác nhau, vẽ cho nhiều loại tỉ lệ lên làm thế rất lâu

Bạn thử chưa? Chưa chắc lisp nhanh hơn dùng lệnh CH đâu, cho dù có hàng triệu đường đi nữa.
  • 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 quansla

quansla

    biết lệnh xclip

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

Đã gửi 23 January 2013 - 07:12 PM

Bạn thử chưa? Chưa chắc lisp nhanh hơn dùng lệnh CH đâu, cho dù có hàng triệu đường đi nữa.

Lisp của bạn KangKung thì quả có lâu thật đấy, e với cả triệu đường thì lag tung máy mất. nếu không bạn asu2006có thể thử dùng code sau


(defun c:thu ( / ss i dt j )
;;;???? regen ban ve sau khi bi (redraw (ssname ss i) 3) bang cai j day
(or #h (setq #h 10))
(cond
((setq h (getreal(strcat "nhap tang/giam < " (rtos #h 2 2) ">"))) (setq #h h))
((setq h #h)))
(setq ss (ssget '(( 0 . "LWPOLYLINE"))) i 0 j 0)
;(while (< i (sslength ss))(redraw (ssname ss i) 4)(setq i (1+ i))) (setq i 0)
(while (< i (sslength ss))
(setq dt (entget(ssname ss i)))
(if(< (+ (cdr(assoc 43 dt)) h) 0)
(setq j (1+ j))
(entmod(subst (cons 43 (+ (cdr(assoc 43 dt)) h)) (assoc 43 dt) dt))
)
(progn (redraw (ssname ss i) 3)(setq i (1+ i)) )
)
(if (> j 0)
(alert (strcat "co " (rtos j 2 2) "doi tuong khong sua duoc"))
(princ "cac doi tuong da duoc sua"))
(princ)
)
Code của mình có một đoạn mình chưa sửa được, đó là các đối tượng bị Highlight sang 3 thì phải sửa thế nào, hi vọng có mem Cad khác giúp bạn
  • 0

#12 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 January 2013 - 10:03 PM

Có lẽ Quansla chưa hiểu ý tôi. Tôi không chê lisp hay dỡ, mà ý là: cái gì cad làm được thì đừng nên cậy đến lisp. Vậy thôi.
  • 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.


#13 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 24 January 2013 - 07:36 AM

Theo mình thì việc này cad không làm được.
Mình dịch yêu caầu thế này:
-Một đống pline hiện tại ấy có 1 đống độ dày.
-Sau khi chỉnh độ dày bằng độ dày cũ nhân với 1 hệ số chứ ko phải thành 1 độ dày thống nhất.
  • 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


#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 24 January 2013 - 08:36 AM

À, ra thế! Mà cộng chứ không phải nhân.
  • 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.


#15 Hoan1111

Hoan1111

    biết lệnh adcenter

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

Đã gửi 24 January 2013 - 09:40 AM

Theo Hoằn thì dùng lệnh MA quét chọn cũng tàm tạm được!
  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#16 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 24 January 2013 - 11:01 AM

Thử xem:
 
(defun c:ctw (/ dt gtct stt sdt)
(princ "Chon cac LWPOLYLINE can chinh width !")
(setq dt (ssget (list (cons 0 "LWPOLYLINE"))))
(setq gtct (getreal "\nGia tri thay doi: "))
(setq stt 0)
(setq sdt (sslength dt))
(while (< stt sdt)
(entmod (subst (cons 43 (+ (cdr (assoc 43 (entget (ssname dt stt)))) gtct)) (assoc 43 (entget (ssname dt stt))) (entget (ssname dt stt))))
(setq stt (+ stt 1))
)
(princ)
)

  • 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


#17 asu2006

asu2006

    biết vẽ line

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

Đã gửi 24 January 2013 - 05:24 PM

Bạn thử chưa? Chưa chắc lisp nhanh hơn dùng lệnh CH đâu, cho dù có hàng triệu đường đi nữa.

dùng lệnh CH thì chỉ dùng được cho từng đường có width bằng nhau thôi. ở đây mình muốn tất cả các đường cùng tăng lên theo một giá trị.lisp trên đã đáp ứng được nhu cầu của mình.
cảm ơn mọi người giúp đỡ!
  • 0

#18 hiepttr

hiepttr

    Edu level: li10

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

Đã gửi 24 January 2013 - 06:06 PM

Cho mình spam tí: Đã làm lisp để thay đổi chiều dày nét nhằm mục đích in nhiều tỉ lệ sao ko thay đổi theo kiểu nhân với 1 hệ số mà là cộng trừ nhỉ?! Phải chăng nhân thì khó hơn? Mình mù lisp nên có gì sai mấy bác cứ "choảng" thoải mái ! :)
  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#19 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 24 January 2013 - 06:29 PM

Cho mình spam tí: Đã làm lisp để thay đổi chiều dày nét nhằm mục đích in nhiều tỉ lệ sao ko thay đổi theo kiểu nhân với 1 hệ số mà là cộng trừ nhỉ?! Phải chăng nhân thì khó hơn? Mình mù lisp nên có gì sai mấy bác cứ "choảng" thoải mái ! :)

Cái "cộng" là y/c của chủ topic. Còn lisp thì cộng trừ nhân chia lũy thừa log liếc đều làm được.
@asu2006: mình nhầm, đã nói ở trên rồi.
  • 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.