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

khi Cắt Dim để lại phần chân Dim dài bằng nhau !!!

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

Em đã có Lisp cắt Dim rùi, nhưng mình làm sao để khi cắt Dim để lại phần chân Dim dài bằng nhau ??? Phiền bác Pro sửa giúp với !!!

CODE Lisp cắt Dim

(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I

PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)

(prompt "\n KS_Pham Hoang Giang 0985.136.988")

(print)

(SETQ CMD (GETVAR "CMDECHO"))

(SETQ OSM (GETVAR "OSMODE"))

(SETQ OLDERR *error*

*error* myerror)

(PRINC "Lam on chon vao duong kich thuoc !")

(SETQ SS (SSGET))

(SETVAR "CMDECHO" 0)

(SETQ PT (GETPOINT "Chon vi tri cut:"))

(SETQ PT (TRANS PT 1 0))

(COMMAND "UCS" "W")

(SETQ LTH (SSLENGTH SS))

(SETQ DEM 0)

(WHILE (< DEM LTH)

(PROGN

(SETQ DS (ENTGET (SSNAME SS DEM)))

(SETQ KDL (CDR (ASSOC 0 DS)))

(IF (= "DIMENSION" KDL)

(PROGN

(SETQ PT10 (CDR (ASSOC 10 DS)))

(SETQ PT11 (CDR (ASSOC 11 DS)))

(SETQ PT13 (CDR (ASSOC 13 DS)))

(SETQ PT14 (CDR (ASSOC 14 DS)))

(SETQ N70 (CDR (ASSOC 70 DS)))

(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))

(PROGN

(SETQ GOCY (ANGLE PT10 PT14))

(SETQ GOCX (+ GOCY (/ PI 2)))

)

)

(SETVAR "OSMODE" 0)

(SETQ PTI (POLAR PT GOCX 2))

(SETQ PT13I (POLAR PT13 GOCY 2))

(SETQ PT14I (POLAR PT14 GOCY 2))

(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))

(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))

(SETQ O13 (ASSOC 13 DS))

(SETQ O14 (ASSOC 14 DS))

(SETQ N13 (CONS 13 PT13N))

(SETQ N14 (CONS 14 PT14N))

(SETQ DS (SUBST N13 O13 DS))

(SETQ DS (SUBST N14 O14 DS))

(ENTMOD DS)

)

)

(SETQ DEM (+ DEM 1))

)

)

(COMMAND "UCS" "P")

(SETVAR "CMDECHO" CMD)

(SETVAR "OSMODE" OSM)

(setq *error* OLDERR) ; Restore old *error* handler

(PRINC)

)

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ó Lisp cắt Dim rùi, nhưng mình làm sao để khi cắt Dim để lại phần chân Dim dài bằng nhau ??? Phiền bác Pro sửa giúp với !!!

Bạn sử dụng cái này coi sao :

