Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
nhoclangbat

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

Các bài được khuyến nghị

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

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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))

  • Vote tăng 3

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

-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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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))

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

: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))

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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.

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×