Đến nội dung


Hình ảnh
- - - - -

nhờ sửa lisp


  • Please log in to reply
20 replies to this topic

#1 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 18 May 2015 - 09:56 AM

 Mình có lisp vẽ mây để chú thích những chỗ nào thay đổi, nó đưa lựa chọn vẽ vùng vẽ mây và chọn bán kính mây. kí hiệu mây thường thường mình dùng 1 số loại bán kính cho nó như 1, 5, 10, 50, 100, 500, 1000, 5000 và mặc định ở layer defpoint. Do đó mình muốn sửa lisp của mình thành là:

 

 - khi vẽ mây tự động mây nằm trong layer defpoint nhưng không làm thay đổi layer hiện hành

 - hiện bảng chọn các bán kính kể trên

 

 Mình có gửi thêm 1 lisp chọn tỉ lệ cho viewport, trong đó có code sẵn kiểu hiện bảng lên rồi, các bạn lấy dạng bảng trong này cho vào lisp vẽ mây cho mình nhé. lisp chọn tỉ lệ này có cái hay là mình có thể tự thêm tỉ lệ vào đoạn " (setq l '("1/5" "1/10"  "1/25" "1/50" "1/100" "1/150" "1/200" "1/250")) " 

Các bạn làm tương tự cho mình nhé tức là mình có thể tự thêm bán kính vào nếu thấy chưa đủ

Mình cám ơn nhiều

http://www.cadviet.v...le_viewport.lsp

http://www.cadviet.v...9928_ve_may.lsp


  • 0

#2 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 21 May 2015 - 10:38 AM