(DEFUN C:BDii (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
			PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
  *error* myerror)
(PRINC "Please select dimension object!")
(SETQ SS (SSGET))
(SETVAR "CMDECHO" 0)
(SETQ PT (GETPOINT "Point to trim or extend:"))
(SETQ PT (TRANS PT 1 0))
(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (	(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
   (PROGN
	(SETQ PT13 (CDR (ASSOC 13 DS)))
	(SETQ PT14 (CDR (ASSOC 14 DS)))
	(SETQ PT10 (CDR (ASSOC 10 DS)))
	(SETQ PT11 (CDR (ASSOC 11 DS)))
	(SETQ N70 (CDR (ASSOC 70 DS)))
	(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
	   (PROGN
		(SETQ GOCY (ANGLE PT10 PT14))
		(SETQ GOCX (+ GOCY (/ PI 2)))
	   )
	)
	(SETVAR "OSMODE" 0)
	(SETQ PTI (POLAR PT GOCX 2))
	(SETQ PT10I (POLAR PT10 GOCY 2))
	(SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
	(SETQ KC (DISTANCE PT10 PT10N))
	(SETQ O10 (ASSOC 10 DS))
	(SETQ N10 (CONS 10 PT10N))
	(SETQ DS (SUBST N10 O10 DS))
	(SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
	(SETQ O11 (ASSOC 11 DS))
	(SETQ N11 (CONS 11 PT11N))
	(SETQ DS (SUBST N11 O11 DS))
	(ENTMOD DS)
   )
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
(setq *error* OLDERR)
(PRINC)
)

:s_big:

  • 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
Em đã có Lisp cắt Dim rùi, nhưng mình làm sao để khi cắt Dim để lại phần chân Dim dài bằng nhau ??? Phiền bác Pro sửa giúp với !!!

bạn thử đoạn code này xem sao:

;---------------HIEU CHINH KICH THUOC (Chỉnh đường chân Dim)-----------------------------

(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I

PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)

(princ "\nCopyright by Nguyen Van Suu")

(SETQ CMD (GETVAR "CMDECHO"))

(SETQ OSM (GETVAR "OSMODE"))

(SETQ OLDERR *error*

*error* myerror)

(PRINC "Please select dimension object!")

(SETQ SS (SSGET))

(SETVAR "CMDECHO" 0)

(SETQ PT (GETPOINT "Point to trim or extend:"))

(SETQ PT (TRANS PT 1 0))

(COMMAND "UCS" "W")

(SETQ LTH (SSLENGTH SS))

(SETQ DEM 0)

(WHILE (< DEM LTH)

(PROGN

(SETQ DS (ENTGET (SSNAME SS DEM)))

(SETQ KDL (CDR (ASSOC 0 DS)))

(IF (= "DIMENSION" KDL)

(PROGN

(SETQ PT10 (CDR (ASSOC 10 DS)))

(SETQ PT11 (CDR (ASSOC 11 DS)))

(SETQ PT13 (CDR (ASSOC 13 DS)))

(SETQ PT14 (CDR (ASSOC 14 DS)))

(SETQ N70 (CDR (ASSOC 70 DS)))

(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))

(PROGN

(SETQ GOCY (ANGLE PT10 PT14))

(SETQ GOCX (+ GOCY (/ PI 2)))

)

)

(SETVAR "OSMODE" 0)

(SETQ PTI (POLAR PT GOCX 2))

(SETQ PT13I (POLAR PT13 GOCY 2))

(SETQ PT14I (POLAR PT14 GOCY 2))

(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))

(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))

(SETQ O13 (ASSOC 13 DS))

(SETQ O14 (ASSOC 14 DS))

(SETQ N13 (CONS 13 PT13N))

(SETQ N14 (CONS 14 PT14N))

(SETQ DS (SUBST N13 O13 DS))

(SETQ DS (SUBST N14 O14 DS))

(ENTMOD DS)

)

)

(SETQ DEM (+ DEM 1))

)

)

(COMMAND "UCS" "P")

(SETVAR "CMDECHO" CMD)

(SETVAR "OSMODE" OSM)

(setq *error* OLDERR) ; Restore old *error* handler

(PRINC)

)

----------------------------

Chúc bạn may mắn!

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ạn thử đoạn code này xem sao:

;---------------HIEU CHINH KICH THUOC (Chỉnh đường chân Dim)-----------------------------

(DEFUN C:CD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I

PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)

(princ "\nCopyright by Nguyen Van Suu")

(SETQ CMD (GETVAR "CMDECHO"))

(SETQ OSM (GETVAR "OSMODE"))

(SETQ OLDERR *error*

*error* myerror)

(PRINC "Please select dimension object!")

(SETQ SS (SSGET))

(SETVAR "CMDECHO" 0)

(SETQ PT (GETPOINT "Point to trim or extend:"))

(SETQ PT (TRANS PT 1 0))

(COMMAND "UCS" "W")

(SETQ LTH (SSLENGTH SS))

(SETQ DEM 0)

