Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
* * * * * 1 Bình chọn

[ Nhờ Viết Lisp] Kết Hợp 2 Lệnh Stretch Và Copy


  • Please log in to reply
23 replies to this topic

#1 minhquannd87

minhquannd87

    biết zoom

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

Đã gửi 13 December 2016 - 02:53 PM

Mình muốn nhờ các bác viết Lisp kết hợp 2 lênh stretch và copy 

mình vẽ cầu thường dùng dimension ordinate để điền cao độ chứ k dùng lisp điền cao độ như bên đường

bình thường phải copy dimension sau đó stretch hơi mất thời gian 

file vidu mình đính kèm

http://www.mediafire...g085d/Vi du.dwg


  • 0

#2 Bee

Bee

    biết dimradius

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

Đã gửi 13 December 2016 - 03:12 PM

Mình muốn nhờ các bác viết Lisp kết hợp 2 lênh stretch và copy 

mình vẽ cầu thường dùng dimension ordinate để điền cao độ chứ k dùng lisp điền cao độ như bên đường

bình thường phải copy dimension sau đó stretch hơi mất thời gian 

file vidu mình đính kèm

http://www.mediafire...g085d/Vi du.dwg

Cái này nghiên cứu dùng FIELD trong cad nhé. Field hay lắm đấy. Chỉ việc copy cốt xong là nó nhảy, không cần lisp nào khác


  • 1

#3 minhquannd87

minhquannd87

    biết zoom

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

Đã gửi 13 December 2016 - 04:57 PM

Cái này nghiên cứu dùng FIELD trong cad nhé. Field hay lắm đấy. Chỉ việc copy cốt xong là nó nhảy, không cần lisp nào khác

bác chỉ dẫn thêm 1 chút đc k 

vào mục field đấy nhiều cái quá 


  • 0

#4 Danh Cong

Danh Cong

    biết lệnh insert

  • Moderator
  • PipPipPipPipPipPip
  • 426 Bài viết
Điểm đánh giá: 95 (tàm tạm)

Đã gửi 13 December 2016 - 05:15 PM

Phải "cầm tay chỉ việc" qua video này bác @Bee ạ ^^.
https://m.youtube.co...h?v=CcBjLQA5Z9U
  • 1

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#5 minhquannd87

minhquannd87

    biết zoom

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

Đã gửi 15 December 2016 - 08:48 AM

Phải "cầm tay chỉ việc" qua video này bác @Bee ạ ^^.
https://m.youtube.co...h?v=CcBjLQA5Z9U

cái này mình dùng rồi nó chỉ dùng được khi mình có 1 bản vẽ cần điền tọa độ

file mình vẽ nhiều vùng khác nhau cần điền tọa độ không cùng gốc thì không dùng đc, hoặc phải dàn hàng ngang bản vẽ ra rất bất tiện

thứ 2 là khi mình vẽ bản vẽ nhiều tỉ lệ khác nhau thì việc chỉnh sửa cũng mất thời gian hơn

mình đưa về dimension nên khi vẽ các tỉ lệ khác nhau chỉ cần chọn lại dimension là được

Nhờ các bác viết Lisp như trên giúp mình vs ??


  • 0

#6 ndtnv

ndtnv

    biết lệnh divide

  • Members
  • PipPipPipPipPipPip
  • 440 Bài viết
Điểm đánh giá: 391 (khá)

Đã gửi 15 December 2016 - 10:04 AM

Viết theo yêu cầu cũng không khó nhưng tôi chưa rãnh, nếu Danh Cong rãnh thì hoàn chỉnh

Bạn dùng tạm lisp này

- Copy các dim

- Chọn dim gốc lấy y chuẩn

- Chọn các dim cần chỉnh tọa độ

(defun c:cy( / a g) ; chinh y
(setq a (assoc 10 (entget (car (entsel "\nChon dim goc : ")))))
(princ "\nChon dim can chinh cao do : ")
(foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget  '((0 . "DIMENSION")(-4 . "&=")(70 . 6))))))
 (entmod (subst a (assoc 10 (setq g (entget e))) g))
)
)

  • 2

