Đến nội dung


Hình ảnh
- - - - -

[Yeu cau] Lsp chuyển tên layer các đối tượng


  • Please log in to reply
13 replies to this topic

#1 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 03 November 2012 - 09:25 AM

minh có 1 file bản đồ gốc có các layer mặc định như sau: 10, 22, 57, 14, 18, .... Giờ minh mun đổi nó thành:
10-> a1-10
22-> a1-22
57-> a1-57
minh mún tạo 1 lsp khi quet tất cả đối tượng thì lsp sẽ lọc ra những layer có trong danh sách của lsp và đối tên layer đó như vd trên, các layer còn lại ko có trong danh sách thì giữ nguyên, để tiệ cho việc quản lý khi mình biên tập bản đồ trích đo. Mong đc sự giúp đở của các lsper, mình cám ơn nhiều

  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#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 03 November 2012 - 03:28 PM

minh có 1 file bản đồ gốc có các layer mặc định như sau: 10, 22, 57, 14, 18, .... Giờ minh mun đổi nó thành:
10-> a1-10
22-> a1-22
57-> a1-57
minh mún tạo 1 lsp khi quet tất cả đối tượng thì lsp sẽ lọc ra những layer có trong danh sách của lsp và đối tên layer đó như vd trên, các layer còn lại ko có trong danh sách thì giữ nguyên, để tiệ cho việc quản lý khi mình biên tập bản đồ trích đo. Mong đc sự giúp đở của các lsper, mình cám ơn nhiều

Đổi tên layer cho nó nhanh. Gỏ lệnh dtlay là nó đổi tên layer
10-> a1-10
22-> a1-22
57-> a1-57
Không cần chọn chi ráo.

(defun renamelayer (tencu tenmoi)
(command ".-rename" "la" tencu tenmoi)
)
(defun c:dtlay ()
(mapcar 'renamelayer
(list "10" "22" "57")
(list "a1-10" "a1-22" "a1-57")
)
(princ))

  • 3

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 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 03 November 2012 - 04:01 PM

em cám ơn anh duy đã giúp em, lsp chạy rất tốt, mà mình mún thêm màu , ltype, ltscale cho từng layer đó sữa code lsp lại phức tạp ko anh, lúc em post bài wên nêu vụ này hihi
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#4 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 03 November 2012 - 04:08 PM

-Thêm cho đối tượng hay thêm cho layer?
-Yêu cầu đủ vào mình ko viết được thì còn người khác!
-Nếu gọi tên mình thì viết cái chử dê to lên tí! Ví dụ Duy
  • 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


#5 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 03 November 2012 - 04:12 PM

Spam tí: bác ấy thích dê phải hoành tráng chứ không dê cỏn con mà bạn nhoclangbat này ngộ ghê! :lol:
Đùa thôi, chứ tên riêng thì phải viết Hoa để trân trọng và đúng chính tả.
  • 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.


#6 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 03 November 2012 - 04:15 PM

:P
  • 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


#7 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 03 November 2012 - 04:26 PM

oh em sorry Anh Duy ý cụ thể của em là layer 10 thì chỉ cần đổi tên là xong,còn layer 22 và 57 thì đổi cả tên , màu , linetype, ltscale lun. Em đang học bên lớp anh ketxu nhưng cũng mới bắt đầu ko rành mún viết nhưng viết ko nỗi hihi. Nãy giờ em cũng mày mò rùi lụm mót viết cái lsp này mà thấy nó còn nhiều bất cập, cái layer 57 em đổi tên nó đc rùi mà mún đổi lun ltype và ltscale em kết hợp lệnh change nhưng em lại phải lọc nó ra trước kéo nó ra ngoài rùi mới chạy lsp nếu ko khi chạy đến lúc nó kêu chọn đối tượng thì phải chọn lẻ tẻ từng cái tại cái layer 57 nó nằm tứ tung , em post lên thử mấy anh đừng chê em gà hihi

(defun c:kkk ()
(command "-layer" "rename" "10" "a1-10" "")
(command "layer" "rename" "57" "a1-57" "color" "172" "a1-57" "")
(prompt "_.change ")
(princ "\n Change ltype - dashed")
(setq sset (ssget))
(if (null sset)
(progn
(princ "\nERROR: Nothing selected.")
(exit)
)
)
(command "_.change" sset "" "P" "ltype" "dashed" "ltscale" "3.0" "")
(princ)
(command "-layer" "rename" "22" "a1-22" "color" "22" "a1-22" "")
); het

  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#8 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 03 November 2012 - 04:49 PM

Nếu đang học lớp của Két thì bạn nên đi từ từ theo giáo trình cho nó cơ bản. Sửa ví dụ color để bạn xem. và tự sửa nhé.
a1-10 color = 20
a1-22 color = 30
a1-57 cplor = 40

(defun renamelayer (tencu tenmoi maumoi)
(command ".-rename" "la" tencu tenmoi)
(command ".-layer" "s" tenmoi "co" maumoi "" "")
)
(defun c:dtlay ()
(mapcar 'renamelayer
(list "10" "22" "57")
(list "a1-10" "a1-22" "a1-57")
(list "20" "30" "40")
)
(princ))

  • 1

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


#9 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 03 November 2012 - 05:29 PM

cám ơn anh Duy, em cũng học từ từ thui em cũng chậm hiểu lắm hihi, tại em đang làm mấy lô lập bản đồ trích đo nên thử mày mò xem có thề làm nhanh hơn cách truyền thống em hay làm ko í mà :D
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#10 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 05 November 2012 - 07:15 PM

Anh Duy ơi có xíu vấn đề: ví dụ trong tờ bản bản đồ của em ko có 1 trong 3 layer đó, tại tùy tờ bản đồ có tờ có tờ ko, khi chạy lsp nó chạy theo thứ tự đến layer cũ ko có nó báo ko có layer cũ đòi nhập layer cũ, em esc thoát lệnh thì những layer có cũng ko đc chuyển lun, có cách nào giống như là lsp nó tìm nếu có cái nào thì nó thực thi cái đó, cái nào nó ko có nó bỏ qua ko bị báo như vậy nửa ko anh.
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#11 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 06 November 2012 - 07:25 AM

:angry2:
 
(defun renamelayer (tencu tenmoi maumoi)
(cond
((/= (tblsearch "layer" tencu) nil)
(command ".-rename" "la" tencu tenmoi)
(command ".-layer" "s" tenmoi "co" maumoi "" "")
))
)
(defun c:dtlay ()
(mapcar 'renamelayer
(list "10" "22" "57")
(list "a1-10" "a1-22" "a1-57")
(list "20" "30" "40")
)
(princ))

  • 1

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


#12 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 06 November 2012 - 07:39 AM

anh Duy nhăn mặt ghê thế chắc tại em tham lam wá hả anh :D, em cám ơn Duy nhiều lắm
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#13 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 06 November 2012 - 07:48 AM

Lần nào cám ơn cũng không "Like This" thì chắc bác Duy còn nhăn mặt tợn! :lol:
  • 1

* 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.


#14 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 06 November 2012 - 09:44 AM

Bác Hà nói đúng 50% :lol: . 50% còn lại do bạn yêu cầu cứ lắt nhắt them thắt hoài. Đã bảo là lường hết mọi tình huống rồi yêu cầu 1 thể chứ viết rồi sửa mệt.
  • 2

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