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

Pro ơi Giúp em về lisp Cut Dim!

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

Em upload lisp CUT DIM được rồi nhưng khi gõ lệnh CD thì trên con trỏ chuột lại không thấy có lệnh đó xuất hiện mà lại là  cdate, cdorder, cdyndisplaymode. Lúc trước em đã dùng lệnh cutdim được rồi nhưng không hiểu sao lần này không hiệu quả. Rất mong các pro giúp em!!!

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 upload lisp CUT DIM được rồi nhưng khi gõ lệnh CD thì trên con trỏ chuột lại không thấy có lệnh đó xuất hiện mà lại là  cdate, cdorder, cdyndisplaymode. Lúc trước em đã dùng lệnh cutdim được rồi nhưng không hiểu sao lần này không hiệu quả. Rất mong các pro giúp em!!!

Hề hề hề,

Bạn đã load lisp vào bản vẽ chửa???

Nếu đã load rồi thì cứ gõ CD rồi enter xem nó ra cái giống oẳn tà roằn gì thì copy và post nó lên mọi người sẽ bắt bệnh cho.....

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 upload lisp CUT DIM được rồi nhưng khi gõ lệnh CD thì trên con trỏ chuột lại không thấy có lệnh đó xuất hiện mà lại là  cdate, cdorder, cdyndisplaymode. Lúc trước em đã dùng lệnh cutdim được rồi nhưng không hiểu sao lần này không hiệu quả. Rất mong các pro giúp em!!!

 

Chắc vấn đề ở chổ load lisp của bạn đó...nếu lisp load thành công thì tên lệnh CD sẽ hiện ra cho bạn chọn, còn nếu ko thấy nghĩa là lisp chưa load được roài...

 

Có cái lisp chức năng tương tự share cho bạn...cái này đi lang thang gõ Google có được đó...cho bạn 3 lựa chọn (cắt chân, cắt đường thể hiện, cắt chân và đường thể hiện)

 

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

 

(defun myerror (s) ; If an error (such as CTRL-C) occurs

; while this command is active...

(cond

((= s "quit / exit abort") (princ))

((/= s "Function cancelled") (princ (strcat "\nError: " s)))

)

(setvar "cmdecho" CMD) ; Restore saved modes

(setvar "osmode" OSM)

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

(princ)

)

 

 

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

)

;=======================================================

;Cat duong DIM

(DEFUN C:CX (/ 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)

 

(defun myerror (s) ; If an error (such as CTRL-C) occurs

; while this command is active...

(cond

((= s "quit / exit abort") (princ))

((/= s "Function cancelled") (princ (strcat "\nError: " s)))

)

(setvar "cmdecho" CMD) ; Restore saved modes

(setvar "osmode" OSM)

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

(princ)

)

 

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

)

 

;=======================================================

;Cat chan va duong DIM

