Chuyển đến nội dung
Diễn đàn CADViet

790312

Thành viên
  • Số lượng nội dung

    229
  • Đã tham gia

  • Lần ghé thăm cuối

  • Ngày trúng

    1

Bài đăng được đăng bởi 790312


  1. 9 giờ trước, Danh Cong đã nói:

    Đúng là có lúc lisp lỗi thật, đúng như bác NTDNV nói trên. Lỗi thì do anh KetXu chưa xử lý chế độ bắt điểm khi viết lisp thôi.

    Tôi sửa thêm 1 số chỗ về bắt điểm nữa, bạn có thể tải về kiểm tra:

     

    
    
    
    
    ;; free lisp from cadviet.com
    ;; this lisp was downloaded from https://www.cadviet.com/forum/topic/47541-đã-xong-lisp-vẽ-pline-mũi-tên-2-đầu/
    	(defun c:sline (/ loop p1 p2 lstPnt)   
    	 (grtext -1 "Free from Cadviet.com @Ketxu")
    	 (setq lstPnt '())
    	 (if (not asize) (setq asize 1))      
    	 (if (not PThk)  (setq PThk 0.01))                 
    	 (defun GETR (val msg / tm)
    	   (setq tm (getreal (strcat msg " <" (rtos val 2 4) ">: ")))
    	   (cond ((= (type tm) 'REAL) (eval tm))
    	         ((= tm nil) (eval val))
    	         (t (princ "\007 *error* Nh\U+1EADp sai lo\U+1EA1i d\U+1EEF li\U+1EC7u") (eval val)) ) )
    	 (defun loop ()
    	   (cond ((and(setq p2 (getpoint p1 "\n\U+0110i\U+1EC3m ti\U+1EBFp theo : "))(setq lstPnt (append (list p2) lstPnt))) (command "non" p2) 
    	                                    (setq p0 p1) (setq p1 p2) (loop))
    	         ( t (command "u" (polar p1 (angle p1 p0) asize)
    	                      "w" (/ asize 3) 0.0 "non" p1 ""))))
    	 (setq asize (getr asize "\nK\U+00EDch th\U+01B0\U+1EDBc m\U+0169i t\U+00EAn :"))
    	 (setq PThk  (getr PThk "\n B\U+1EC1 r\U+1ED9ng PLine :"))
    	 (setq p1 (getpoint "\n\U+0110i\U+1EC3m b\U+1EAFt \U+0111\U+1EA7u : "))
    	 (setq lstPnt (append (list p1) lstPnt))
    	 (command "pline" "non" p1 "w" 0.0 0.0)
    	 (setq p2 (getpoint p1 "\n\U+0110i\U+1EC3m ti\U+1EBFp theo : "))
    	 (setq lstPnt (append (list p2) lstPnt))
    	 (command "w" 0.0 (/ asize 3) (polar p1 (angle p1 p2) asize) 
    	          "w" PThk PThk "non" p2)
    	 (setq p1 p2)
    	 (loop)
    	(if  (ST:Geo-ListLinear lstPnt)
    	(foreach pt (cdr (vl-remove (last lstPnt) lstPnt)) (ST:Entmake-Circle pt 50))
    	)
    	 (eval "Done")
    	)
    	(defun ST:Geo-Linear ( p1 p2 p3 fuzz)
    	 (
    	   (lambda ( a b c )
    	     (or
    	       (equal (+ a B) c fuzz)
    	       (equal (+ b c) a fuzz)
    	       (equal (+ c a) b fuzz)
    	     )
    	   )
    	   (distance p1 p2) (distance p2 p3) (distance p1 p3)
    	 )
    	)
    	(defun ST:Geo-ListLinear (lst / tmp)
    	(setq i 2)
    	(cond ((and (= (length lst) 3)(ST:Geo-Linear(car lst)(cadr lst)(caddr lst) 1e-8))(setq tmp T))
    	    (T (while (and (< i (1- (length lst)))
    	            (setq tmp (ST:Geo-Linear (nth 0 lst)(nth 1 lst) (nth (setq i (1+ i)) lst) 1e-8)))
    	            tmp
    	        )
    	    )
    	)
    	tmp
    	)
    	(defun ST:Entmake-Circle ( Pt Rad )(entmakex (list '(0 . "CIRCLE") (cons 10 pt)(cons 40 Rad))))v
    

    Cảm ơn bác nhiều. Lisp chạy ok, nhưng nếu để nó là một file thì OK, còn nếu mình đưa nó vào chung file với một lisp khác thì nó k chạy. Mong các bác bỏ tí thời gian check giùm mình với.

    ;; ===========SAP XEP DIM CACH DEU NHAU==============================
    
    (defun c:sd ()
      (defun ss2ent	(ss / sodt index lstent)
        (setq
          sodt  (cond
    	      (ss (sslength ss))
    	      (t 0)
    	    )
          index 0
        )
        (repeat sodt
          (setq ent	   (ssname ss index)
    	    index  (1+ index)
    	    lstent (cons ent lstent)
          )
        )
        (reverse lstent)
      )
      (defun hoanh_newerror	(msg)
        (if	(and (/= msg "Function cancelled")
    	     (/= msg "quit / exit abort")
    	)
          (princ (strcat "\n" msg))
        )
        (done)
      )
      ;;----------
      (defun init ()
        (setq
          HOANH_CMD	     (getvar "CMDECHO")
          HOANH_OLDERROR *error*
          *error*	     hoanh_newerror
    
        )
        (setvar "CMDECHO" 0)
        (command ".undo" "BE")
      )
      ;;----------
      (defun done ()
        (command ".redraw")
        (command ".undo" "E")
        (if	HOANH_CMD
          (setvar "CMDECHO" HOANH_CMD)
        )
        (if	HOANH_OLDERROR
          (setq *error* HOANH_OLDERROR)
        )
        (princ)
      )
      ;;----------
    
      (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
      )
    
      (defun textdimheight (ent / tmp)
        (command ".copy" ent "" (list 0.0 0.0 0.0) "@")
        (command ".explode" (entlast) "")
        (setq tmp (cdr (assoc 40 (entget (entlast)))))
        (command ".erase" "p" "")
        tmp
      )
      (defun phia (p1 p2 p3 / x1 y1 z1 x2 y2 z2 x3 y3 z3)
        (setq
          x1  (car p1)
          y1  (cadr p1)
          z1  (caddr p1)
          x2  (car p2)
          y2  (cadr p2)
          z2  (caddr p2)
          x3  (car p3)
          y3  (cadr p3)
          z3  (caddr p3)
          tmp (+ (* (- x1 x2) x3)
    	     (* (- y1 y2) y3)
    	     (* (- z1 z2) z3)
    	  )
        )
        (cond
          ((= tmp 0.0) 0.0)
          (t (/ tmp (abs tmp)))
        )
      )
      (defun khoangcachdim (p1 ent goc / tt p2 A B D)
        (setq tt (entget ent)
    	  p2 (cdr (assoc 10 tt))
    	  B  (cdr (assoc 50 tt))
    	  A  (angle p1 p2)
    	  D  (distance p1 p2)
        )
        (* (* D (sin (- A B))) (phia p1 (polar p1 goc 1.0) p2))
      )
    
      (defun phanloai (ent)
        (setq
          kc   (khoangcachdim pgoc ent goc)
          loai (fix (/ kc heightdimgoc 0.93))
        )
        (cons loai ent)
      )
    
      (init)
      (princ "\nSap xep dim © CADViet.com")
      (while (not (setq entgoc (car (entsel "\nSelect orginal dimension: "))))
      )
      (setq
        ttgoc	 (entget entgoc)
        p13goc	 (cdr (assoc 13 ttgoc))
        pgoc	 (cdr (assoc 10 ttgoc))
        goc		 (cdr (assoc 50 ttgoc))
        heightdimgoc (textdimheight entgoc)
        ssd		 (ssget	(list
    			  (cons 0 "DIMENSION")
    			  (cons -4 "<OR")
    			  (cons 70 32)
    			  (cons 70 64)
    			  (cons 70 96)
    			  (cons 70 128)
    			  (cons 70 160)
    			  (cons 70 196)
    			  (cons 70 224)
    			  (cons -4 "OR>")
    			  (cons -4 "<OR")
    			  (cons 50 goc)
    			  (cons 50 (+ goc pi))
    			  (cons 50 (- goc pi))
    			  (cons -4 "OR>")
    			)
    		 )
        lstd	 (ss2ent ssd)
        lstd	 (mapcar 'phanloai lstd)
        lstlevel	 nil
      )
      (foreach pp lstd
        (if	(not (member (car pp) lstlevel))
          (setq lstlevel (append lstlevel (list (car pp))))
        )
      )
      (setq	lstlevel    (vl-sort lstlevel '(lambda (x1 x2) (< x1 x2)))
    	lstam	    nil
    	lstduong    nil
    	lstamtmp    nil
    	lstduongtmp nil
      )
      (foreach pp lstlevel
        (if	(< pp 0.0)
          (setq lstam (append lstam (list pp)))
        )
        (if	(> pp 0.0)
          (setq lstduong (append lstduong (list pp)))
        )
      )
      (setq index 0)
      (foreach pp (reverse lstam)
        (setq
          index    (1+ index)
          lstamtmp (append lstamtmp (list (cons pp index)))
        )
      )
      (setq
        lstam lstamtmp
        index 0
      )
      (foreach pp lstduong
        (setq
          index	  (1+ index)
          lstduongtmp (append lstduongtmp (list (cons pp index)))
        )
      )
      (setq lstduong lstduongtmp)
      (setq lstlevel (append lstduong lstam (list (cons 0.0 0))))
    
      (setq kcdimstandard (* 2.8 heightdimgoc))
      (foreach pp lstd
        (setq plht (car pp))
        (progn
          (setq
    	kcdimht	   (khoangcachdim pgoc (cdr pp) goc)
    	duongthu   (cdr (assoc plht lstlevel))
    	heso	   (cond
    		     ((/= 0 kcdimht)
    		      (abs (* (/ kcdimstandard kcdimht) duongthu))
    		     )
    		     (t 0.0)
    		   )
    	diemchenht (cdr (assoc 10 (entget (cdr pp))))
    	pmoi	   (polar pgoc
    			  (angle pgoc diemchenht)
    			  (* heso (distance pgoc diemchenht))
    		   )
          )
    
          (cdim (cdr pp) p13goc pmoi)
        )
      )
      (done)
    )
    (princ)
    )
    
    ;; free lisp from cadviet.com
    ;; this lisp was downloaded from https://www.cadviet.com/forum/topic/47541-đã-xong-lisp-vẽ-pline-mũi-tên-2-đầu/
    	(defun c:sline (/ loop p1 p2 lstPnt)   
    	 (grtext -1 "Free from Cadviet.com @Ketxu")
    	 (setq lstPnt '())
    	 (if (not asize) (setq asize 1))      
    	 (if (not PThk)  (setq PThk 0.01))                 
    	 (defun GETR (val msg / tm)
    	   (setq tm (getreal (strcat msg " <" (rtos val 2 4) ">: ")))
    	   (cond ((= (type tm) 'REAL) (eval tm))
    	         ((= tm nil) (eval val))
    	         (t (princ "\007 *error* Nh\U+1EADp sai lo\U+1EA1i d\U+1EEF li\U+1EC7u") (eval val)) ) )
    	 (defun loop ()
    	   (cond ((and(setq p2 (getpoint p1 "\n\U+0110i\U+1EC3m ti\U+1EBFp theo : "))(setq lstPnt (append (list p2) lstPnt))) (command "non" p2) 
    	                                    (setq p0 p1) (setq p1 p2) (loop))
    	         ( t (command "u" (polar p1 (angle p1 p0) asize)
    	                      "w" (/ asize 3) 0.0 "non" p1 ""))))
    	 (setq asize (getr asize "\nK\U+00EDch th\U+01B0\U+1EDBc m\U+0169i t\U+00EAn :"))
    	 (setq PThk  (getr PThk "\n B\U+1EC1 r\U+1ED9ng PLine :"))
    	 (setq p1 (getpoint "\n\U+0110i\U+1EC3m b\U+1EAFt \U+0111\U+1EA7u : "))
    	 (setq lstPnt (append (list p1) lstPnt))
    	 (command "pline" "non" p1 "w" 0.0 0.0)
    	 (setq p2 (getpoint p1 "\n\U+0110i\U+1EC3m ti\U+1EBFp theo : "))
    	 (setq lstPnt (append (list p2) lstPnt))
    	 (command "w" 0.0 (/ asize 3) (polar p1 (angle p1 p2) asize) 
    	          "w" PThk PThk "non" p2)
    	 (setq p1 p2)
    	 (loop)
    	(if  (ST:Geo-ListLinear lstPnt)
    	(foreach pt (cdr (vl-remove (last lstPnt) lstPnt)) (ST:Entmake-Circle pt 50))
    	)
    	 (eval "Done")
    	)
    	(defun ST:Geo-Linear ( p1 p2 p3 fuzz)
    	 (
    	   (lambda ( a b c )
    	     (or
    	       (equal (+ a B) c fuzz)
    	       (equal (+ b c) a fuzz)
    	       (equal (+ c a) b fuzz)
    	     )
    	   )
    	   (distance p1 p2) (distance p2 p3) (distance p1 p3)
    	 )
    	)
    	(defun ST:Geo-ListLinear (lst / tmp)
    	(setq i 2)
    	(cond ((and (= (length lst) 3)(ST:Geo-Linear(car lst)(cadr lst)(caddr lst) 1e-8))(setq tmp T))
    	    (T (while (and (< i (1- (length lst)))
    	            (setq tmp (ST:Geo-Linear (nth 0 lst)(nth 1 lst) (nth (setq i (1+ i)) lst) 1e-8)))
    	            tmp
    	        )
    	    )
    	)
    	tmp
    	)
    	(defun ST:Entmake-Circle ( Pt Rad )(entmakex (list '(0 . "CIRCLE") (cons 10 pt)(cons 40 Rad))))

     


  2. 59 phút trước, Danh Cong đã nói:

    ( command "layer" "m" "SO4. Remark" "c" "6" """) có vấn đề.

    Bạn thử thay 3 dấu nháy kép """ thành 2 dấu nháy kép "" xem :)))

    Mình thay như bạn nói thì lisp nó k chạy luôn.

    (command "layer" "m" "S04. REMARK" "c" "6" "")

     

    Lisp gốc trong link bên dưới, bài thứ 12 điếm từ trên xuống cũng bị lỗi như vậy, vẽ vài lần đầu ok, sau khi sử dụng qua lệnh khác rồi quay lại thì nó chỉ vẽ mũi tên tại một đầu. Mong các bác tìm lỗi giúp. Thanks.

     


  3. Chào các bác, 

    E có 1 lisp để vẽ mũi tên hai đầu đoạn thẳng của bác kietxu. Khi đánh lệnh sử dụng lần đầu thì OK, nhưng đánh lệnh lần hai để vẽ đoạn thẳng khác thì nó chỉ vẽ mũi tên cho một đầu đoạn thẳng. Mong các bác sửa lỗi này giúp. Cảm ơn rất nhiều.

    (defun c:sq (/ p1 p2 lstPnt)   
      (setq lstPnt '())
      (if (not asize) (setq asize 550))      
      (if (not PThk)  (setq PThk 0))                 
      (defun GETR (val msg / tm)
        (setq tm (getreal (strcat msg " <" (rtos val 2 4) ">: ")))
        (cond ((= (type tm) 'REAL) (eval tm))
              ((= tm nil) (eval val))
              (t (princ "\007 *error* Wrong Input Start Point") (eval val)) ) )
      (defun loop ()
        (cond ((and(setq p2 (getpoint p1 "\nNext Point : "))(setq lstPnt (append (list p2) lstPnt))) (command p2) 
                                         (setq p0 p1) (setq p1 p2) (loop))
              ( t (command "u" (polar p1 (angle p1 p0) asize)
                           "w" (/ asize 3) 0.0 p1 ""))))
      (setq asize (getr asize "\nArrowheads Size :"))
      (setq PThk  (getr PThk "\n PLine Width :"))
      (setq p1 (getpoint "\nStart Point : "))
      (setq lstPnt (append (list p1) lstPnt))
      (command "layer" "m" "S04. REMARK" "c" "6" """")
      (command "pline" p1 "w" 0.0 0.0)
      (setq p2 (getpoint p1 "\nNext Point : "))
      (setq lstPnt (append (list p2) lstPnt))
      (command "w" 0.0 (/ asize 3) (polar p1 (angle p1 p2) asize) 
               "w" PThk PThk p2)
      (setq p1 p2)
      (loop)
    (if  (ST:Geo-ListLinear lstPnt)
        (foreach pt (cdr (vl-remove (last lstPnt) lstPnt)) (ST:Entmake-Circle pt 125))
    )
      (eval "Done")
    )
    (defun ST:Geo-Linear ( p1 p2 p3 fuzz)
      (
        (lambda ( a b c )
          (or
            (equal (+ a B) c fuzz)
            (equal (+ b c) a fuzz)
            (equal (+ c a) b fuzz)
          )
        )
        (distance p1 p2) (distance p2 p3) (distance p1 p3)
      )
    )
    (defun ST:Geo-ListLinear (lst / tmp)
    (setq i 2)
    (cond ((and (= (length lst) 3)(ST:Geo-Linear(car lst)(cadr lst)(caddr lst) 1e-8))(setq tmp T))
            (T (while (and (< i (1- (length lst)))
                    (setq tmp (ST:Geo-Linear (nth 0 lst)(nth 1 lst) (nth (setq i (1+ i)) lst) 1e-8)))
                    tmp
                )
            )
    )
    tmp
    )
    (defun ST:Entmake-Circle ( Pt Rad )(entmakex (list '(0 . "CIRCLE") (cons 10 pt)(cons 40 Rad))))

     


  4. Chào các bác,

    Khi sử dụng lisp trong civil 3d, có những lisp sử dụng đc và những lisp không sử dụng đc. Chẳng hạn như lisp tạo lệnh tắt bên dưới:

    (defun c:dd () (command "ddim" ))

    Khi gõ lệnh dd thì hiện dòng thông báo: 

    DD must be called from within another command

    Bác nào biết cách sửa, chỉ giúp mình với. Thanks.


  5. Chào các bạn, thường chia một đoạn thẳng thành các đoạn nhỏ có kích thước tuỳ chọn bằng Div hoặc Me. Giờ mình muốn chia như vậy nhưng k bằng cách chọn đường thẳng mà pick chọn 2 đầu của đoạn thẳng thì làm thế nào? Ví dụ đoạn thẳng dài 1000m nhưng mình muốn chia đoạn 20m trong 1000m đó thôi thì pick đầu và cuối của đoạn 20 và nó chia đoạn đó thôi. Chân thành cảm ơn.


  6. Vào lúc 3/2/2019 tại 06:14, duy782006 đã nói:

    Sau khi gỏ lệnh REVCLOUD thì cad nó thông báo như sau:

    Specify start point or [Arc length/Object/Style] <Object>:

    Nguyên tắc dòng lệnh của cad mà nó như thế thì là lệnh này có các lựa chọn khác thông thường theo quy ước:

    -Trong cái ngoặc vuông [  ] là các định dạng, gỏ cái chữ in hoa rối enter sẽ cho định dạng cái chức năng đó cụ thể ở đây gỏ A enter thì nó hỏi chiều dài của cung tròn.

    -Cái trong ngặc nhọn <  > là mặc định chỉ cần enter là nhận luôn cụ thể ở đây hoặc gỏ O enter hoặc gỏ enter không thì nó cho chọn 1 pline cỏ sẳn để chuyển thành cái loằng ngoằn gọi là đám mây.

    Cái này thì e hiểu bác ah, nhưng e k biết cách vẽ đám mây mà có nhiều bán kính khác nhau do mình chọn ấy bác. Thanks.


  7. 19 phút trước, Danh Cong đã nói:

    + Thử cái này nhé:

    (defun c:DC (/ ANG ANG1 L P1 P2)
      (setq P1 (getpoint "\nPick first Point:")
        P2 (getpoint P1 "\nPick second Point:")
        Ang (angle P1 P2))
      (while (and (setq Ang1 (getreal "\nInput Angle:"))
              (setq L (getreal "\nInput  Lenght:")))
             (command ".line" "non" P1 "non" (polar P1 (- Ang (* pi (/ Ang1 180))) L) ""))
      (princ))

    Được rồi bác, bước đầu sử dụng ok, nếu có lỗi gì e sẽ phiền bác. Cảm ơn bác nhiều, chúc bác đầu tuần có nhiều niềm vui.


  8. 1 giờ} trướ}c, Doan Van Ha đã nói:

    Vẽ "rất nhiều" mà đề bài không có thông số nào xác định "rất nhiều"?

    e chưa nghĩ ra được cách nếu nhập số lượng điểm thì sẽ xử lý như thế nào? nên e chỉ cần lisp để nhập chiều dài và góc cho từng đoạn thẳng một bác ah. Bác có ý tưởng gì để xử lý vấn đề này nhanh hơn không? Cảm ơn bác nhiều.


  9. 18 giờ trước, Danh Cong đã nói:

    + Thật ra thì tôi nghĩ thế này:

    Thay vì lisp y xì như chủ thớt nghĩ, giải pháp khác là có 1 phím bật chế độ UCS dành cho Object. Vẽ hay thao tác xong thì lại bấm về UCS world. Thế là tiện cả đôi đường, nhà nhà đều vui @@

    Còn nếu bạn muốn viết đúng như những gì bạn yêu cầu thì cũng đơn giản thôi. Nhưng để mai tôi viết cho ( Hiện thời đang dùng điện thoại @@)

    Để e nói rõ bài toán của e thế này bác ah:

    E có sẵn một đoạn thẳng, và e phải vẽ rất nhiều điểm (lúc nào cũng trên 100). Những điểm này sẽ cách điểm đầu hoặc cuối đoạn thẳng một khoảng cách và góc hợp với đoạn thẳng. Nên vẽ theo cách thông thường thì rất mất thời gian. E cũng chưa nghĩ ra cách nào để có thể vẽ nhanh hơn cái nội dung e nhờ các bác viết lisp như trên. Nên e nhờ các bác viết giùm e cái lisp như sau:

    1. Gõ lệnh

    2. Chọn đường thẳng bất kỳ

    3. Vẽ bên trái hay phải của đoạn thẳng được chọn

    4. Chọn điểm bắt đầu đoạn thẳng.

    5. Nhập chiều dài đoạn thẳng cần vẽ.

    6. Nhập góc hợp bởi đoạn thẳng được chọn và đoạn thẳng cần vẽ.

    Kết thúc lệnh.

    Rất mong nhận được sự giúp đỡ của bác.


  10. 9 phút trước, Botot đã nói:

    Chủ thớt quên điều kiện điểm khởi đầu của đoạn thẳng, vì sẽ có 2 hướng ngược nhau có cùng giá trị góc. Mà cái líp này dùng vào việc gì, có đáng để viết không?

    Đúng vậy, sau bước 3 sẽ là: chọn điểm bắt đầu rồi tới bước 4. Lisp này mình cần vì mình cần nhập rất nhiều điểm xuất phát từ 1 điểm nhưng có chiều dài và góc khác nhau. Mong nhận được sự giúp đỡ của mọi người.


  11. 27 phút trước, Danh Cong đã nói:

    Bạn thử code này xem, do gõ trên điện thoại nên tôi ko chắc code đúng.

    (defun c:DC ()

    (Command "ucs" "object" pause "")

    (Command ".line" pause pause "")

    (Princ))

    không được bác ah, bác xem lại phần em viết ở trên rồi kiểm tra lại giúp e với. Thanks.


  12. Chào mọi người, nhờ mọi người viết giùm một lisp như sau:

    1. Gõ lệnh

    2. Chọn đường thẳng bất kỳ

    3. Vẽ bên trái hay phải của đoạn thẳng được chọn

    4. Nhập chiều dài đoạn thẳng cần vẽ.

    5. Nhập góc hợp bởi đoạn thẳng được chọn và đoạn thẳng cần vẽ.

    Kết thúc lệnh.

    Chân thành cảm ơn trước.

     

×