#7 minhquannd87

minhquannd87

    biết zoom

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

Đã gửi 15 December 2016 - 10:19 AM

 

Viết theo yêu cầu cũng không khó nhưng tôi chưa rãnh, nếu Danh Cong rãnh thì hoàn chỉnh

Bạn dùng tạm lisp này

- Copy các dim

- Chọn dim gốc lấy y chuẩn

- Chọn các dim cần chỉnh tọa độ

(defun c:cy( / a g) ; chinh y
(setq a (assoc 10 (entget (car (entsel "\nChon dim goc : ")))))
(princ "\nChon dim can chinh cao do : ")
(foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget  '((0 . "DIMENSION")(-4 . "&=")(70 . 6))))))
 (entmod (subst a (assoc 10 (setq g (entget e))) g))
)
)

sao chọn dim nào nó cũng báo lỗi vậy bác


  • 0

#8 Bee

Bee

    biết dimradius

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

Đã gửi 15 December 2016 - 11:01 AM

cái này mình dùng rồi nó chỉ dùng được khi mình có 1 bản vẽ cần điền tọa độ

file mình vẽ nhiều vùng khác nhau cần điền tọa độ không cùng gốc thì không dùng đc, hoặc phải dàn hàng ngang bản vẽ ra rất bất tiện

thứ 2 là khi mình vẽ bản vẽ nhiều tỉ lệ khác nhau thì việc chỉnh sửa cũng mất thời gian hơn

mình đưa về dimension nên khi vẽ các tỉ lệ khác nhau chỉ cần chọn lại dimension là được

Nhờ các bác viết Lisp như trên giúp mình vs ??

Thế giá trị cốt trong text nó nhảy theo cái gì ?


  • 0

#9 huunhantvxdts

huunhantvxdts

    biết lệnh block

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

Đã gửi 15 December 2016 - 02:12 PM

Mình muốn nhờ các bác viết Lisp kết hợp 2 lênh stretch và copy 

mình vẽ cầu thường dùng dimension ordinate để điền cao độ chứ k dùng lisp điền cao độ như bên đường

bình thường phải copy dimension sau đó stretch hơi mất thời gian 

file vidu mình đính kèm

http://www.mediafire...g085d/Vi du.dwg

Cái này mình thấy dùng lisp đánh cao độ cho nó nhanh


  • 0

#10 minhquannd87

minhquannd87

    biết zoom

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

Đã gửi 15 December 2016 - 02:32 PM

Thế giá trị cốt trong text nó nhảy theo cái gì ?

Mình dùng là odinate dimension k dùng cốt text

khi dùng stretch nó sẽ nhảy theo giống như là dimension

bác có thể down cái file mình đính kèm về mà xem


  • 0

#11 minhquannd87

minhquannd87

    biết zoom

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

Đã gửi 15 December 2016 - 02:36 PM

Cái này mình thấy dùng lisp đánh cao độ cho nó nhanh

lisp đánh cao độ k tùy chỉnh theo các theo tỉ lệ đc dùng cũng k tiện bằng 


  • 0

#12 huunhantvxdts

huunhantvxdts

    biết lệnh block

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

Đã gửi 15 December 2016 - 02:49 PM

lisp đánh cao độ k tùy chỉnh theo các theo tỉ lệ đc dùng cũng k tiện bằng 

Có nhập tỷ lệ mà


  • 0

#13 minhquannd87

minhquannd87

    biết zoom

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

Đã gửi 15 December 2016 - 04:42 PM

Có nhập tỷ lệ mà

chỉ chỉnh đc tỉ lệ từng cái field thôi bác

h bản vẽ mình có khoảng 20 cái cao độ tỉ lệ 1/100 h muốn chuyển 1 lần về tỉ lệ 1/75 như dimension thì dùng field cho sửa đc k ??


  • 0

#14 NguyenNgocSon

NguyenNgocSon

    biết dimcontinue

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

Đã gửi 15 December 2016 - 05:17 PM