mấy chục người xem mà ko bạn nào giúp mình được ah  :(


  • -2

#3 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 29 May 2015 - 11:20 AM

không bạn nào giúp mình được ah  :(


  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 29 May 2015 - 02:51 PM

mấy chục người xem mà ko bạn nào giúp mình được ah  :(

Hiện giờ đã có 180 người xem nhưng không ai down được lisp.

Member thì mơ hồ điều này nên cứ post file lisp. Kết quả: không down được.

Admin thì hiểu rõ điều này nhưng mãi không thấy sửa.

Khổ thân thiên hạ!


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


#5 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 30 May 2015 - 08:15 AM

Hiện giờ đã có 180 người xem nhưng không ai down được lisp.

Member thì mơ hồ điều này nên cứ post file lisp. Kết quả: không down được.

Admin thì hiểu rõ điều này nhưng mãi không thấy sửa.

Khổ thân thiên hạ!

 

Cám ơn bạn Doan Van Ha đã nhắc. mình đưa lên mediafire rồi. các bạn giúp mình cái nhé. mình cám ơn nhiều

 

http://www.mediafire...le viewport.lsp

http://www.mediafire...6224/ve may.lsp


  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 30 May 2015 - 10:50 AM

Viết mới cho bạn đây!

(defun C:vm(/ aleng p1 p2 lst str)
 (setq p1 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m \U+0111\U+1EA7u HCN :")
       p2 (getcorner p1 "\n\U+0110i\U+1EC3m cu\U+1ED1i :"))
 (setq lst '(1 5 10 50 100 500 1000 5000)) ;co the them o day
 (setq str (apply 'strcat (mapcar '(lambda (i) (strcat (itoa i) (if (eq i (last lst)) "" "/"))) lst)))
 (initget (vl-string-trim "()" (vl-princ-to-string lst))) 
 (setq aleng (getkword (strcat "\nB\U+00E1n k\U+00EDnh cong [" str "]: ")))
 (command "_.rectangle" p1 p2)
 (command "_.revcloud" "_A" (atoi aleng) "" "_O" (entlast) "")
 (princ))

  • 2

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


#7 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 30 May 2015 - 11:26 AM

Mình đọc đi đọc lại không biết bao nhiêu lần chủ đề bạn Post nhưng không hiểu mục đích là làm gì^^

Mình cứ nghĩ vẽ mây chắc là vẽ cái gì bên chuyên ngành của cơ khí cơ ^^

Ai ngờ...Lisp tạo Clound theo tỉ lệ viewport ^^

@a Hạ: Hình như có vẽ mây theo hình tùy ý nữa chứ a ^^Đâu phải lúc nào cũng vẽ theo hình chữ nhật a hè.Hi


  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 30 May 2015 - 11:34 AM

Mình đọc đi đọc lại không biết bao nhiêu lần chủ đề bạn Post nhưng không hiểu mục đích là làm gì^^

Mình cứ nghĩ vẽ mây chắc là vẽ cái gì bên chuyên ngành của cơ khí cơ ^^

Ai ngờ...Lisp tạo Clound theo tỉ lệ viewport ^^

@a Hạ: Hình như có vẽ mây theo hình tùy ý nữa chứ a ^^Đâu phải lúc nào cũng vẽ theo hình chữ nhật a hè.Hi

Xanh: đương nhiên. Nhưng chủ topic chỉ muốn thế.


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


#9 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 01 June 2015 - 08:13 AM

 

Viết mới cho bạn đây!

(defun C:vm(/ aleng p1 p2 lst str)
 (setq p1 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m \U+0111\U+1EA7u HCN :")
       p2 (getcorner p1 "\n\U+0110i\U+1EC3m cu\U+1ED1i :"))
 (setq lst '(1 5 10 50 100 500 1000 5000)) ;co the them o day
 (setq str (apply 'strcat (mapcar '(lambda (i) (strcat (itoa i) (if (eq i (last lst)) "" "/"))) lst)))
 (initget (vl-string-trim "()" (vl-princ-to-string lst))) 
 (setq aleng (getkword (strcat "\nB\U+00E1n k\U+00EDnh cong [" str "]: ")))
 (command "_.rectangle" p1 p2)
 (command "_.revcloud" "_A" (atoi aleng) "" "_O" (entlast) "")
 (princ))

 

cám ơn bạn đã giúp đỡ. lisp dùng ngon nhưng vẫn thiếu 1 ý của mình. đó là mây được chuyển về layer defpoint nhưng không làm thay đổi layer hiện hành. bạn thêm cho mình chút nhé

mình cám ơn nhiều


  • 0

#10 proconeng86

proconeng86

    biết lệnh break

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

Đã gửi 01 June 2015 - 08:20 AM

Mình đọc đi đọc lại không biết bao nhiêu lần chủ đề bạn Post nhưng không hiểu mục đích là làm gì^^

Mình cứ nghĩ vẽ mây chắc là vẽ cái gì bên chuyên ngành của cơ khí cơ ^^

Ai ngờ...Lisp tạo Clound theo tỉ lệ viewport ^^

@a Hạ: Hình như có vẽ mây theo hình tùy ý nữa chứ a ^^Đâu phải lúc nào cũng vẽ theo hình chữ nhật a hè.Hi

 

mình dùng mây để ghi chú những phần thay đổi, cái này mình dùng rất nhiều nhất, đâu riêng j cơ khí đâu

ngoài ra từ trước nay mình cũng chỉ dùng mây hình chữ nhật thôi, chưa thấy trường hợp mây hình dạng khác


  • 0

#11 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 01 June 2015 - 08:38 AM

mình dùng mây để ghi chú những phần thay đổi, cái này mình dùng rất nhiều nhất, đâu riêng j cơ khí đâu

ngoài ra từ trước nay mình cũng chỉ dùng mây hình chữ nhật thôi, chưa thấy trường hợp mây hình dạng khác

Mình hiểu nhưng có thể tại vùng đó có số chi tiết thay đổi nhưng có 1 số chi tiết ko thay đổi ,chẳng lẽ lại cloundmark cả vùng luôn ^^

Ở công ty mình thì chỗ nào có sự thay đổi mới vẽ mây tại đó,vẽ trực tiếp tại vị trí thay đổi sẽ trực quan hơn cho người đọc bản vẽ nên cũng nhiều lần phải vẽ mây theo Pline tùy ý chớ^^....

Vì thế, không nhất thiết phải là HCN ^^


  • 0

#12 Tr.CongSon

Tr.CongSon

    biết lệnh array

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

Đã gửi 01 June 2015 - 08:51 AM

cám ơn bạn đã giúp đỡ. lisp dùng ngon nhưng vẫn thiếu 1 ý của mình. đó là mây được chuyển về layer defpoint nhưng không làm thay đổi layer hiện hành. bạn thêm cho mình chút nhé

mình cám ơn nhiều

Mạn phép anh Hạ em sửa tí nhé.

Chúc buổi sang vui vẻ!

 

(defun C:vm (/ aleng p1 p2 lst str)
(setq clay (getvar "CLAYER"))
(setvar "CLAYER" "Defpoints" )
(setq p1 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m \U+0111\U+1EA7u HCN :")
p2 (getcorner p1 "\n\U+0110i\U+1EC3m cu\U+1ED1i :")
)
(setq lst '(1 5 10 50 100 500 1000 5000)) ;co the them o day
(setq str (apply 'strcat
(mapcar '(lambda (i)
(strcat (itoa i)
(if (eq i (last lst))
""
"/"
)
)
)
lst
)
)
)
(initget (vl-string-trim "()" (vl-princ-to-string lst)))
(setq aleng
(getkword (strcat "\nB\U+00E1n k\U+00EDnh cong [" str "]: "))
)
(command "_.rectangle" p1 p2)
(command "_.revcloud" "_A" (atoi aleng) "" "_O" (entlast) "")
(setvar "CLAYER" clay )
(princ)
)
 


  • 1

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 01 June 2015 - 08:52 AM

TCS đề phòng bản vẽ chưa có layer defpoints nữa nhé.

Bổ sung cho chủ topic:

; Lisp ve revcloud theo list cac ban kinh nhap vao (user them duoc) va chuyen ve layer defpoints, by HA.
(defun C:vm(/ aleng p1 p2 lst str cmd cla)
 (vl-load-com) (setq cmd (getvar "cmdecho") cla (getvar "clayer")) (setvar "cmdecho" 0)
 (setq p1 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m \U+0111\U+1EA7u HCN :")
       p2 (getcorner p1 "\n\U+0110i\U+1EC3m cu\U+1ED1i :"))
 (setq lst '(1 5 10 50 100 500 1000 5000))
 (setq str (apply 'strcat (mapcar '(lambda (i) (strcat (itoa i) (if (eq i (last lst)) "" "/"))) lst)))
 (initget (vl-string-trim "()" (vl-princ-to-string lst))) 
 (setq aleng (getkword (strcat "\nB\U+00E1n k\U+00EDnh cong [" str "]: ")))
 (command "_.rectangle" p1 p2)
 (command "_.revcloud" "_A" (atoi aleng) "" "_O" (entlast) "")
 (if (not (tblsearch "layer" "Defpoints")) (progn (command "layer" "m" "Defpoints" "") (setvar "clayer" cla)))
 (vla-put-layer (vlax-ename->vla-object (entlast)) "Defpoints")
 (setvar "cmdecho" cmd)
 (princ))

  • 3

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

Tr.CongSon

    biết lệnh array

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

Đã gửi 01 June 2015 - 09:26 AM

Hì hì.Em check trên bản vẽ của em có sẵn layer Defpoints nên ko để ý ^^

Em sẽ rút được kinh nghiệm  ^^

Giúp người đồng nghĩa tự giúp mình mà.hì


  • 0

#15 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 01 June 2015 - 09:48 AM

 Entmake 1 dimension bất kỳ rồi entdel sẽ hay hơn là tạo layer Defpoint bác ạ


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 01 June 2015 - 10:05 AM

 Entmake 1 dimension bất kỳ rồi entdel sẽ hay hơn là tạo layer Defpoint bác ạ

Lúc đầu cũng định thế nhưng thấy bá đạo quá nên chọn command đó.


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


#17 conghoa

conghoa

    biết lệnh attdef

  • Members
  • PipPipPipPipPipPip
  • 412 Bài viết
Điểm đánh giá: 88 (tàm tạm)

Đã gửi 01 June 2015 - 11:12 AM

 

TCS đề phòng bản vẽ chưa có layer defpoints nữa nhé.

Bổ sung cho chủ topic:

; Lisp ve revcloud theo list cac ban kinh nhap vao (user them duoc) va chuyen ve layer defpoints, by HA.
(defun C:vm(/ aleng p1 p2 lst str cmd cla)
 (vl-load-com) (setq cmd (getvar "cmdecho") cla (getvar "clayer")) (setvar "cmdecho" 0)
 (setq p1 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m \U+0111\U+1EA7u HCN :")
       p2 (getcorner p1 "\n\U+0110i\U+1EC3m cu\U+1ED1i :"))
 (setq lst '(1 5 10 50 100 500 1000 5000))
 (setq str (apply 'strcat (mapcar '(lambda (i) (strcat (itoa i) (if (eq i (last lst)) "" "/"))) lst)))
 (initget (vl-string-trim "()" (vl-princ-to-string lst))) 
 (setq aleng (getkword (strcat "\nB\U+00E1n k\U+00EDnh cong [" str "]: ")))
 (command "_.rectangle" p1 p2)
 (command "_.revcloud" "_A" (atoi aleng) "" "_O" (entlast) "")
 (if (not (tblsearch "layer" "Defpoints")) (progn (command "layer" "m" "Defpoints" "") (setvar "clayer" cla)))
 (vla-put-layer (vlax-ename->vla-object (entlast)) "Defpoints")
 (setvar "cmdecho" cmd)
 (princ))

Bác có thể nâng cấp dùm conghoa cái này lên 1 mức nữa được không, cụ thể:

Cách thức hoạt động của lisp vẫn thế nhưng layer trả về không phải là nét Defpoints mà sẽ là layer "Thaydoi+"ngày hiện tại"" (ví dụ hôm nay vẽ revcloud thì layer trả về sẽ là "Thaydoi 2015 06 01")

Trân trọng!


  • -1

#18 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 01 June 2015 - 11:28 AM

Rắc rối nhỉ?

; Lisp ve revcloud theo list cac ban kinh nhap vao (user them duoc) va chuyen ve layer ngay thay doi, by HA.
(defun C:vm(/ aleng p1 p2 lst str cmd cla lay lst)
 (vl-load-com) (setq cmd (getvar "cmdecho") cla (getvar "clayer")) (setvar "cmdecho" 0)
 (setq p1 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m \U+0111\U+1EA7u HCN :")
       p2 (getcorner p1 "\n\U+0110i\U+1EC3m cu\U+1ED1i :"))
 (setq lst '(1 5 10 50 100 500 1000 5000))
 (setq str (apply 'strcat (mapcar '(lambda (i) (strcat (itoa i) (if (eq i (last lst)) "" "/"))) lst)))
 (initget (vl-string-trim "()" (vl-princ-to-string lst))) 
 (setq aleng (getkword (strcat "\nB\U+00E1n k\U+00EDnh cong [" str "]: ")))
 (command "_.rectangle" p1 p2)
 (command "_.revcloud" "_A" (atoi aleng) "" "_O" (entlast) "")
 (load "julian.lsp")
 (setq lst (jtoc (getvar "date")))
 (setq lay (strcat "Thay doi " (itoa (nth 2 lst)) "-" (itoa (nth 1 lst)) "-" (itoa (nth 0 lst))))
 (if (not (tblsearch "layer" lay)) (progn (command "layer" "m" lay "") (setvar "clayer" cla)))
 (vla-put-layer (vlax-ename->vla-object (entlast)) lay)
 (setvar "cmdecho" cmd)
 (princ))

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


#19 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 01 June 2015 - 11:52 AM

Sao bác DVH không dùng: (strcat "Thaydoi "(rtos (getvar "CDATE") 2 0)) nhỉ???


  • 1

#20 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 01 June 2015 - 12:12 PM

Dùng cũng được, nhưng phải thêm khoảng trống hoặc dấu gạch ngang nữa theo y/c chủ thớ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.