(defun c:cdx (/ entdt dcat1 dcat2 sodimsua index sodt ssdt tt)

(defun cdim (entdt pchan pduong / tt old10

old13 old14 new10 new13 new14 p10n

p13n p14n p10o p13o p14o gocduong

gocchan pchanb pduongb loaidim

)

(defun chanvuonggoc (ph p1 p2 / ptemp pkq goc)

(setq

goc (+ (angle p1 p2) (/ pi 2.0))

ptemp (polar ph goc 1000.0)

pkq (inters ph ptemp p1 p2 nil)

)

pkq

)

(setq

tt (entget entdt)

old10 (assoc '10 tt)

old13 (assoc '13 tt)

old14 (assoc '14 tt)

p10o (cdr old10)

p13o (cdr old13)

p14o (cdr old14)

loaidim (logand (cdr (assoc '70 tt)) 7)

gocduong (cond

((= loaidim 1) (angle p13o p14o))

((= loaidim 0) (cdr (assoc '50 tt)))

(t nil)

)

pchan (cond

(pchan (list (car pchan) (cadr pchan) 0.0))

(t pchan)

)

pduong (cond

(pduong (list (car pduong) (cadr pduong) 0.0))

(t pduong)

)

 

)

(if gocduong

(progn

(if pchan

(setq

pchanb (polar pchan gocduong 1000.0)

p13n (chanvuonggoc (list (car p13o) (cadr p13o) 0.0) pchan pchanb)

p14n (chanvuonggoc (list (car p14o) (cadr p14o) 0.0) pchan pchanb)

new13 (cons 13 p13n)

new14 (cons 14 p14n)

tt (subst new13 old13 tt)

tt (subst new14 old14 tt)

)

)

(if pduong

(setq

pduongb (polar pduong gocduong 1000.0)

p10n (chanvuonggoc (list (car p10o) (cadr p10o) 0.0) pduong pduongb)

new10 (cons 10 p10n)

tt (subst new10 old10 tt)

)

)

(entmod tt)

)

)

gocduong

)

(setq ssdt (ssget '((0 . "DIMENSION")))

dcat1 (getpoint "\n\U+0110i\U+1EC3m c\U+1EAFt chân DIM: ")

dcat2 (getpoint "\n\U+0110i\U+1EC3m c\U+1EAFt \U+0111\U+01B0\U+1EDDng DIM: ")

 

dcat1 (cond

(dcat1 (trans dcat1 1 0))

(t nil)

)

dcat2 (cond

(dcat2 (trans dcat2 1 0))

(t nil)

)

sodt (sslength ssdt)

index 0

sodimsua 0

)

(repeat sodt

(setq entdt (ssname ssdt index)

index (1+ index)

tt (entget entdt)

 

)

(if (cdim entdt dcat1 dcat2)

(setq sodimsua (1+ sodimsua))

)

)

(prompt (strcat "\n*** \U+0110ã ch\U+1EC9nh s\U+1EEFa [" (itoa sodimsua) "] Dimension ***"))

(princ)

(princ)

)

 

nguồn: http://www.tramx.vn/Baiviet.aspx?id=Mr.Cùi422201312006

  • 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
Vào lúc 22/4/2013 tại 03:29, avi612 đã nói:

 

Chắc vấn đề ở chổ load lisp của bạn đó...nếu lisp load thành công thì tên lệnh CD sẽ hiện ra cho bạn chọn, còn nếu ko thấy nghĩa là lisp chưa load được roài...

 

Có cái lisp chức năng tương tự share cho bạn...cái này đi lang thang gõ Google có được đó...cho bạn 3 lựa chọn (cắt chân, cắt đường thể hiện, cắt chân và đường thể hiện)

 

 


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

PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)

 

(defun myerror (s) ; If an error (such as CTRL-C) occurs

; while this command is active...

(cond

((= s "quit / exit abort") (princ))

((/= s "Function cancelled") (princ (strcat "\nError: " s)))

)

(setvar "cmdecho" CMD) ; Restore saved modes

(setvar "osmode" OSM)

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

(princ)

)

 

 

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

)

;=======================================================

;Cat duong DIM

(DEFUN C:CX (/ 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)

 

(defun myerror (s) ; If an error (such as CTRL-C) occurs

; while this command is active...

(cond

((= s "quit / exit abort") (princ))

((/= s "Function cancelled") (princ (strcat "\nError: " s)))

)

(setvar "cmdecho" CMD) ; Restore saved modes

(setvar "osmode" OSM)

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

(princ)

)

 

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

)

 

;=======================================================

;Cat chan va duong DIM

(defun c:cdx (/ entdt dcat1 dcat2 sodimsua index sodt ssdt tt)

(defun cdim (entdt pchan pduong / tt old10

old13 old14 new10 new13 new14 p10n

p13n p14n p10o p13o p14o gocduong

gocchan pchanb pduongb loaidim

)

(defun chanvuonggoc (ph p1 p2 / ptemp pkq goc)

(setq

goc (+ (angle p1 p2) (/ pi 2.0))

ptemp (polar ph goc 1000.0)

pkq (inters ph ptemp p1 p2 nil)

)

pkq

)

(setq

tt (entget entdt)

old10 (assoc '10 tt)

old13 (assoc '13 tt)

old14 (assoc '14 tt)

p10o (cdr old10)

p13o (cdr old13)

p14o (cdr old14)

loaidim (logand (cdr (assoc '70 tt)) 7)

gocduong (cond

((= loaidim 1) (angle p13o p14o))

((= loaidim 0) (cdr (assoc '50 tt)))

(t nil)

)

pchan (cond

(pchan (list (car pchan) (cadr pchan) 0.0))

(t pchan)

)

pduong (cond

(pduong (list (car pduong) (cadr pduong) 0.0))

(t pduong)

)

 

)

(if gocduong

(progn

(if pchan

(setq

pchanb (polar pchan gocduong 1000.0)

p13n (chanvuonggoc (list (car p13o) (cadr p13o) 0.0) pchan pchanb)

p14n (chanvuonggoc (list (car p14o) (cadr p14o) 0.0) pchan pchanb)

new13 (cons 13 p13n)

new14 (cons 14 p14n)

tt (subst new13 old13 tt)

tt (subst new14 old14 tt)

)

)

(if pduong

(setq

pduongb (polar pduong gocduong 1000.0)

p10n (chanvuonggoc (list (car p10o) (cadr p10o) 0.0) pduong pduongb)

new10 (cons 10 p10n)

tt (subst new10 old10 tt)

)

)

(entmod tt)

)

)

gocduong

)

(setq ssdt (ssget '((0 . "DIMENSION")))

dcat1 (getpoint "\n\U+0110i\U+1EC3m c\U+1EAFt chân DIM: ")

dcat2 (getpoint "\n\U+0110i\U+1EC3m c\U+1EAFt \U+0111\U+01B0\U+1EDDng DIM: ")

 

dcat1 (cond

(dcat1 (trans dcat1 1 0))

(t nil)

)

dcat2 (cond

(dcat2 (trans dcat2 1 0))

(t nil)

)

sodt (sslength ssdt)

index 0

sodimsua 0

)

(repeat sodt

(setq entdt (ssname ssdt index)

index (1+ index)

tt (entget entdt)

 

)

(if (cdim entdt dcat1 dcat2)

(setq sodimsua (1+ sodimsua))

)

)

(prompt (strcat "\n*** \U+0110ã ch\U+1EC9nh s\U+1EEFa [" (itoa sodimsua) "] Dimension ***"))

(princ)

(princ)

)

 

nguồn: http://www.tramx.vn/Baiviet.aspx?id=Mr.Cùi422201312006

mình rất cần lips này mà không thấy dùng đc, bạn đăng lên bị lỗi minh dùng cutdim mà xếp không cho bảo không kiểm tra đc chân đim

  • Vote giảm 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ạ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  

×