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

Tất cả hoạt động

Luồng cập nhật tự động luồng này     

  1. Hôm nay
  2. DuongTrungHuy

    [TÌM CAO NHÂN] LISP THỐNG KÊ ĐA GIÁC PLINE

    Chào nhé. ...Ủa bài toán đã được Bạn Doan viết xong rồi mà. Bạn thấy ý tưởng mình có ổn ko (lập đa giác phụ). Thật ra trong các thông số hình dạng cũng có 1 thông số Momen tĩnh là khá tốt kèm theo chu vi và diện tích của đa giác. Nhưng Momen thì khi quay đa giác lại làm Momen khác đi nên ko dùng được. Bạn có ý gì về bài toán này ko. Chào @ketxu
  3. Doan Van Ha

    [TÌM CAO NHÂN] LISP THỐNG KÊ ĐA GIÁC PLINE

    Ket: Xem các post từ đầu thấy chỉ có ạnh người tuyết là đưa ra lý thuyết thuyết phục nhất >> giải theo hướng này là OK 100%, còn các g/p khác chỉ hên xui. Việc g/q code theo người tuyết cũng không quá khó đâu.
  4. DuongTrungHuy

    khoảng cách ngắn nhất giữa 2 đường parabol trong 3D

    Phương trình Parabol 3D Mình viết Phương trình Parabol 3D qua 3 điểm giúp các bạn thiết kế đường dây điện. 3 điểm là điểm 2 đầu và độ võng giữa dây f0 (defun cdrr(ds1 / dsbo) (setq dsbo1 (reverse (cdr (reverse ds1))))) (Defun cPTdt(d1 d2 / x1 x2 y1 y2) (setq x1 (car d1) x2 (car d2) y1 (cadr d1) y2 (cadr d2)) (Cond ((< (abs (- x1 x2)) 0.00000001)(setq aDT 1.0 bDT 0.0 cDT (- 0 x1))) ((< (abs (- y1 y2)) 0.00000001)(setq aDT 0.0 bDT 1.0 cDT (- 0 y1))) ((< 1 2)(setq aDT (/ (- y2 y1) (- x2 x1)) bDT -1.0 cDT (- y1 (* x1 aDT)))) ) (list aDT bDT cDT) ) (Defun Mid0(A B) (setq diemgiua (list (* 0.5 (+ (car a)(car b))) (* 0.5 (+ (cadr a)(cadr b))) (* 0.5 (+ (caddr a)(caddr b))))) ) (Defun cPTParabol() (setq A1 (- x2 (/ (* x2 x2) x1)) A2 (- x3 (/ (* x3 x3) x1)) B1 (- 1.0 (/ (* x2 x2) (* x1 x1))) B2 (- 1.0 (/ (* x3 x3) (* x1 x1))) C1 (- (* y1 (/ (* x2 x2) (* x1 x1))) y2) C2 (- (* y1 (/ (* x3 x3) (* x1 x1))) y3) hsC (/ (- (* C1 A2) (* C2 A1)) (- (* B2 A1) (* B1 A2))) hsB (/ (- (- 0.0 C1) (* B1 hsC)) A1) hsA (/ (- y1 (* hsB x1) hsC) x1 x1) ; y = hsA*x^2 + hsB*x + hsC ) ) (Defun Parabol3D(dA dB f0 / dM deltax x11 y11 z11) ;dA, dB: 2 diem diem 3D ;f0 : do vong day (setq dM (Mid0 dA dB) dM (list (car dM) (cadr dM) (- (caddr dM) f0)) x1 (car dB) y1 (caddr dB) x2 (car dM) y2 (caddr dM) x3 (car dA) y3 (caddr dA) ) (cPTParabol) (cPTdt (cdrr dA) (cdrr dB)) (command "Undo" "be") (setvar "blipmode" 0)(setvar "cmdecho" 0)(Setvar "osmode" 0) (setq x11 (car dA) deltax (/ (- (car dA) (car dB)) 100.0)) (command "3dpoly" dA) (While (> x11 (+ (car dB) deltax)) (setq x11 (- x11 deltax) y11 (/ (- 0.0 cDT (* x11 aDT)) bDT) z11 (+ (* hsA x11 x11) (* hsB x11) hsC)) (command (list x11 y11 z11)) ) (command dB "")(command "Undo" "e") ) (Parabol3D (list 27951.4921 44595.2922 22500.0) (list 15635.8650 -83451.7633 22500.0) 20000.0) (Parabol3D (list 81745.4114 -26617.1599 27500.0) (list -361.0598 -13645.4723 22500.0) 15000.0)
  5. ketxu

    khoảng cách ngắn nhất giữa 2 đường parabol trong 3D

    E search cho nhanh chứ e cũng có biết con này là con voi hay con gà đâu ^^ Ý gửi gắm ở đây là có thể search nhanh đc mà :))
  6. Cái này bạn search các bài viết chèn Block vào tâm hình (Tâm Bounding Box hoặc Mass Center/ Geometry Center) rồi thay hàm chèn bằng hàm viết text thôi mà. Chịu khó chút đi để thấy tự tay mình làm ra thành quả nó vui lắm
  7. ketxu

    [TÌM CAO NHÂN] LISP THỐNG KÊ ĐA GIÁC PLINE

    Bài toán này hay quá. Có time nhất định đưa vào Toolbox :o Lót dép hóng
  8. snowman.hms

    khoảng cách ngắn nhất giữa 2 đường parabol trong 3D

    @ketxu lại đem dao mổ voi ra giết gà rồi kk
  9. text là do mình nhập ạ. e có viết 1 cái plugin cho bên rhino tính năng này. nhưng ông làm cùng lại dùng cad mà lười chuyển phần mềm nên e nhờ các bác trên này ạ. đây là mẫu e làm bên rhino https://www.youtube.com/watch?v=q-87gKNuSDU
  10. ketxu

    khoảng cách ngắn nhất giữa 2 đường parabol trong 3D

    ;; http://www.theswamp.org/index.php?topic=23170.60 ;; By Joe Burke, Charles Alan Butler and VovKa at theswamp. ;; Bug reports may be sent to me (Joe Burke) directly at ;; lowercase@hawaii.rr.com ;; Version 1.0 - 5/28/2008. ;; Find the minimum distance between two vlax-curve objects. ;; Supported object types: line, circle, arc, ellipse, polyline and spline. ;; Shortcut: MD ;; Notes version 1.0: ;; If two lines are parallel they are reported as such. ;; If the Z values of the two points found are not equal, ;; report at command line Z1 = x Z2 = x. When the objects ;; are not coplanar, the apparent minimum distance will ;; usually differ from the actual minimum distance. ;; There's an option to add a line on the current layer ;; drawn between the two closest points. ;; The object types selected are reported at the command line. ;; Version history: ;; Version 1.2 beta - 5/31/2008 ;; Added the MinDistLine routine. Shortcut: MDL. ;; Allows the user to place a line between the last two closest points ;; calculated by MinDist after it ends. This avoids having to choose ;; whether a line is placed within MinDist itself. The idea is MinDist ;; is primarily a measuring tool. As such a minimum distance line is ;; rarely needed. Note, If the line drawn by MDL is off-screen it is ;; selected, otherwise not. ;; Version 1.3 beta - 6/8/2008 ;; Added support for nested objects in blocks and xrefs. ;; Added MD:GetXrefs, MD:GetObject, MD:UnlockLayers, MD:RelockLayers ;; and MD:XMark sub-functions. ;; The first object selected is highlighted until the the second ;; object is selected similar to the fillet tool. If the first object ;; is contained in an xref it is not highlighted. Rather a temporary ;; X mark is placed where the object was selected to indicate the ;; the object is contained in an xref. ;; Version 1.4 beta - 6/10/2008 ;; Added error checking for non-uniformly scaled blocks. ;; Version 1.4a - 6/21/2008 ;; Bug fix for 2D (heavy) and 3D polylines. ;; Bug fix to avoid error if a dimension is selected. ;; Revised report when the Z values of the two points are not the same. ;; Version 1.5 beta - 6/30/2008 ;; Added support for object types point, ray and xline. ;; If a ray or xline is involved the search for closest point along its ;; length is limited by the current view. The search extends beyond the ;; limits of the current view by a factor of approximately two both ways. ;; Version 1.5a beta - 7/1/2008 ;; Fixed a bug with rays and xlines. ;; Both MD and MDL now report when both closest points are off screen. ;; Revised the MDL routine so it will not draw a very short or zero ;; length line. Added report for this case. ;; Added miscellaneous error checking. ;; Version 1.5b beta - 7/2/2008 ;; Enter at select object prompt ends the routine. ;; Revised the UniformScale sub-routine to allow operation with objects ;; nested in dimensions. Thanks to Steve Doman. ;; Version 1.5c beta - 7/14/2008 ;; Revised the fuzz factor in the MD:UniformScale function. ;; Version 1.5d - 8/24/2008 ;; Added vla-StartUndoMark and vla-EndUndoMark. An undo after the ;; routine would restore a copied object. ;; Added function MinDistMove (MDM). Moves a selection set from ;; the first MinDist point to the second. The first object selected ;; within MinDist is the first point. ;; Version 1.5e - 9/6/2008 ;; Fixed a minor bug which effected the MinDistMove function when ;; a ray or xline is involved. ;; Version 1.5f - 10/1/2008 ;; Added Copy version of move. Shourtcut MDC. ;; Both MinDist and MinDistLine use the following two functions. ;; Returns the coordinates of the current view, lower left and upper right. ;; Works in a rotated view. Returns a list of two 2D UCS points. (defun MD:GetScreenCoords ( / ViwCen ViwDim ViwSiz VptMin VptMax) (setq ViwSiz (/ (getvar "VIEWSIZE") 2.0) ViwCen (getvar "VIEWCTR") ViwDim (list (* ViwSiz (apply '/ (getvar "SCREENSIZE"))) ViwSiz ) VptMin (mapcar '- ViwCen ViwDim) VptMax (mapcar '+ ViwCen ViwDim) ) (list VptMin VptMax) ) ;end ;; Arguments: ;; p1 - WCS or UCS point which defines the first corner of area ;; p2 - WCS or UCS point which defines the second corner of area ;; pt - point translated to UCS. ;; Returns: T if pt falls within area. (defun MD:PointInside (p1 p2 pt / xval yval) (and pt (setq pt (trans pt 0 1) xval (car pt) yval (cadr pt) ) (< (min (car p1) (car p2)) xval (max (car p1) (car p2))) (< (min (cadr p1) (cadr p2)) yval (max (cadr p1) (cadr p2))) ) ) ;end (defun c:MinDist ( / *error* doc blocks units obj1 obj2 typ1 typ2 pkpt p2 sc div fuzz d bd len inc idx resdist dellst res1 res2 pts locklst interflag z1 z2 diff temp reverseflag MD:Wait MD:NormalAngle MD:ParallelObjects MD:Pick MD:GetXrefs MD:UnlockLayers MD:RelockLayers MD:GetObject MD:XMark MD:UniformScale MD:XlineOrRay) ;; global vars: *mdp1* and *mdpt* (vl-load-com) (defun *error* (msg) (cond ((not msg)) ((wcmatch (strcase msg) "*QUIT*,*CANCEL*")) (T (princ (strcat "\nError: " msg))) ) (setvar "lunits" units) (if (and obj1 (not (vlax-erased-p obj1)) ) (vla-highlight obj1 acFalse) ) ;; Objects may be switched when a ray or xline ;; is involved. (if (and obj2 (not (vlax-erased-p obj2)) ) (vla-highlight obj2 acFalse) ) (MD:Wait 0.2) (redraw) (foreach x dellst (vla-delete x)) (MD:RelockLayers locklst) (vla-EndUndoMark doc) (princ) ) ;end error ;;; START SUB-FUNCTIONS ;;; ;; Unlock locked layers. ;; Argument: document object. ;; Returns a list of layer objects which were locked, ;; or nil if none are locked. ;; Typically the function filters out xref layers, ;; but not in this case. (defun MD:UnlockLayers (doc / laylst) (vlax-for x (vla-get-Layers doc) (if (eq :vlax-true (vla-get-lock x)) (progn (setq laylst (cons x laylst)) (vla-put-lock x :vlax-false) ) ) ) laylst ) ;end ;; Argument: a list of layer objects from UnlockLayers above. ;; Use vl-catch-all-apply in case a locked ;; layer was deleted in the calling function. (defun MD:RelockLayers (lst) (foreach x lst (vl-catch-all-apply 'vla-put-lock (list x :vlax-true)) ) ) ;end (defun MD:GetXrefs (blklst / lst) (if (vl-every '(lambda (x) (= (type x) 'ENAME)) blklst) (foreach blk (mapcar 'vlax-ename->vla-object blklst) (if (vlax-property-available-p blk 'Path) (setq lst (cons blk lst)) ) ) ) (reverse lst) ) ;end (defun MD:Wait (seconds / stop) (setq stop (+ (getvar "DATE") (/ seconds 86400.0))) (while (> stop (getvar "DATE")) (princ) ) ) ;end ;; Argument: angle in radians, any number including negative. ;; Returns: normalized angle in radians between zero and (* pi 2) (defun MD:NormalAngle (a) (if (numberp a) (angtof (angtos a 0 14) 0)) ) ;end ;; Returns T if two lines, rays or xlines are parallel. (defun MD:ParallelObjects (obj1 obj2 fuzz / ang1 ang2) (if (eq "AcDbLine" (vlax-get obj1 'ObjectName)) (setq ang1 (MD:NormalAngle (vlax-get obj1 'Angle))) (setq ang1 (MD:NormalAngle (angle (vlax-get obj1 'BasePoint) (vlax-get obj1 'SecondPoint))) ) ) (if (eq "AcDbLine" (vlax-get obj2 'ObjectName)) (setq ang2 (MD:NormalAngle (vlax-get obj2 'Angle))) (setq ang2 (MD:NormalAngle (angle (vlax-get obj2 'BasePoint) (vlax-get obj2 'SecondPoint))) ) ) (or (equal ang1 ang2 fuzz) (equal ang1 (MD:NormalAngle (+ pi ang2)) fuzz) (equal ang2 (MD:NormalAngle (+ pi ang1)) fuzz) (equal (MD:NormalAngle (+ pi ang1)) (MD:NormalAngle (+ pi ang2)) fuzz) ) ) ;end (defun MD:Pick (msg / typlst e obj typ scflag) (setq typlst '("AcDbLine" "AcDbArc" "AcDbCircle" "AcDbEllipse" "AcDbPolyline" "AcDb2dPolyline" "AcDb2dVertex" "AcDb3dPolyline" "AcDb3dPolylineVertex" "AcDbSpline" "AcDbRay" "AcDbXline" "AcDbPoint")) (setvar "errno" 0) (while (or (not (setq e (nentselp msg))) (not (setq obj (vlax-ename->vla-object (car e)))) (not (vl-position (setq typ (vlax-get obj 'ObjectName)) typlst)) (and (cadddr e) (not (apply 'and (mapcar 'MD:UniformScale (last e)))) (setq scflag T) ) ) (cond ((= 52 (getvar "errno")) (exit) ) ((not e) (princ "\nMissed pick. ") ) (scflag (princ "\nNon-uniformly scaled block detected, try again. ") (setq scflag nil) ) (typ (princ (strcat "\n " (substr typ 5) " selected, try again. ")) (setq typ nil) ) ) ) (if (or (eq "AcDb2dVertex" typ) (eq "AcDb3dPolylineVertex" typ) ) (setq obj (vlax-ename->vla-object (cdr (assoc 330 (entget (car e))))) typ (vlax-get obj 'ObjectName) ) ) ;; Used to mark xref. Point passed to MD:XMark. ;; The variable is local in the main routine. (setq pkpt (cadr e)) (if (= 2 (length e)) (list obj typ) (list obj typ (caddr e) (cadddr e)) ) ) ;end ;; Argument: UCS point. ;; Returns: nil (defun MD:XMark (pt / len p1 p2 p3 p4) (setq len (/ (getvar "viewsize") 75.0) p1 (polar pt (* pi 0.3) len) p2 (polar pt (* pi 0.7) len) p3 (polar pt (* pi 1.3) len) p4 (polar pt (* pi 1.7) len) ) (grdraw p1 p3 7) (grdraw p2 p4 7) ) ;end ;; Test for uniformly scaled block reference. (defun MD:UniformScale (obj / x y z) (if (= (type obj) 'ENAME) (setq obj (vlax-ename->vla-object obj)) ) ;; Added 7/2/2008. (if (wcmatch (vlax-get obj 'ObjectName) "*Dimension") T (progn (setq x (vlax-get obj 'XScaleFactor) y (vlax-get obj 'YScaleFactor) z (vlax-get obj 'ZScaleFactor) ) (and (equal (abs x) (abs y) 1e-12) (equal (abs y) (abs z) 1e-12) ) ) ) ) ;end ;; Argument: a list returned by MD:Pick. ;; Returns: a vla-object. The first object in list if the object is ;; not nested. Otherwise a transformed copy of the object. (defun MD:GetObject (lst / blkref blk obj) (cond ;; Object is not nested. ((= 2 (length lst)) (setq obj (car lst)) ) ;; Object is nested in an xref. Copy it within the xref database. ;; The owner is not specified within the CopyObjects function. ((setq blkref (car (MD:GetXrefs (last lst)))) (setq blk (vla-item blocks (vlax-get blkref 'Name))) (setq obj (car (vlax-invoke (vlax-get blk 'XRefDatabase) 'CopyObjects (list (car lst))))) (vla-transformby obj (vlax-tmatrix (caddr lst))) (setq dellst (cons obj dellst)) ;; Grdraw X mark on xref where it was selected ;; if it is the first object selected. (if (not obj1) (MD:XMark pkpt)) ) ;; Object is nested in a block reference. ;; Copy it from the block and highlight in the main ;; routine if it is the first object selected. (T (setq obj (car (vlax-invoke doc 'CopyObjects (list (car lst)) (vlax-get (vla-get-ActiveLayout doc) 'Block)))) (vla-transformby obj (vlax-tmatrix (caddr lst))) (setq dellst (cons obj dellst)) ) ) obj ) ;end ;; Argument: ray or xline vla-object. ;; Returns: a list of two 3D WCS points beyond where the object ;; intersects the edges of the current view. ;; The base point of a ray may be returned depending on its ;; location relative to the view. ;; Revised 6/30/2008. (defun MD:XlineOrRay (obj / basept zval secpt lst p pts p2 d typ expt1 expt2 MD:RectanglePts MD:RectangleList MD:FarthestPoint) ;;;; Sub-functions... ;; Pass two points representing a diagonal. ;; Returns a list of four UCS points. (defun MD:RectanglePts (p1 p2) (list p1 (list (car p2) (cadr p1) (caddr p1)) ; revised 6/27/2008 p2 (list (car p1) (cadr p2) (caddr p2)) ; should be OK within context, testing ) ) ;end (defun MD:RectangleList ( p1 p2 / rpts) (setq rpts (MD:RectanglePts p1 p2)) (mapcar '(lambda (a b) (list a b)) rpts (append (cdr rpts) (list (car rpts)))) ) ;end (defun MD:FarthestPoint (pt ptlst / x dist res) (setq x 0) (foreach p ptlst (setq dist (distance p pt)) (if (> dist x) (setq x dist res p) ) ) res ) ;end ;;;; End Sub-functions (setq basept (trans (vlax-get obj 'BasePoint) 0 1) zval (caddr basept) secpt (trans (vlax-get obj 'SecondPoint) 0 1) typ (vlax-get obj 'ObjectName) ) ;; two 2D UCS points (if (not sc) (setq sc (MD:GetScreenCoords)) ) (setq d (distance (car sc) (cadr sc)) sc (mapcar '(lambda (x) (append x (list zval))) sc) lst (MD:RectangleList (car sc) (cadr sc)) sc nil ) (foreach x lst (if (and (setq p (inters basept secpt (car x) (cadr x) nil)) (inters basept p (car x) (cadr x)) ) (setq pts (cons p pts)) ) ) (cond ((eq "AcDbXline" typ) (setq expt1 (polar (cadr pts) (angle (cadr pts) (car pts)) (* 2 d)) expt2 (polar (car pts) (angle (car pts) (cadr pts)) (* 2 d)) pts (reverse (list expt1 expt2)) ) ) ;; Revised 6/29/2008 ((eq "AcDbRay" typ) (setq expt1 (MD:FarthestPoint basept pts) expt1 (polar expt1 (angle basept secpt) (* 2 d)) pts (list basept expt1) ) ;; If base point is far away attempt to get a closer point ;; by testing for param at point. (setq expt2 (polar expt1 (angle secpt basept) (* 5 d))) (if (vlax-curve-getParamAtPoint obj (trans expt2 1 0)) (setq pts (reverse (list expt2 expt1))) ) ) ) ;; Trans UCS points to WCS as needed. (mapcar '(lambda (x) (trans x 1 0)) pts) ) ;end MD:XlineOrRay ;;; END SUB-FUNCTIONS ;;; ;;; START MAIN FUNCTION ;;; (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)) blocks (vla-get-Blocks doc) locklst (MD:UnlockLayers doc) units (getvar "lunits") ) (vla-StartUndoMark doc) (sssetfirst) (princ "\nSelect line, circle, arc, ellipse, polyline, spline, point, ray or xline.") (if (and (setq res1 (MD:Pick "\nFirst object: ")) (setq typ1 (cadr res1)) (princ (substr typ1 5)) (setq obj1 (MD:GetObject res1)) (not (vla-highlight obj1 acTrue)) ;; Get the screen coordinates here in case ;; the user pans between select objects. (if (or (eq "AcDbRay" typ1) (eq "AcDbXline" typ1) ) (setq sc (MD:GetScreenCoords)) T ) (setq res2 (MD:Pick "\nSecond object: ")) (setq typ2 (cadr res2)) (princ (substr typ2 5)) (setq obj2 (MD:GetObject res2)) ) (progn (cond ((equal obj1 obj2) (princ "\n Same object selected twice. ") (setq resdist 0.0 interflag T ) ) ((vlax-invoke obj1 'IntersectWith obj2 acExtendNone) (princ "\n Objects intersect. ") (setq resdist 0.0 interflag T ) ) ((and (eq typ1 "AcDbPoint") (eq typ2 "AcDbPoint") ) (setq *mdpt* (vlax-get obj1 'Coordinates) *mdp1* (vlax-get obj2 'Coordinates) d (distance *mdpt* *mdp1*) ) ) ((or (eq typ1 "AcDbPoint") (eq typ2 "AcDbPoint") ) (if (eq typ1 "AcDbPoint") (setq *mdpt* (vlax-get obj1 'Coordinates) *mdp1* (vlax-curve-getClosestPointTo obj2 *mdpt*) ) (setq *mdpt* (vlax-get obj2 'Coordinates) *mdp1* (vlax-curve-getClosestPointTo obj1 *mdpt*) ) ) (setq d (distance *mdpt* *mdp1*)) ) ;; Core stuff follows. (T (if (or (eq typ2 "AcDbRay") (eq typ2 "AcDbXline") ) ;; Reverse the objects and set a flag to reverse ;; the points later. (setq temp obj1 obj1 obj2 obj2 temp reverseflag T) ) (if (vlax-curve-getEndParam obj1) (setq len (vlax-curve-getDistAtParam obj1 (vlax-curve-getEndParam obj1))) ;; Obj1 is an xline or ray. (progn (setq pts (MD:XlineOrRay obj1) len (distance (car pts) (cadr pts)) idx1 (vlax-curve-getParamAtPoint obj1 (car pts)) idx2 (vlax-curve-getParamAtPoint obj1 (cadr pts)) ) (if (< idx1 idx2) (setq idx idx1) (setq idx idx2) ) ) ) (if (not idx) (setq idx 0)) ;; Number of divisions seems more than sufficient. (setq div 200 inc (/ len div) fuzz 1e-8 ) ;; Check first object for the closest point on second object. (setq bd (distance (setq *mdp1* (vlax-curve-getPointAtDist obj1 idx)) (vlax-curve-getClosestPointTo obj2 *mdp1*) ) ) (repeat (1+ div) (if (and (setq *mdp1* (vlax-curve-getPointAtDist obj1 idx)) (setq p2 (vlax-curve-getClosestPointTo obj2 *mdp1*)) ) (progn (setq d (distance *mdp1* p2)) (setq idx (+ idx inc)) (if (<= d bd) (setq bd d *mdpt* *mdp1*) ) ) ) ) ;; Refine the minimum distance as needed. Start with closest ;; point on first object. Bounce the closest points back and ;; forth between the two objects until delta distance is less ;; than the fuzz factor. (while (not (minusp (- (distance *mdpt* (setq *mdp1* (vlax-curve-GetClosestPointTo obj2 *mdpt*))) (setq d (distance *mdp1* (setq *mdpt* (vlax-curve-GetClosestPointTo obj1 *mdp1*)))) fuzz ) ) ) ) ) ) ;cond (if (and d *mdpt* *mdp1*) (progn (setq resdist d) ;; Added 9/6/2008. ;; If objects were reversed, reverse the points. (if reverseflag (setq temp *mdpt* *mdpt* *mdp1* *mdp1* temp) ) (grdraw (trans *mdpt* 0 1) (trans *mdp1* 0 1) -7 1) (if (and (or (eq "AcDbLine" typ1) (eq "AcDbXline" typ1) (eq "AcDbRay" typ1) ) (or (eq "AcDbLine" typ2) (eq "AcDbXline" typ2) (eq "AcDbRay" typ2) ) ) (if (MD:ParallelObjects obj1 obj2 1e-8) (if (and (eq "AcDbLine" typ1) (eq "AcDbLine" typ2)) (princ "\n Lines are parallel. ") (princ "\n Linear objects are parallel. ") ) ) ) ;; Check the Z values of the two closest points. (setq z1 (caddr *mdpt*) z2 (caddr *mdp1*) diff (abs (- z1 z2))) (cond ((equal z1 z2 1e-10)) ;; Units are scientific, decimal or engineering. ((< units 4) (princ (strcat "\n Z values of the points differ by: " (rtos diff units 10) ) ) ) ;; The maximum display accuracy of architectural or ;; fractional units is 0.00196. If diff is less, ;; change units to decimal. ((and (> units 3) (< diff 0.00196) ) (princ (strcat "\n Z values of the points differ by: " (rtos diff (setvar "lunits" 2) 10) ) ) (setvar "lunits" units) ) ;; Otherwise display diff in architectural or fractional units. (T (princ (strcat "\n Z values of the points differ by: " (rtos diff) ) ) ) ) ;cond ) ;progn ) ;if ) ;progn ) ;if (if (and resdist *mdpt* *mdp1*) (progn (princ (strcat "\n Distance: " (rtos resdist))) (if (not interflag) (progn (setq sc (MD:GetScreenCoords)) (if (or (MD:PointInside (car sc) (cadr sc) *mdpt*) (MD:PointInside (car sc) (cadr sc) *mdp1*) ) (princ " Enter MDL to place minimum distance line. ") (princ " Off screen points. MDL to place minimum distance line.") ) ) ) ) (princ "\n Could not calculate minimum distance. ") ) (*error* nil) ) ;end MinDist ;shortcut (defun c:MD () (c:MinDist)) ;; Added 8/24/2008. ;; Allows a selection set to be moved from the first MinDist point to ;; the second MinDist point. So the order of object selection within ;; MinDist is important in terms of which way the selection set will move. ;; IOW, if the user anticipates using this function after MD, the first object ;; selected determines move from point. The second object selected is ;; the move to point. (defun c:MinDistMove ( / *error* doc osm ss) (defun *error* (msg) (cond ((not msg)) ((wcmatch (strcase msg) "*QUIT*,*CANCEL*")) (T (princ (strcat "\nError: " msg))) ) (setvar "osmode" osm) (vla-EndUndoMark doc) (princ) ) ;end error (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-StartUndoMark doc) (setq osm (getvar "osmode")) (if (and *mdpt* *mdp1* (setq ss (ssget))) (progn (setvar "osmode" 0) ;; Added trans 8/27/2008. (command "._move" ss "" (trans *mdpt* 0 1) (trans *mdp1* 0 1)) ) (princ "\nNothing selected or minimum distance points not set. ") ) (*error* nil) ) ;end ;shortcut (defun c:MDM () (c:MinDistMove)) (defun c:MinDistCopy ( / *error* doc osm ss) (defun *error* (msg) (cond ((not msg)) ((wcmatch (strcase msg) "*QUIT*,*CANCEL*")) (T (princ (strcat "\nError: " msg))) ) (setvar "osmode" osm) (vla-EndUndoMark doc) (princ) ) ;end error (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-StartUndoMark doc) (setq osm (getvar "osmode")) (if (and *mdpt* *mdp1* (setq ss (ssget))) (progn (setvar "osmode" 0) ;; Added trans 8/27/2008. (command "._copy" ss "" (trans *mdpt* 0 1) (trans *mdp1* 0 1)) ) (princ "\nNothing selected or minimum distance points not set. ") ) (*error* nil) ) ;end ;shortcut (defun c:MDC () (c:MinDistCopy)) ;; Revised 6/30/2008. ;; Draw minimum distance line on the current layer. (defun c:MinDistLine ( / d sc ss) (cond ((not (and *mdpt* *mdp1*)) (princ "\n Minimum distance points not found. Run MD and then MDL to draw line.") ) ((and (setq d (distance *mdpt* *mdp1*)) ;(print d) ;testing (< d 1e-5) ) (princ "\n Minimum distance points are too close together. ") ) (T (entmake (list '(0 . "LINE") (cons 8 (getvar "clayer")) (cons 10 *mdpt*) (cons 11 *mdp1*) ) ) (setq sc (MD:GetScreenCoords)) (if (or (MD:PointInside (car sc) (cadr sc) *mdpt*) (MD:PointInside (car sc) (cadr sc) *mdp1*) ) (princ "\n Minimum distance line placed. ") (progn (princ "\n Minimum distance line placed off screen and selected. ") (sssetfirst nil (setq ss (ssget "L"))) ) ) ) ) (princ) ) ;end MinDistLine ;shortcut (defun c:MDL () (c:MinDistLine))
  11. pdhuyxn2

    Lisp Ghép Text Cần Giúp Đỡ

    Nhờ các bác trên diễn đàn chỉnh sửa Lisp này Nối text theo thứ tự các text được chọn thành chuỗi têxt mới sang Vị trí chọn. Các text cũ vẫn giữ nguyên.
  12. Ơ thế rồi cái Text nó là cái j bạn :o
  13. ketxu

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    Đây là cách cháu lấy : (setq data (entget d)) def1 (_2d (cdr (assoc 13 data))); definition point 1 def2 (_2d (cdr (assoc 14 data))); definition point 2 ar2 (_2d (cdr (assoc 10 data))); arrow-point/end of dimension line at extension line 2 dimdir ; direction of dimension line (if (= (vla-get-ObjectName (vlax-ename->vla-object d)) "AcDbAlignedDimension"); aligned Dimension always has (50 . 0.0), so (angle def1 def2); then - direction between definition points (cdr (assoc 50 data)); else - direction of dimension line ) )
  14. Hôm qua
  15. Khoảng cách Tiếp thị liên kết trong thương mại điện tử Việt Nam đến thế giới[/b] Trái ngược với sự đóng cửa của những sàn thương nghiệp điện tử Việt Nam, kế hoạch khái quát thương mại điện tử 2016-2020 được xem là những góc nhìn đầy lạc quan cùng Tiếp thị liên kết.Những ngày cách đây không lâu thương nghiệp điện (TMĐT) Việt Nam lại tiếp diễn đón chờ tin tức ko mấy vui về sự đóng cửa của sàn TMĐT 2 năm tuổi – Lingo gây ra các lo âu về sự đi xuống của TMĐT. tuy vậy theo Tìm hiểu của ông Nguyễn Thanh Hưng – chủ toạ hiệp hội TMĐT Việt Nam (VECOM) cho hay: “Sàn TMĐT chỉ là một phần trong TMĐT, không hề là tấm gương phán ánh toàn ngành nghề TMĐT”. ngành TMĐT dường như vẫn đang tiếp diễn đà vững mạnh của mình với Kế hoạch đại quát thương mại điện tử giai đoạn 2016-2020, mục đích 30% dân số tham dự tậu sắm trực tuyến với trị giá mua hàng trực tuyến trung bình đạt 350 USD/người/năm. biện pháp Tiếp thị liên kết cho TMĐT?[/b] Sự phát triển ko dừng đấy đang kéo theo sự vững mạnh của không ít những nền móng và phương án hỗ trợ nhằm thúc đẩy TMĐT lớn mạnh. Trên toàn cầu Affiliate marketing (Tiếp thị liên kết) chừng như không còn xa lạ khi 40% doanh thu sàn Amazon tới từ tiếp thị liên kết Việt Nam, Tiếp thị kết liên mới chỉ thực thụ hình thành khi có sự xuất hiện của những Affiliate network (nền tảng Tiếp thị liên kết trung gian) cung cấp tới thị phần một biện pháp “marketing ngược” – đơn vị chỉ mất chi phí khi đã nắm chắc kết quả và tránh được rủi ro trong giai đoạn đầu cơ. Affiliate đã từ khi năm 2009 nhưng mãi tới năm 2016, Tiếp thị kết liên mới chính thức được công nhận và biết đến với vị thế của một phương pháp marketing tuyệt vời của mình duyệt kết quả các sàn TMĐT lớn nhỏ như Adayroi, Tiki, Lazada… nhận được, họ đã ko ngần ngại sử dụng như một giải pháp hàng đầu tối ưu giá cả marketing lẫn chi phí nhân sự. Sàn TMĐT với mô phỏng kinh doanh tổng hợp đơn thuần là một phần trong miếng bánh TMĐT, còn không ít công ty trong mọi ngành như điện tử – điện máy, cá tính, giáo dục, du lịch, nhà cung cấp, ngân hàng… Cũng đã khởi đầu tham gia sân chơi Affiliate để gia tăng cường cơ hội tiếp cận khách hàng cũng như thấu hiểu các thị phần ngách khó nhằn thay vì tự tìm kiếm đơn vị đã tận dụng nguồn lực thị trường với các Publisher (Nhà phân phối) “sở hữu” khách hàng sẽ giúp các công ty đạt doanh số bán hữu hiệu hơn, quý khách có dịp tiếp cận các sản phẩm tốt. Cũng cần điểm qua rằng sự tăng trưởng Tiếp thị liên kết hiện nay có một phần đóng góp ko nhỏ của những Nhà cung cấp được gây dựng trong khoảng các màng lưới Affiliate. Họ là các Start-up kỹ thuật đã quen với môi trường Affiliate nước ngoài và san sớt mô hình ở Việt Nam hay các con người mê say ý tưởng vun đắp cổng thông báo với hàng triệu traffic mỗi ngày và áp dụng Affiliate để hỗ trợ TMĐT Việt Nam. Mỗi Nhà cung ứng mang một điểm hay, một sắc màu khác nhau tạo nên thị trường Affiliate cạnh tranh và quyết tâm vững mạnh. Khoảng cách nào cho những nền móng Tiếp thị liên kết?[/b] mặc dầu tận dụng được cơ hội của TMĐT, lôi kéo và hỗ trợ phát triển nhiều mô hình Start-up kỹ thuật tuy thế cần Quan sát thực tế Affiliate network tại Việt Nam vẫn tồn tại những khoảng cách nhất mực so với toàn cầu Hiện nay trên thị trường tồn tại cực nhiều nền tảng Affiliate đang hoạt động nhưng có thể thấy rằng số đông chúng đều thuộc mô hình “nhà đầu tư”, “nhà hợp tác”, chỉ có rất ít các nền tảng được trực tiếp vững mạnh tại Việt Nam. đồng thời một thắc mắc thường được đặt ra cho các sản phẩm “sinh sau đẻ muộn” là khoảng cách việc hình thành muộn là bổ ích hay không? Đây chừng như là một cạnh tranh nhưng cũng là một điểm thuận tiện cho những nền móng mới. Với các luật lệ ghi nhận đã được những hệ thống uy tín trên toàn cầu CJ, click Bank… chứng minh như last nhấn, re-orccured… là các điểm Affiliate Việt Nam dễ dàng thừa kế và ứng dụng. tuy vậy với sự sai khác về phương pháp, tính mới của Affiliate network thì phổ quát chuẩn mực chung chưa thực sự được thống nhất tại Việt Nam, gây ra những trở ngại cho những công ty muốn sử dụng Affiliate. Và cũng không thể loại trừ những khoảng cách trong việc cung ứng dụng cụ hỗ trợ Nhà cung ứng cũng và nhà sản xuất. ví như Affiliate trên toàn cầu thường xuyên ra mắt các dụng cụ mới trong hệ thống và cả những extension bên ngoài thì Affiliate network tại Việt Nam mới chỉ dừng lại ở việc đáp ứng các nhu cầu sơ khai về tạo link affiliate, ghi nhận, thống kê… những dụng cụ chúng ta sản xuất vẫn chưa thực thụ hỗ trợ được Nhà sản xuất trong công đoạn ra quyết định tiếp cận quý khách tỉ dụ như Báo cáo tới từng mặt hàng trong mỗi đơn hàng, Báo cáo bán chạy hay thời gian bán hàng hiệu quả… Đây được xem là những yếu điểm không phải nhỏ khi so sánh Việt Nam và thế giới. Kết[/b] tuy vậy với sự “non trẻ” của Affiliate network cũng như những tiềm năng của TMĐT, Việt Nam hoàn toàn có thể kỳ vọng rằng sẽ có những bộ lệ luật chung dành cho những sàn tiếp thị liên kết, tiện lợi cho tổ chức lớn, SME kết nối và tăng trưởng. Sẽ có thêm phổ quát các nền tảng để gia tăng tính cạnh tranh, tất yếu thị trường sẽ được đón nhận phổ thông các những Start-up kỹ thuật mới, các đơn vị TMĐT đạt 40% doanh thu từ Affiliate và khoảng cách đến thế giới sẽ nhanh chóng được thu hẹp.
  16. Chỉ cần ở nhà kích chuột cùng Lazada bạn đã kiếm được bội tiền các bạn đang muốn khiến tiếp thị kết liên cho Lazada nhưng việc đăng ký gặp rộng rãi khó khăn, các bạn ko biết hỏi người nào ko sao tiếp sau đây mình sẽ hướng dẫn tiếp thị liên kết Lazada các bạn nên xem phần của mình và thực hành từng thao tác sẽ tiện dụng hơn nhé. hướng dẫn đăng ký làm affiliate trực tiếp sở hữu Lazada thao tác một: tới trang đăng ký của Lazada Affiliate và nhấn vào “ĐẲNG KÝ”. bước hai: hoàn thành các thông tin cơ bản mà Lazada đề nghị. Số điện thoại: các bạn nhập số điện thoại chính mà các bạn đang sử dụng vào. Phần mã công nhận SMS: sẽ mang một tin nhắn chứa mã xác nhận tới điện thoại của bạn sau lúc điền số điện thoại vào. Mật khẩu: tối thiểu 6 ký tự bao gồm chữ và số. Sau lúc đã hoàn tất thông tin thì Cả nhà click vào “ĐẲNG KÍ”. bước 3: Nhập email vào và lấy mã xác nhận của Lazada. Ở thao tác này bạn cần nhập địa chỉ email mà các bạn đang sử dụng sau đó click vào nút “Send verification code” để lấy mã và nhập vào ô bên dưới. Sau lúc đã nhập xong thì các bạn hãy nhấn vào nút “Submit”. bước 4: Điền thông báo đăng ký vào form của Lazada. Member Type: chọn “individual” nếu như bạn là cá nhân, nếu bạn là đơn vị thì chọn “enterpise”. Nickname: Tên account của bạn. Salutation: Mr,Ms,Mrs (Ông/Cô/Bà). Birthday: Ngày sinh của các bạn. Country/Region of Residence or Incorporation: đất nước mà các bạn đang sinh sống. Region: Khu vực bạn sống (không đề nghị điền). Address: địa chỉ của bạn. District: thị xã thành. Sau khi các bạn đã điền hết thông báo vào rồi thì hãy nhấn vào nút “Next” để tiếp tục. bước 5: Điền thông tin thanh toán của các bạn. Beneficiary Name: Tên chủ trương mục nhà băng. Beneficiary Country/Region: Tên đất nước mà các bạn tạo account nhà băng. Beneficiary Address: liên hệ mà bạn đang ở. Beneficiary Phone number: Số điện thoại mà bạn đăng ký mở account nhà băng. Bank account number: Số trương mục nhà băng của bạn. Bank Name: Tên nhà băng. thao tác 6: sản xuất thêm thông tin về nguồn traffic mà bạn có. Vui lòng cung ứng URL của trang web bạn sẽ sử dụng để gửi lưu lượng truy nã cập: các bạn cần nhập URL trang web của mình. Lưu lượng tầm nã cập của các bạn là gì: Nguồn lưu lượng tróc nã cập của các bạn đến trong khoảng đâu. các bạn thường cho ra bao nhiêu doanh thu từ những chương trình khác mỗi tháng: Doanh thu trung bình của bạn mỗi tháng là bao nhiêu. Lý do chính của bạn lúc tham dự Chương trình hiệp tác viên Lazada: Lý do chính các bạn muốn làm cho Affiliate Marketing Lazada. các bạn đã nghe về chúng tôi trong khoảng ai hoặc ở đâu: các bạn đã nghe về chương trình cộng tác viên Lazada ở đâu. Sau khi đã điền hết thông báo vào rồi, bạn hãy click vào “By clicking Submit, I have read agree to” để đồng ý có điều khoản. rút cuộc hãy click vào “Submit”. Đăng ký thành công & đợi Lazada phản hồi trong vòng 5 ngày
  17. >>>> Hotline/ Zalo: 0911622059 ( Huyền ) Block máy nén Danfoss 3 Hp MTZ36JG4EVE gía bán cạnh tranh, hàng chính hãng, đảm bảo chất lượng, mới 100% Tư vấn nhiệt tình, giao hàng tận nơi nội thành TPHCM THÔNG SỐ KỸ THUẬT: - Tên máy: Block lạnh Danfoss Piston - Model: MTZ36JG4EVE - Công suất: 3 Hp ( 3 ngựa ) - Gas: R22, R404, R407,….. - Xuất xứ: France ( Pháp ) Thông tin liên hệ: Ms. Huyền — Tân Phú, TPHCM - Hotline: 0911622059
  18. Doan Nguyen Van

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    Dùng Vla-item để lấy thông tin đối tượng bên trong dim, tuy nhiên cái này phụ thuộc vào dimstyle, có dim không thể dùng cách này được
  19. Gọi 0911622059 để mua block ( lốc ) lạnh mới Danfoss 3 Hp MTZ36JG4EVE chính hãng. Lên cụm máy nén Danfoss cho kho lạnh >>>> Hotline/ Zalo: 0911622059 ( Huyền ) Email: sales.hcm2@ankaco.vn Block ( lốc ) lạnh — Cụm máy nén dàn ngưng Danfoss 3 hp MTZ36JG4EVE là sản phẩm được công ty ANKACO cung cấp, phân phối, lắp ráp với sản phẩm block, linh kiện chính hãng, mới 100%, chất lượng, giá cạnh tranh THÔNG SỐ KỸ THUẬT: - Tên máy: Block lạnh Danfoss Piston - Model: MTZ36JG4EVE - Công suất: 3 Hp ( 3 ngựa ) - Gas: R22, R404, R407,….. - Xuất xứ: France ( Pháp ) Thông tin liên hệ: - CÔNG TY AN KHANG — ANKACO — Địa chỉ : 61 Phan Đình Phùng, P. Tân Thành, Q. Tân Phú, TPHCM - Hotline: 0911622059 ( Huyền )
  20. quocmanh04tt

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    Mình thường làm: Dimrotated: Dxf_50 DimAligned: góc bởi 2 dxf 13 và 14
  21. Làm tiếp thị liên kết thông qua App tiếp thị liên kết nhanh gọn, tiện lợi Trong bài viết này, mình tổng hợp danh sách App tiếp thị liên kết tốt nhất tại Việt Nam. Bạn có thể tham khảo để tham gia kiếm tiền tiếp thị kết liên ngay trong khoảng bây giờ. 1. Leadbit - Mạng tiếp thị liên kết leadbit Leadbit.com là một màng lưới tiếp thị liên kết rất nổi danh trên toàn cầu, hoạt động giống như AccessTrade, MasOffer,… Mạng tiếp thị đa đất nước này có trụ sở tại London, Anh, hoạt động trên nền tảng đa quốc gia. Leadbit sở hữu rất nhiều sản phẩm chuyên về ngành nghề vốn đầu tư, thực phẩm chức năng, làm đẹp, sức khỏe tình dục, nguồn vốn finance. Như mình thấy thì tại Việt Nam, số lượng các Offers rất phổ biến, nhất là Leadbit mảng finance tài chính, sức khỏe. Như vậy như Adflex hay Adcombo, Leadbit chuyên về chuyển đổi dạng CPA, CPL và CPO. Một Về ưu điểm mà mình rất thích ở Leadbit lúc đăng ký là quá trình đăng ký Leadbit rất thuần tuý vì không đề nghị các bạn có website/blog. Hơn nữa, mức commission cho sản phẩm tại đây rất cao, có sản phẩm lên đến 20$. Các bạn có thể nhận thanh toán qua phổ biến hình thức như: chuyển khoản ngân hàng, thẻ Visa/ MasterCard, PayPal,… tham dự Leadbit ngay trong khoảng bây giờ để thỏa sức kiếm tiền tiếp thị liên kết ngay nhé! 2. MasOffer.com MasOffer cũng là một mạng tiếp thị liên kết tốt nhất và uy tín nhất, đang rất phát triển tại Việt Nam từ 2015 tới nay. MasOffer được xây dựng và phát triển bởi công ty CP Eway (đơn vị chủ quản của AdFlex, ePlay,…) và đã có hơn 10.000 Publisher tham gia kiếm tiền tại đây. Cách thức hoạt động và các mặt hàng tiếp thị tại đây cũng giống như ACCESSTRADE. các đối tác lớn đông đảo là của những dịch vụ thương mại điện tử lớn như: Lazada, Adayroi, Tiki, Nguyễn Kim, FPT cửa hàng, Vienthonga, Sendo,… bạn cũng có thể tạo link tiếp thị liên kết đến bất kỳ sản phẩm nào có trên các trang sản xuất sản phẩm nhà cung cấp là Advertiser (nhà cung cấp) của MasOffer. Những Ưu điểm lúc tham dự kiếm tiền tiếp thị kết liên với MasOffer: Sản phẩm nhiều và phong phú tụ hội vào 5 ngành nghề chính: vốn đầu tư, chăm sóc sắc đẹp, du lịch, giáo dục, điện tử. Đối tác uy tín của đa dạng nhà sản xuất lớn: Nguyễn Kim, Tiki, Adayroi, Lazada, Sendo, Zalora… Mức hoa hồng cao lên tới 20%. Tiến trình đăng ký xét phê chuẩn thành viên đơn thuần hơn AccessTrade, sau lúc được bằng lòng, thành viên có thể tức thời tham gia các chương trình tiếp thị. Thanh toán tự động. Hoả hồng sẽ được trả tiền tự động từ ngày 20-25 hàng tháng qua account ngân hàng lúc doanh thu của các bạn đặt 200.000đ trở lên. Thanh toán linh hoạt với 3 hình thức thanh toán: chuyển khoản ngân hàng, thẻ điện thoại, nhận tiền qua bưu điện. Hỗ trợ mau chóng 24/7, linh hoạt qua Email, Skype, điện thoại. Hệ thống điều hành thông minh chi tiết tới từng sản phẩm, nhà cung cấp. những công cụ giúp gia tăng chuyển đổi, tạo link, extension… hỗ trợ cho Publisher khá mạnh mẽ Giao diện thân thiện, dễ sử dụng. Cung ứng những dụng cụ PR banner hình ảnh thông minh. Thuận lợi lựa chọn bề ngoài, kích thước, tùy chỉnh thời gian hiển thị. Giao diện thân thiện với người dùng, chỉ cần nhìn qua biểu đồ được lập là bạn có thể biết được số đơn hàng được sắm trong ngày, số tiền hoa hồng thành công và đang được duyệt. Rất chi tiết và sinh động. Đây là điểm mình thích nhất khi tham gia tại đây. Ứng dụng last nhấn thay cho first click. Hoa hồng sẽ được tính cho người chung cục sắp nhất mà khách hàng nhấn vào link giới thiệu của người đó. Tuy vậy, Hơn thế nữa thì MasOffer cũng có một vài tránh được. Bạn phải chịu mức thuế thu nhập tư nhân khá cao 10%, nên khi bạn kiếm được phổ thông tiền thì mức thuế hơi chát 3. Civi.vn Civi System là 1 nền tảng Affiliate được vận hành trong khoảng năm 2015, được xây dựng thương hiệu bởi công ty Cổ phần Việt Tiến Mạnh (VTM Group). Cho đến nay, Civi System đã có hơn 2.000 quý khách tham dự tại Việt Nam, là nền móng tiếp thị liên kết uy tín to tại Nhật Bản và Đông Nam Á. Civi đang quyết tâm để trở thành mạng tiếp thị liên kết số 1 tại Việt Nam. Như vậy nên, việc bạn tham gia kiếm tiền Civi sớm sẽ là một lợi thế rất to. Sản phẩm tại đây cũng rất phổ biến nhưng phần đông là trong khoảng các cái tên tương đối mới, chưa có nhãn hàng lớn trên thị phần. Các doanh nghiệp tham gia phần lớn là những tổ chức vừa và nhỏ. Những ngành nghề như thương mại điện tử và du lịch hiện chưa có nhiều. Nhưng phổ thông loại sản phẩm ở đây ko có ở các màng lưới tiếp thị khác, Thế nên Civi cũng là một sự chọn lọc tốt trong một vài tình huống hoặc đối với ưu thế riêng của một số người. Có một điểm đặc biệt ấy là mức hoa hồng Civi tại thời điểm này đang được trả rất cao (20-50%). Đây có lẽ là mức hoả hồng cao nhất so với các mạng tiếp thị kết liên khác hiện tại.
  22. Doan Van Ha

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    vla-get-Measurement cho gía trị text, còn line?
  23. Doan Nguyen Van

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    Có thể lọc lấy Line dưới text, bằng Measurement của dim, có điểm Dxf 10 nằm trên
  24. Doan Van Ha

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    Nói chung cần lấy góc của ĐƯỜNG KÍCH THƯỚC, tưởng đơn giản nhưng hóa phức tạp: - Lấy mã 13 và 14: không ok nếu đường dóng khác độ dài nhau. - Lấy góc Text: không ok nếu text vuông góc đường kích thước.
  25. naturooo

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    Nhìn hình ví dụ thì góc text không đúng theo góc của 2 điểm extline của dim mà bác.
  26. Doan Nguyen Van

    Hỏi về Lisp (thuật toán, ý tưởng, coding,...)

    Bác có thể lấy Mã DXF 13 của dim, là point của extline1, nhưng đối với dim Rotated thì như thế vẫn chưa đủ để xác định góc, vì chân dim dài ngắn bất đồng, cần 1 vài thủ thuật khác để lấy góc, hoặc bác có thể đi đường tắt bằng cách lấy góc của text dim cho nhanh
  27. Cách tăng view tuyệt vời cho một video Marketing trên Youtube[/b] Chúng ta đều biết tầm quan yếu của việc tiếp thị sản phẩm và nhãn hàng trực tuyến. Một nửa thế giới hiện đang sử dụng internet và YouTube đã nổi lên như một trong những nền tảng được sử dụng và yêu thích nhất đối với các bạn internet. Đây là trang web được truy hỏi cập nhiều thứ 2 với hơn một tỷ người dùng. Thế nên, nếu như các bạn đang có kế hoạch bắt đầu kênh YouTube của mình hoặc ví như các bạn đã có nó nhưng ko biết cách tiếp thị liên kết trên youtube hoạt động, thì ở đây chúng tôi sẽ giúp các bạn. Làm thế nào để bắt đầu với tiếp thị YouTube? [/b] nếu như bạn đang tự hỏi rằng việc tạo một kênh YouTube và đặt các video đột nhiên sẽ đem lại tiền cho các bạn, rất tiếc phải nhắc, nhưng chiến lược của các bạn sẽ thất bại. Hiện tại, có hơn 50 triệu người tạo nội dung trên YouTube hoặc các bạn có thể gọi họ là đối thủ khó khăn của mình. Chẳng phải đông đảo kiên cố, nhưng đầy đủ trong số họ. Và đấy là một phần của chiến lược tiếp thị YouTube, cộng với khán giả của bạn, bạn cũng sẽ phải trông thấy đối thủ cạnh tranh của mình. Đây là cách bạn có thể khởi đầu với tiếp thị trên YouTube: Tổng hợp 11 Cách tăng cường view hữu hiệu cho một video Marketing trên Youtube‌[/b] 1. Bố cục trang bắt mắt[/b] Chính YouTube sẽ hướng dẫn các bạn các điều cơ bản; chúng tôi đang ở đây để hướng dẫn các bạn thêm một chút. Khi các bạn đã hoàn tất việc thiết lập kênh, hãy đảm bảo bạn tạo bố cục quyến rũ. Làm cho hồ sơ của các bạn rõ ràng về đơn vị và ngành nghề công nghiệp của bạn. Cho tới khi mọi người có ý tưởng rõ ràng về sản phẩm và dịch vụ của bạn, sẽ rất khó để thuyết phục họ đến qua kênh của các bạn. Yêu cầu lực lượng thiết kế đồ họa hoặc các bạn bè của bạn tạo một biểu ngữ YouTube tốt với dòng thẻ đại diện cho kênh và lĩnh vực của các bạn. 2. Tính nhất quán [/b] tất cả những chủ nhân kênh mới đều thất vẳng và mất điều kiện sau vài tuần lúc họ không nhận được đa dạng lượt xem. Nhận được hàng nghìn lượt xem trên kênh mới của bạn chẳng hề thuần tuý và điều ấy sẽ không xảy ra chỉ sau một đêm. Bạn sẽ phải nhất quán. Xuất bản ít nhất 2 video trong một tuần hoặc bạn có thể bắt đầu với một video mỗi tuần. Bạn có thể tăng cường số lượng sau, nhưng hãy bảo đảm các bạn cung cấp video cho khán giả thường xuyên. 3. Hiểu đối tượng của các bạn và nhắm mục đích đến họ[/b] Hiểu đối tượng là rất quan yếu cho bất kỳ thị trường; không vấn đề gì nếu như bạn như trên YouTube, Facebook, làm SEO hoặc tiếp thị ngoại tuyến. Biết đối tượng của bạn là điều buộc phải và điều như vậy cũng áp dụng cho YouTube. Bạn có thể tới studio của người tạo YouTube và xem những phân tích về kênh của mình. Bạn có thể theo dõi duy trì, tuổi, địa điểm, giới tính, thời kì trung bình và thị hiếu. Bạn sẽ có một ý tưởng về khán nhái của mình, điều này sẽ giúp các bạn tiến hành những video Tiếp đến phù hợp. 4. Hiểu đối thủ của bạn[/b] Hiểu những đối thủ cạnh tranh cũng quan trọng như hiểu đối tượng. Bạn phải biết các gì đối thủ của bạn đang làm và sản xuất cho người xem. Tần suất họ phát hành video của họ, thời lượng video, nội dung của họ, v.v. Bạn có thể truy bấp bênh YouTube của đối thủ khó khăn và giảm số lượt xem video của họ. Rà soát xem video nào đang nhận được phổ thông lượt xem hơn và video nào nhận được ít lượt xem hơn. Hãy xem qua phần bình luận của họ và đọc nếu như ai đấy đang buộc phải một chủ đề cụ thể. Xem nếu các bạn có thể làm một video về chủ đề được chỉ bởi người xem của họ. Rà soát các từ khóa của họ trong tiêu đề và biểu thị. 5. Dùng đúng trong khoảng khóa và thẻ[/b] Có thể các bạn đã nghe thấy tầm quan yếu của từ khóa đối với SEO, nhưng chúng cũng rất thiết yếu cho YouTube. Tìm từ khóa mọi người đang tìm kiếm và cách dễ nhất để sắm từ khóa là – Tự động hoàn tất YouTube. Nhưng nó là gì? Lúc các bạn tìm kiếm video trên YouTube và nhập một từ, YouTube sẽ hiển thị cho bạn thêm một vài trong khoảng khóa được yêu cầu. Bạn có thể chọn cái có liên quan và đặt nó vào tiêu đề, biểu hiện và thẻ của các bạn. Sử dụng phổ thông trong khoảng khóa giới thiệu như các thẻ. Bạn có thể dùng 1 vài dụng cụ để tìm thẻ mà đối thủ của bạn đang sử dụng. Hãy cứng cáp rằng các bạn không lạm dụng các thẻ. 10-15 Thẻ là tốt để dùng. Hãy chắc chắn rằng các thẻ có can hệ đến tiêu đề và video của các bạn. 6. Tạo hình thu gọn ấn tượng[/b] Hình thon gọn đóng một vai trò quan yếu trong việc thu hút người xem. Luôn tạo hình thu nhỏ tùy chỉnh cho video của bạn. Theo YouTube, hình thu gọn giống như bảng quảng cáo; họ giúp người xem quyết định xem họ có nên xem video hay ko. 90% Người xem thích xem video với hình thu nhỏ tùy chỉnh. Hình thu gọn là những điều Việc trước tiên người xem tậu ra. Để có hình thon gọn hấp dẫn, hãy tạo hình thon gọn ‘BOGY’. Nhưng hình thon gọn của ‘BOGY’ là gì? Hình thu nhỏ của BOGY là hình thu gọn dùng màu Xanh lam, Cam, Xanh lục và Vàng. Khi các bạn dùng bốn màu này, chúng sẽ ngăn hình thu gọn của các bạn hòa trộn với những màu chính của YouTube (đỏ, đen và trắng). 7. Tạo danh sách phát và sắp đặt video của các bạn[/b] Tạo danh sách phát giúp người xem thuận tiện mua thấy video hơn. Nó cũng có vẻ phù hợp và có doanh nghiệp, điều này tạo ra một ảnh hưởng tích cực đến người xem. Chọn tên của danh sách phát của bạn một cách khôn ngoan và đặt video phù hợp. 8. Nhận thêm ‘Video được đề xuất’[/b] những video được đề nghị có xu hướng nhận được rộng rãi lượt xem hơn các tìm kiếm trên YouTube vì YouTube truyền bá chúng kế bên video mà người nào đó đang xem. Nhưng làm thế nào chính xác bạn có thể nhận được video được đề xuất? Xem các phân tích của các video xu hướng bậc nhất xuất hiện ở đầu. Sử dụng các thẻ mà xu hướng video đang sử dụng. Bạn có thể cài đặt những tiện thể ích mở mang như Tubebuddy để xem thẻ. Theo YouTube, họ sử dụng thẻ video, tiêu đề và diễn tả của bạn để xếp hạng video được buộc phải. 9. Thêm thẻ và màn hình kết thúc[/b] Chọn video từ danh sách phát bạn muốn thêm vào cuối video đang phát. Thêm thẻ và màn hình chấm dứt có thể quảng cáo các video khác của bạn khi mà người nào đấy đang xem video trong khoảng danh sách phát của bạn. 10. Đề xuất đăng ký[/b] Mọi người sẽ ko lắng tai bạn nếu như các bạn ko nói. Hỏi người xem trên mỗi video của bạn để đăng ký kênh của bạn. Điều này hoạt động như một lời nhắc nhở cho người xem. Bạn có thể ngồi ‘đăng ký kênh của tôi / chúng tôi để có các video thú vị / sâu sắc hơn’ ở đầu, giữa hoặc ở cuối video của các bạn. Các bạn có thể lặp lại hai lần trong một video, một khi bạn khởi đầu và một lần để kết thúc. 11. Sử dụng phương tiện truyền thông xã hội khác của bạn để quảng cáo kênh của bạn[/b] Đối với tiếp thị liên kết truyền thông xã hội, bạn có thể đọc bài viết này (dán liên kết). Nếu các bạn có đúng đối tượng trên các nền tảng khác, hãy đảm bảo bạn giáo dục mọi người ở đó về kênh YouTube của mình. Bạn có thể gửi kết liên video cá nhân (không làm quá mức) hoặc bạn có thể buộc phải gia đình và các bạn bè của bạn chia sẻ video trên những nền tảng truyền thông xã hội của họ. Công cụ truyền thông phường hội là một nơi tuyệt vời để truyền bá nhãn hiệu, kênh hoặc bất cứ điều gì của bạn.
  1. Tải thêm hoạt động


  • Newsletter

    Want to keep up to date with all our latest news and information?

    Sign Up
×