chỉ chỉnh đc tỉ lệ từng cái field thôi bác

h bản vẽ mình có khoảng 20 cái cao độ tỉ lệ 1/100 h muốn chuyển 1 lần về tỉ lệ 1/75 như dimension thì dùng field cho sửa đc k ??

Chỉnh được hết


  • 0

#15 Bee

Bee

    biết dimradius

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

Đã gửi 17 December 2016 - 03:10 PM

Mình dùng là odinate dimension k dùng cốt text

khi dùng stretch nó sẽ nhảy theo giống như là dimension

bác có thể down cái file mình đính kèm về mà xem

Mình vẫn thấy dùng field là ổn dù cho tỷ lệ nào vẫn dùng được.

 

Đây là lisp dùng cho công việc bạn yêu cầu. Nhớ chọn window từ phải qua trái thì mới stretch được nhé.

 

Tết nhất đến nơi mọi người bận chắc chẳng ai rảnh viết lisp mấy đâu. ^_^

(defun c:kkk (/ os ss p1 p2)
  (setq os (getvar "osmode"))
  (princ "\nChon cot cao do: ")
  (if (setq ss (ssget "_:L"))
    (if	(setq p1 (getpoint "\nChon diem goc copy: "))
      (if (setq p2 (getpoint p1 "\nChon diem dat moi: "))
	(progn
	  (command "_.copybase" p1 ss "")
	  (setvar "OSMODE" 0)
	  (command "_.stretch" "P" "" p1 p2)
	  (command "_.pasteclip" p1)
	)
	(princ "\nBan da khong chon diem moi.")
      )
      (princ "\nBan da khong chon diem goc.")
    )
    (princ "\nBan da khong chon doi tuong.")
  )
  (setvar 'osmode os)
  (princ)
)

  • 1

#16 Danh Cong

Danh Cong

    biết lệnh insert

  • Moderator
  • PipPipPipPipPipPip
  • 426 Bài viết
Điểm đánh giá: 95 (tàm tạm)

Đã gửi 17 December 2016 - 08:49 PM

Bác #Bee và các anh chị có kinh nghiệm cho em hỏi xíu : dòng code (ssget "_:L") thì cái sự lựa chọn "_:L" có nghĩa là gì vậy ạ. ^^. Em ko hiểu cho lắm.
  • 0

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#17 Bee

Bee

    biết dimradius

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

Đã gửi 17 December 2016 - 09:20 PM

Bác #Bee và các anh chị có kinh nghiệm cho em hỏi xíu : dòng code (ssget "_:L") thì cái sự lựa chọn "_:L" có nghĩa là gì vậy ạ. ^^. Em ko hiểu cho lắm.

Exclude Locked Layers

 

<_<  Filter bỏ qua đối tượng trên lớp bị khóa.


  • 1

#18 Danh Cong

Danh Cong

    biết lệnh insert

  • Moderator
  • PipPipPipPipPipPip
  • 426 Bài viết
Điểm đánh giá: 95 (tàm tạm)

Đã gửi 18 December 2016 - 07:53 AM

Hề hề... Em cám ơn bác đã giải thích... ^^
Cho em hỏi thêm: Vậy với Layer bị ẩn đi thì cú pháp thay đổi như thế nào ạ < hoặc em cần đọc ở đâu ạ ^^ >
  • 0

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***


#19 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 December 2016 - 08:19 AM

Đây nè:

http://www.cadviet.c...60


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


#20 Danh Cong

Danh Cong

    biết lệnh insert

  • Moderator
  • PipPipPipPipPipPip
  • 426 Bài viết
Điểm đánh giá: 95 (tàm tạm)

Đã gửi 18 December 2016 - 01:11 PM

Chẳng biết nói gì hơn : ))) Cám ơn bác Hạ ^^ : ) mong các bác mạnh khoẻ cho chúng em còn có người học hỏi ^^ 


  • 0

              *** Vô lo - Vô nghĩ - Vô sầu hận ***
*** Chẳng thương - Chẳng giận - Chẳng đau lòng ***