(WHILE (< DEM LTH)

(PROGN

(SETQ DS (ENTGET (SSNAME SS DEM)))

(SETQ KDL (CDR (ASSOC 0 DS)))

(IF (= "DIMENSION" KDL)

(PROGN

(SETQ PT10 (CDR (ASSOC 10 DS)))

(SETQ PT11 (CDR (ASSOC 11 DS)))

(SETQ PT13 (CDR (ASSOC 13 DS)))

(SETQ PT14 (CDR (ASSOC 14 DS)))

(SETQ N70 (CDR (ASSOC 70 DS)))

(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))

(PROGN

(SETQ GOCY (ANGLE PT10 PT14))

(SETQ GOCX (+ GOCY (/ PI 2)))

)

)

(SETVAR "OSMODE" 0)

(SETQ PTI (POLAR PT GOCX 2))

(SETQ PT13I (POLAR PT13 GOCY 2))

(SETQ PT14I (POLAR PT14 GOCY 2))

(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))

(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))

(SETQ O13 (ASSOC 13 DS))

(SETQ O14 (ASSOC 14 DS))

(SETQ N13 (CONS 13 PT13N))

(SETQ N14 (CONS 14 PT14N))

(SETQ DS (SUBST N13 O13 DS))

(SETQ DS (SUBST N14 O14 DS))

(ENTMOD DS)

)

)

(SETQ DEM (+ DEM 1))

)

)

(COMMAND "UCS" "P")

(SETVAR "CMDECHO" CMD)

(SETVAR "OSMODE" OSM)

(setq *error* OLDERR) ; Restore old *error* handler

(PRINC)

)

----------------------------

Chúc bạn may mắn!

Ko phải rùi, Các bác chưa hiểu ý em rồi. Ý của em là cắt Dim nhưng đường Dim nào sau khi cắt cũng có độ dài Chân DIM bằng nhau = hằng số. Độ dài chân DIM theo phương vuông góc với Dim ấy !!!

Ảnh minh họa : http://www.cadviet.com/upfiles/anh_minh_hoa.jpg

  • 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
Ko phải rùi, Các bác chưa hiểu ý em rồi. Ý của em là cắt Dim nhưng đường Dim nào sau khi cắt cũng có độ dài Chân DIM bằng nhau = hằng số. Độ dài chân DIM theo phương vuông góc với Dim ấy !!!

Ảnh minh họa : http://www.cadviet.com/upfiles/anh_minh_hoa.jpg

Có bác nào có cao kiến nào ko ?

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ó bác nào có cao kiến nào ko ?

Bạn đọc bài viết này : http://www.cadviet.com/forum/index.php?showtopic=5888

 

Hy vọng bạn đọc xong sẽ hiểu được điều tôi muốn nói và rút kinh nghiệm cho những lần sau.

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ạn đọc bài viết này : http://www.cadviet.com/forum/index.php?showtopic=5888

 

Hy vọng bạn đọc xong sẽ hiểu được điều tôi muốn nói và rút kinh nghiệm cho những lần sau.

OK ! Em xin rút kinh nghiệm, yêu cầu của em là như trong ảnh: http://www.cadviet.com/upfiles/anh_yeu_cau.jpg

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
Ko phải rùi, Các bác chưa hiểu ý em rồi. Ý của em là cắt Dim nhưng đường Dim nào sau khi cắt cũng có độ dài Chân DIM bằng nhau = hằng số. Độ dài chân DIM theo phương vuông góc với Dim ấy !!!

Ảnh minh họa : http://www.cadviet.com/upfiles/anh_minh_hoa.jpg

Lời đầu tiên, Tue_NV xin góp ý chân thành với bạn hhhhgggg : Khi viết bài bạn nên nhìn nhận vấn đề một cách tổng quát và nói rõ vấn đề vì có thể mọi người không hiểu theo ý bạn và từ đó làm mất thời gian của chính mình và làm mất thời gian của người khác là điều không nên và phải tránh

 

Cứ như bài viết này, Tue_NV muốn giúp bạn mà chẳng biết làm thế nào nữa

http://www.cadviet.com/forum/index.php?showtopic=11138

Bạn phải nói rõ đối tượng là đt gì, text, dim, hay các loại đg như line, arc, pline, spline, circle, đồng thời phải định nghĩa thế nào là tâm mới đc, là trung điểm hay điểm đặt ... thì ng khác mới biết và giúp bạn chứ.

 

Tue_NV đã chỉnh sửa lại Code trên. Hy vọng nó có ích cho mọi người.

 

Tên lệnh Cd

1. Lisp yêu cầu chọn DIM

2. Lisp yêu cầu : nhập khoảng cách đường dóng.

3. Lisp thực hiện công việc : cắt chân dim đã chọn với khoảng cách đường dóng do user nhập vào.

 

 

Lisp này có 1 điểm hay mà Tue_NV rất thích là ở bước thứ 2 : Nhập khoảng cách đường dóng

 

Khoảng cách đường dóng này mang ý nghĩa tương đối.

Khoảng cách đường dóng có thể là số dương (>0), có thể là số âm (

Và khoảng cách có thể pick 2 điểm trên màn hình. Lisp sẽ lấy khoảng cách 2 điểm pick trên màn hình làm khoảng cách đường dóng. Và khoảng cách khi ta pick 2 điểm này sẽ mang giá trị dương ( + )

 

Bạn hãy chạy thử và nghiệm ra điều mà Tue_NV nói.

Các bạn hãy cho ý kiến, nếu có gì chưa được thì Tue_NV sẽ sửa lại. Hy vọng nó có ích cho mọi người

(DEFUN C:CD (/ KC KCo CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(prompt "\n KS VO QUANG TUE")
(print)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
*error* myerror)
(PRINC " Moi Chon duong kich thuoc :")
(SETQ SS (SSGET'((0 . "DIMENSION"))))
(SETVAR "CMDECHO" 0)
(If (not KCo) (setq KCo 100))
(SETQ KC (GETDIST (strcat "\n Khoang cach cut dim : ")))
(if (null KC) (setq KC KCo) (setq KCo KC))

(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE ((PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(setq PT (POLAR PT10 GOCY KC))
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2))
(SETQ PT14I (POLAR PT14 GOCY 2))
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
(setq *error* OLDERR) ; Restore old *error* handler
(PRINC)
)

  • Vote tăng 6

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
Lời đầu tiên, Tue_NV xin góp ý chân thành với bạn hhhhgggg : Khi viết bài bạn nên nhìn nhận vấn đề một cách tổng quát và nói rõ vấn đề vì có thể mọi người không hiểu theo ý bạn và từ đó làm mất thời gian của chính mình và làm mất thời gian của người khác là điều không nên và phải tránh

 

Cứ như bài viết này, Tue_NV muốn giúp bạn mà chẳng biết làm thế nào nữa

http://www.cadviet.com/forum/index.php?showtopic=11138

Tue_NV đã chỉnh sửa lại Code trên. Hy vọng nó có ích cho mọi người.

 

Tên lệnh Cd

1. Lisp yêu cầu chọn DIM

2. Lisp yêu cầu : nhập khoảng cách đường dóng.

3. Lisp thực hiện công việc : cắt chân dim đã chọn với khoảng cách đường dóng do user nhập vào.

Lisp này có 1 điểm hay mà Tue_NV rất thích là ở bước thứ 2 : Nhập khoảng cách đường dóng

 

Khoảng cách đường dóng này mang ý nghĩa tương đối.

Khoảng cách đường dóng có thể là số dương (>0), có thể là số âm (<0) và có thể bằng 0

Và khoảng cách có thể pick 2 điểm trên màn hình. Lisp sẽ lấy khoảng cách 2 điểm pick trên màn hình làm khoảng cách đường dóng. Và khoảng cách khi ta pick 2 điểm này sẽ mang giá trị dương ( + )

 

Bạn hãy chạy thử và nghiệm ra điều mà Tue_NV nói.

Các bạn hãy cho ý kiến, nếu có gì chưa được thì Tue_NV sẽ sửa lại. Hy vọng nó có ích cho mọi người

(DEFUN C:CD (/ KC KCo CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(prompt "\n KS VO QUANG TUE")
(print)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
*error* myerror)
(PRINC " Moi Chon duong kich thuoc :")
(SETQ SS (SSGET'((0 . "DIMENSION"))))
(SETVAR "CMDECHO" 0)
(If (not KCo) (setq KCo 100))
(SETQ KC (GETDIST (strcat "\n Khoang cach cut dim : <" (rtos KCo 2 0) ">")))
(if (null KC) (setq KC KCo) (setq KCo KC))

(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(setq PT (POLAR PT10 GOCY KC))
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2))
(SETQ PT14I (POLAR PT14 GOCY 2))
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
(setq *error* OLDERR) ; Restore old *error* handler
(PRINC)
)

OK ! Với cái lisp này thì người duyệt dù khó tính đến mấy cũng phải hài lòng về bản vẽ, Nó sẽ làm bản vẽ trở nên Pro hơn nhìu !!! Cảm ơn bác Tuệ nhé !!!

  • Vote tăng 4

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
OK ! Với cái lisp này thì người duyệt dù khó tính đến mấy cũng phải hài lòng về bản vẽ, Nó sẽ làm bản vẽ trở nên Pro hơn nhìu !!! Cảm ơn bác Tuệ nhé !!!

Bạn chỉ cần bấm ticks thanks ủng hộ cho Tue_NV là được rồi. :s_big:

 

Mới thấy bạn post bài yêu cầu nhập 3 chức năng của dim thành 1 lệnh mà đâu rồi. Bạn del rồi hả? :s_big:

  • 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

Tôi đang dùng Acad 2008, đã appload file cd.lsp trong bài viết vào bản vẽ nhưng khi đánh lệnh CD thì Cad báo không hiểu câu lệnh. Bác Tuệ có thể xem lại cái lisp này được không.Thank!

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ôi đang dùng Acad 2008, đã appload file cd.lsp trong bài viết vào bản vẽ nhưng khi đánh lệnh CD thì Cad báo không hiểu câu lệnh. Bác Tuệ có thể xem lại cái lisp này được không.Thank!

Tue_NV đã test lại -> không có lỗi => Bạn thử chép toàn bộ Code của Tue_NV theo cách copy (Ctrol+C) -> dán (Ctrol+V)

Không hiểu sao pick cái nút download Lisp file của diễn đàn về thì một số chữ kgông đúng -> sai câu lệnh

 

Các bạn thử chép toàn bộ Code của Tue_NV theo cách copy (Ctrol+C) -> dán (Ctrol+V) theo cách thông thường thì sẽ chạy OK ngay

  • 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

Bác Tuệ ơi, e cũng mới chỉ tập tuẹ với Cad thôi. E đã làm thử theo hướng dẫn của bác nhưng khi ctrl+V lại có kết quả như file em gửi theo, đồng nghĩa với việc appload lại và đánh lệnh CD Acad vẫn báo unknow bác ạ. Bác bớt chút thời gian để xem file e gửi theo và chỉ bảo em nhé.Thanks!

http://www.cadviet.com/upfiles/Coppy_code.jpg

http://www.cadviet.com/upfiles/Paste.jpg

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 Tuệ ơi, e cũng mới chỉ tập tuẹ với Cad thôi. E đã làm thử theo hướng dẫn của bác nhưng khi ctrl+V lại có kết quả như file em gửi theo, đồng nghĩa với việc appload lại và đánh lệnh CD Acad vẫn báo unknow bác ạ. Bác bớt chút thời gian để xem file e gửi theo và chỉ bảo em nhé.Thanks!

http://www.cadviet.com/upfiles/Coppy_code.jpg

http://www.cadviet.com/upfiles/Paste.jpg

Bạn download file này về và đánh lệnh ap (APLOAD) file này lên là sử dụng được ngay :

http://www.cadviet.com/upfiles/cd.lsp

Chúc thành công :lol2:

 

Tên lệnh Cd

1. Lisp yêu cầu chọn DIM

2. Lisp yêu cầu : nhập khoảng cách đường dóng.

3. Lisp thực hiện công việc : cắt chân dim đã chọn với khoảng cách đường dóng do user nhập vào.

Lisp này có 1 điểm hay mà Tue_NV rất thích là ở bước thứ 2 : Nhập khoảng cách đường dóng

 

Khoảng cách đường dóng này mang ý nghĩa tương đối.

Khoảng cách đường dóng có thể là số dương (>0), có thể là số âm (

Và khoảng cách có thể pick 2 điểm trên màn hình. Lisp sẽ lấy khoảng cách 2 điểm pick trên màn hình làm khoảng cách đường dóng. Và khoảng cách khi ta pick 2 điểm này sẽ mang giá trị dương ( + )

 

Bạn hãy chạy thử và nghiệm ra điều mà Tue_NV nói.

Các bạn hãy cho ý kiến, nếu có gì chưa được thì Tue_NV sẽ sửa lại. Hy vọng nó có ích cho mọi người

  • 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ạn download file này về và đánh lệnh ap (APLOAD) file này lên là sử dụng được ngay :

http://www.cadviet.com/upfiles/cd.lsp

Chúc thành công :lol2:

 

Sao lại thế này nhỉ??? Anh thử xem cho em xem lỗi là làm sao, em dùng autocad 2010!!!

loi_cat_dim.jpg

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
Tue_NV đã test lại -> không có lỗi => Bạn thử chép toàn bộ Code của Tue_NV theo cách copy (Ctrol+C) -> dán (Ctrol+V)

Không hiểu sao pick cái nút download Lisp file của diễn đàn về thì một số chữ kgông đúng -> sai câu lệnh

 

Các bạn thử chép toàn bộ Code của Tue_NV theo cách copy (Ctrol+C) -> dán (Ctrol+V) theo cách thông thường thì sẽ chạy OK ngay

Tuyệt vời!!!!!!!!

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ó Lisp cắt Dim rùi, nhưng mình làm sao để khi cắt Dim để lại phần chân Dim dài bằng nhau ??? Phiền bác Pro sửa giúp với !!!

Bạn thử dùng cách Fixdim này xem sao. Mình hầu như không phải dùng đến cutdim bao giờ (đỡ tốn công cắt :lol2: )

ScreenHunter_01_Feb_17_0738.gif

ScreenHunter_02_Feb_17_0740.gif

  • 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
Bạn thử dùng cách Fixdim này xem sao. Mình hầu như không phải dùng đến cutdim bao giờ (đỡ tốn công cắt :s_big: )

ScreenHunter_01_Feb_17_0738.gif

ScreenHunter_02_Feb_17_0740.gif

Cách này cũng hay đấy, nhưng chỉ có từ cad 08 trở lên thôi thì phải

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
Lời đầu tiên, Tue_NV xin góp ý chân thành với bạn hhhhgggg : Khi viết bài bạn nên nhìn nhận vấn đề một cách tổng quát và nói rõ vấn đề vì có thể mọi người không hiểu theo ý bạn và từ đó làm mất thời gian của chính mình và làm mất thời gian của người khác là điều không nên và phải tránh

 

Cứ như bài viết này, Tue_NV muốn giúp bạn mà chẳng biết làm thế nào nữa

http://www.cadviet.com/forum/index.php?showtopic=11138

Tue_NV đã chỉnh sửa lại Code trên. Hy vọng nó có ích cho mọi người.

 

Tên lệnh Cd

1. Lisp yêu cầu chọn DIM

2. Lisp yêu cầu : nhập khoảng cách đường dóng.

3. Lisp thực hiện công việc : cắt chân dim đã chọn với khoảng cách đường dóng do user nhập vào.

Lisp này có 1 điểm hay mà Tue_NV rất thích là ở bước thứ 2 : Nhập khoảng cách đường dóng

 

Khoảng cách đường dóng này mang ý nghĩa tương đối.

Khoảng cách đường dóng có thể là số dương (>0), có thể là số âm (<0) và có thể bằng 0

Và khoảng cách có thể pick 2 điểm trên màn hình. Lisp sẽ lấy khoảng cách 2 điểm pick trên màn hình làm khoảng cách đường dóng. Và khoảng cách khi ta pick 2 điểm này sẽ mang giá trị dương ( + )

 

Bạn hãy chạy thử và nghiệm ra điều mà Tue_NV nói.

Các bạn hãy cho ý kiến, nếu có gì chưa được thì Tue_NV sẽ sửa lại. Hy vọng nó có ích cho mọi người

(DEFUN C:CD (/ KC KCo CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I
PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)
(prompt "\n KS VO QUANG TUE")
(print)
(SETQ CMD (GETVAR "CMDECHO"))
(SETQ OSM (GETVAR "OSMODE"))
(SETQ OLDERR *error*
*error* myerror)
(PRINC " Moi Chon duong kich thuoc :")
(SETQ SS (SSGET'((0 . "DIMENSION"))))
(SETVAR "CMDECHO" 0)
(If (not KCo) (setq KCo 100))
(SETQ KC (GETDIST (strcat "\n Khoang cach cut dim : <" (rtos KCo 2 0) ">")))
(if (null KC) (setq KC KCo) (setq KCo KC))

(COMMAND "UCS" "W")
(SETQ LTH (SSLENGTH SS))
(SETQ DEM 0)
(WHILE (< DEM LTH)
(PROGN
(SETQ DS (ENTGET (SSNAME SS DEM)))
(SETQ KDL (CDR (ASSOC 0 DS)))
(IF (= "DIMENSION" KDL)
(PROGN
(SETQ PT10 (CDR (ASSOC 10 DS)))
(SETQ PT11 (CDR (ASSOC 11 DS)))
(SETQ PT13 (CDR (ASSOC 13 DS)))
(SETQ PT14 (CDR (ASSOC 14 DS)))
(SETQ N70 (CDR (ASSOC 70 DS)))
(IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
(PROGN
(SETQ GOCY (ANGLE PT10 PT14))
(SETQ GOCX (+ GOCY (/ PI 2)))
)
)
(SETVAR "OSMODE" 0)
(setq PT (POLAR PT10 GOCY KC))
(SETQ PTI (POLAR PT GOCX 2))
(SETQ PT13I (POLAR PT13 GOCY 2))
(SETQ PT14I (POLAR PT14 GOCY 2))
(SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
(SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
(SETQ O13 (ASSOC 13 DS))
(SETQ O14 (ASSOC 14 DS))
(SETQ N13 (CONS 13 PT13N))
(SETQ N14 (CONS 14 PT14N))
(SETQ DS (SUBST N13 O13 DS))
(SETQ DS (SUBST N14 O14 DS))
(ENTMOD DS)
)
)
(SETQ DEM (+ DEM 1))
)
)
(COMMAND "UCS" "P")
(SETVAR "CMDECHO" CMD)
(SETVAR "OSMODE" OSM)
(setq *error* OLDERR) ; Restore old *error* handler
(PRINC)
)

bạn ơi

sau khi ap load kh

a kh ông sử dụng bằng lệnh cd được tại sao???

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ạn ơi

sau khi ap load kh

a kh ông sử dụng bằng lệnh cd được tại sao???

Chào bạn 'hoa tam that'

Bạn nhấn nút Reply bài viết của Tue_NV chép hết code của Tue_NV (không sót nhé) về chạy là được.

Chức năng download Lisp file của diễn đàn bị lỗi mấy hôm nay.

 

Ôi! ngày nào cũng viết lại điệp khúc này đến mỏi tay mất thui :tongue2: :D

Mọi người trong Ban Quản trị có ai biết sửa lại Chức năng download Lisp file thì xin hãy sửa lại cho anh em sử dụng được dễ dàng hơn.

 

Cảm ơn.

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ạn thử dùng cách Fixdim này xem sao. Mình hầu như không phải dùng đến cutdim bao giờ (đỡ tốn công cắt cheers.gif )

ScreenHunter_01_Feb_17_0738.gif

ScreenHunter_02_Feb_17_0740.gif

Đúng cái cách này mình đang cần, cảm ơn rất nhiều, sáng giờ search toàn ra lisp, nhưng mình không thích xài. Thanks again!

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  

×