{"id":4585,"date":"2020-02-28T19:23:56","date_gmt":"2020-02-28T11:23:56","guid":{"rendered":"https:\/\/www.highflybird.com\/blog\/?p=4585"},"modified":"2021-01-18T11:15:59","modified_gmt":"2021-01-18T03:15:59","slug":"%e6%9b%b2%e7%ba%bf%e7%9a%84%e8%bd%ac%e5%bc%af%e5%8d%8a%e5%be%84%e5%92%8c%e6%9b%b2%e7%8e%87","status":"publish","type":"post","link":"https:\/\/www.highflybird.com\/blog\/?p=4585","title":{"rendered":"\u66f2\u7ebf\u7684\u8f6c\u5f2f\u534a\u5f84\u548c\u66f2\u7387"},"content":{"rendered":"<p>\u5728\u4e0b\u9762\u7684\u8fd9\u4e2a\u5e16\u5b50\u4e2d\u8ba8\u8bba\u4e86\u692d\u5706\u7684\u66f2\u7387\u548c\u8f6c\u5f2f\u534a\u5f84<br>http:\/\/bbs.mjtd.com\/thread-62980-1-1.html<br>\u73b0\u5728\u6211\u628a\u8fd9\u4e2a\u4e3b\u9898\u6df1\u5316\u4e00\u4e0b\uff0c\u8ba8\u8bba\u4e00\u4e0b\u66f2\u7ebf\u7684\u4e24\u4e2a\u51fd\u6570:<br>vlax-curve-getSecondDeriv<br>vlax-curve-getFirstDeriv<br>\u8fd9\u4e24\u4e2a\u51fd\u6570\u662f\u4ec0\u4e48\u610f\u601d\u5462\uff1f<br>\u6211\u4eec\u8003\u5bdfAutoCAD\u91cc\u9762\u7684\u66f2\u7ebf\u7c7b\uff0c\u4e3b\u8981\u662f\u5706\uff0c\u692d\u5706\uff0c\u5f27\u548c\u6837\u6761\u66f2\u7ebf\uff0c\u591a\u6bb5\u7ebf\u7531\u8fd9\u51e0\u79cd\u7ec4\u5408\u800c\u6210\u3002<br>\u692d\u5706\u548c\u6837\u6761\u66f2\u7ebf\u5b9e\u9645\u4e0a\u90fd\u662f\u7531\u53c2\u6570\u5f62\u6210\uff0c\u56e0\u6b64\uff0c\u5bf9\u4e8e\u8fd9\u7c7b\u66f2\u7ebf\uff0c\u5b83\u4eec\u6bcf\u70b9\u7684\u5750\u6807\u53ef\u4ee5\u7531\u53c2\u6570\u65b9\u7a0b\u8868\u8fbe\uff1a<br>\u8b6c\u5982\u692d\u5706 x=a*cos(t); y=b*sin(t);<br>\u6837\u6761\u66f2\u7ebf\u4e5f\u6709\u65b9\u7a0b\uff0c\u5047\u8bbe\u6837\u6761\u66f2\u7ebf\u7684\u53c2\u6570\u65b9\u7a0b\u4e3a\uff1a X= f(t);<br>Y=g(t);<br>\u56e0\u6b64\u53ef\u4ee5\u5bf9\u53c2\u6570\u65b9\u7a0b\u6c42\u5bfc\uff0c\u5f97\u5230\u6bcf\u4e00\u70b9\u7684\u5207\u7ebf\u77e2\u91cf\uff0c\u66f2\u7ebf\u4e0a\u6bcf\u4e00\u70b9\u5bf9\u5e94\u4e8e\u4e00\u4e2a\u53c2\u6570 t0 ,<br>\u8fd9\u4e2a\u5207\u7ebf\u77e2\u91cf\u7684 \u7684X\u503c\u5c31\u662f f(t)\u5728t0\u5904\u7684\u4e00\u9636\u5bfc\u6570\uff0cY\u503c\u5c31\u662fg(t)\u5728t0\u5904\u7684\u4e00\u9636\u5bfc\u6570\uff0c<br>\u5373( f'(t0), g'(t0),0)<br>\u56e0\u800c\u6211\u4eec\u5c31\u7406\u89e3\u4e86vlax-curve-getFirstDeriv \u51fd\u6570\u8fd4\u56de\u503c\u7684\u610f\u4e49\uff0c<br>\u5bf9\u4e8evlax-curve-getSecondDeriv\u7684\u610f\u4e49\u7c7b\u4f3c\uff0c\u53ea\u4e0d\u8fc7\u8fd9\u6b21\u6362\u6210\u4e86\u4e8c\u9636\u5bfc\u6570\u3002<br>\u5373( f&#8221;(t0), g&#8221;(t0),0)<\/p>\n<p>\u90a3\u4e48\u5982\u4f55\u6c42\u6837\u6761\u66f2\u7ebf\u6216\u8005\u692d\u5706\u7684\u6bcf\u4e00\u70b9\u7684\u66f2\u7387\u53ca\u5176\u534a\u5f84\u5462\uff1f<br>\n\u6839\u636e\u53c2\u6570\u65b9\u7a0b\u7684\u6c42\u66f2\u7387\u516c\u5f0f\uff0c\u82e5\u66f2\u7ebf\u7531\u4e0b\u9762\u53c2\u6570\u65b9\u7a0b\u7ed9\u51fa:<br>\n\\[\\left\\{\\begin{array}{l}x=\\varphi(t) \\\\ y=\\psi(t) \\end{array}\\right.\\]<br>\n\u90a3\u4e48\u66f2\u7387\u5982\u4f55\u8ba1\u7b97?\u63d0\u793a:<br>\n\\[K=\\frac{\\left|\\varphi^{\\prime}(t) \\psi^{\\prime \\prime}(t)-\\varphi^{\\prime \\prime}(t) \\psi^{\\prime}(t)\\right|}{\\left[\\varphi^{\\prime 2}(t)+\\psi^{\\prime 2}(t)\\right]^{3 \/ 2}}\\]<br>\n\u4e0b\u9762\u662f\u6c42\u503c\u4ee3\u7801\uff1a<br>\n[codesyntax lang=&#8221;lisp&#8221;]<\/p>\n<p>;;;=============================================================<br>\n;;;\u529f\u80fd: \u83b7\u53d6\u692d\u5706\u4e0a\u4e00\u70b9\u5904\u7684\u66f2\u7387\u548c\u79bb\u5fc3\u534a\u5f84\uff08\u9002\u7528\u4e8e\u5355\u6b21\u5229\u7528\u6b64\u6cd5\uff09<br>\n;;;\u53c2\u6570: \u692d\u5706\u5b9e\u4f53\u548c\u692d\u5706\u4e0a\u7684\u4e00\u70b9<br>\n;;;\u8fd4\u56de: \u6b64\u5904\u79bb\u5fc3\u5706\u5706\u5fc3\u3001\u79bb\u5fc3\u534a\u5f84\u53ca\u5176\u66f2\u7387\uff08\u79bb\u5fc3\u7387\uff09<br>\n;;;\u8bf4\u660e: \u5982\u679c\u8981\u5728CAD\u4e2d\u51e0\u4f55\u4f5c\u56fe\uff0c\u53ef\u4ee5\u53c2\u8003\u6b64\u8d34\uff1a<br>\n;;;      http:\/\/bbs.mjtd.com\/thread-62980-1-1.html<br>\n;;;=============================================================<br>\n(defun ELL:GetCurvature (en pt \/ obj a b px x y v1 v2 rad cen)<br>\n  (setq obj (vlax-ename-&gt;vla-object en))<br>\n  (setq a   (vla-get-MajorRadius obj))                          ;\u692d\u5706\u7684\u534a\u957f\u8f74<br>\n  (setq b   (vla-get-MinorRadius obj))\t\t\t\t;\u692d\u5706\u7684\u534a\u77ed\u8f74<br>\n  (setq pt  (vlax-curve-getclosestpointto en pt))\t\t;\u4fdd\u8bc1\u6b64\u70b9\u5728\u692d\u5706\u4e0a<br>\n  (setq px  (vlax-curve-getParamAtPoint en pt))\t\t\t;\u6b64\u70b9\u7684\u692d\u5706\u53c2\u6570<br>\n  (setq v1  (vlax-curve-getFirstDeriv en px))\t\t\t;\u6b64\u70b9\u7684\u4e00\u9636\u77e2\u91cf<br>\n  (setq v2  (list (- (cadr v1)) (car v1) (caddr v1)))\t\t;\u6b64\u70b9\u7684\u5207\u7ebf\u77e2\u91cf<br>\n  (setq x   (* a (sin px)))<br>\n  (setq y   (* b (cos px)))<br>\n  (setq rad (\/ (expt (+ (* x x) (* y y)) 1.5) (* a b)))\t\t;\u5f97\u5230\u8f6c\u5f2f\u534a\u5f84<br>\n  (setq cen (polar pt (angle &#8216;(0 0 0) v2) rad))\t\t\t;\u5706\u5fc3<br>\n  (list cen rad)\t\t\t\t\t\t;\u5706\u5fc3\u53ca\u534a\u5f84<br>\n)<\/p>\n<p>;;;=============================================================<br>\n;;; \u5229\u7528\u53c2\u6570\u65b9\u7a0b\u7684\u6c42\u692d\u5706\u7684\u66f2\u7387\u53ca\u5176\u79bb\u5fc3\u534a\u5f84\uff08\u9002\u7528\u4e8e\u591a\u6b21\u5229\u7528\u6b64\u6cd5\uff09<br>\n;;; \u529f\u80fd: \u83b7\u53d6\u692d\u5706\u4e0a\u4e00\u70b9\u5904\u7684\u8f6c\u5f2f\u534a\u5f84\u548c\u79bb\u5fc3\u5706\u5706\u5fc3<br>\n;;; \u53c2\u6570: \u692d\u5706\u5b9e\u4f53\u548c\u66f2\u7ebf\u4e0a\u7684\u4e00\u70b9<br>\n;;; \u8fd4\u56de: \u6b64\u5904\u79bb\u5fc3\u5706\u5706\u5fc3\u3001\u79bb\u5fc3\u534a\u5f84<br>\n;;;=============================================================<br>\n(defun ELL:GetCurvature1 (en a b pt \/ px v1 v2 x y rad cen)<br>\n  (setq pt  (vlax-curve-getclosestpointto en pt))\t\t;\u4fdd\u8bc1\u6b64\u70b9\u5728\u692d\u5706\u4e0a<br>\n  (setq px  (vlax-curve-getParamAtPoint en pt))\t\t\t;\u6b64\u70b9\u7684\u692d\u5706\u53c2\u6570<br>\n  (setq v1  (vlax-curve-getFirstDeriv en px))\t\t\t;\u6b64\u70b9\u7684\u4e00\u9636\u77e2\u91cf<br>\n  (setq v2  (list (- (cadr v1)) (car v1) (caddr v1)))\t\t;\u6b64\u70b9\u7684\u5207\u7ebf\u77e2\u91cf<br>\n  (setq x   (* a (sin px)))<br>\n  (setq y   (* b (cos px)))<br>\n  (setq rad (\/ (expt (+ (* x x) (* y y)) 1.5) (* a b)))\t\t;\u5f97\u5230\u8f6c\u5f2f\u534a\u5f84<br>\n  (setq cen (polar pt (angle &#8216;(0 0 0) v2) rad))\t\t\t;\u5706\u5fc3<br>\n  (list cen rad)\t\t\t\t\t\t;\u5706\u5fc3\u53ca\u534a\u5f84<br>\n)<\/p>\n<p>;;;=============================================================<br>\n;;; \u4e00\u822c\u5e73\u9762\u66f2\u7ebf\u53c2\u6570\u65b9\u7a0b\u7684\u66f2\u7387\u79bb\u5fc3\u516c\u5f0f<br>\n;;; \u529f\u80fd: \u83b7\u53d6\u66f2\u7ebf\u4e0a\u4e00\u70b9\u5904\u7684\u79bb\u5fc3\u534a\u5f84\u548c\u79bb\u5fc3\u5706\u5706\u5fc3<br>\n;;; \u53c2\u6570: \u66f2\u7ebf\u5b9e\u4f53\u548c\u66f2\u7ebf\u4e0a\u7684\u4e00\u70b9<br>\n;;; \u8fd4\u56de: \u6b64\u5904\u79bb\u5fc3\u5706\u5706\u5fc3\u3001\u79bb\u5fc3\u534a\u5f84<br>\n;;;=============================================================<br>\n(defun CUR:GetCurvature (en pt \/ ob px v1 v2 v3 x1 y1 x2 y2 cen rad d1 d2)<br>\n  (setq ob (vlax-ename-&gt;vla-object en))<br>\n  (setq pt (vlax-curve-getclosestpointto en pt))                ;\u4fdd\u8bc1\u6b64\u70b9\u5728\u66f2\u7ebf\u4e0a<br>\n  (setq px (vlax-curve-getParamAtPoint en pt))                  ;\u6b64\u70b9\u7684\u66f2\u7ebf\u53c2\u6570<br>\n  (setq v1 (vlax-curve-getFirstDeriv en px))                    ;\u6b64\u70b9\u7684\u4e00\u9636\u77e2\u91cf<br>\n  (setq v2 (vlax-curve-getSecondDeriv en px))\t\t\t;\u6b64\u70b9\u7684\u4e8c\u9636\u77e2\u91cf<br>\n  (setq v3 (list (- (cadr v1)) (car v1) (caddr v1)))            ;\u6b64\u70b9\u7684\u5207\u7ebf\u77e2\u91cf<br>\n  (setq x1 (car  v1))                                           ;\u4e00\u9636\u5bfc\u6570\u7684 X\u503c<br>\n  (setq y1 (cadr v1))\t\t\t\t\t\t;\u4e00\u9636\u5bfc\u6570\u7684 Y\u503c<br>\n  (setq x2 (car  v2))\t\t\t\t\t\t;\u4e8c\u9636\u5bfc\u6570\u7684 X\u503c<br>\n  (setq y2 (cadr v2))\t\t\t\t\t\t;\u4e8c\u9636\u5bfc\u6570\u7684 Y\u503c<br>\n  (setq d1 (expt (+ (* y1 y1) (* x1 x1)) 1.5))<br>\n  (setq d2 (- (* x1 y2) (* x2 y1)))\t\t\t\t;\u8f6c\u5f2f\u5185\u5916\u7684\u5224\u5b9a<br>\n  (if (\/= d2 0)                                                 ;\u5982\u679c\u4e0d\u4e3a\u76f4\u7ebf\u6bb5<br>\n    (progn<br>\n      (setq rad (\/ d1 d2))<br>\n      (if (vlax-method-applicable-p ob &#8216;GetBulge)               ;\u5982\u679c\u4e3a\u591a\u6bb5\u7ebf(\u542b\u5706\u5f27)<br>\n\t(if (&lt; (vla-GetBulge ob (fix px)) 0)\t\t\t;\u5982\u679c\u6b64\u6bb5\u51f8\u5ea6\u5c0f\u4e8e0<br>\n\t  (setq rad (- rad))<br>\n        )<br>\n      )<br>\n      (list (polar pt (angle &#8216;(0 0 0) v3) rad) (abs rad))\t;\u5706\u5fc3\u53ca\u534a\u5f84<br>\n    )<br>\n  )<br>\n)<\/p>\n<p>[\/codesyntax]<\/p>\n<p>\u4e00\u4e9b\u6d4b\u8bd5\u4ee3\u7801\uff1a<br>\n[codesyntax lang=&#8221;lisp&#8221;]<\/p>\n<p>;;;=============================================================<br>\n;;;\u6d4b\u8bd5\u7a0b\u5e8f1: \u83b7\u53d6\u66f2\u7ebf\u4e00\u70b9\u5904\u7684\u66f2\u7387\u548c\u79bb\u5fc3\u534a\u5f84<br>\n;;;=============================================================<br>\n(defun c:tt1 (\/ ent pnt ret)<br>\n  (setq ent (car (entsel &#8220;\\n\u8bf7\u9009\u53d6\u66f2\u7ebf:&#8221;)))<br>\n  (while (setq pnt (getpoint &#8220;\\n\u70b9\u53d6\u4e00\u70b9&#8221;))<br>\n    (setq pnt (trans pnt 1 0))<br>\n    (setq pnt (vlax-curve-getclosestpointto ent pnt))<br>\n    (setq ret (CUR:GetCurvature ent pnt))<br>\n    (princ &#8220;\\n\u79bb\u5fc3\u534a\u5f84\u662f:&#8221;)<br>\n    (princ ret)<br>\n    (and ret (apply &#8216;Ent:Make_Circle ret))<br>\n  )<br>\n  (princ)<br>\n)<\/p>\n<p>;;;=============================================================<br>\n;;;\u6d4b\u8bd5\u7a0b\u5e8f2: \u83b7\u53d6\u692d\u5706\u4e00\u70b9\u5904\u7684\u66f2\u7387\u548c\u79bb\u5fc3\u534a\u5f84\uff0c\u5e76\u6bd4\u8f83\u4e24\u79cd\u65b9\u6cd5<br>\n;;;=============================================================<br>\n(defun c:tt2 ( \/ ent obj a b pnt par 1st 2st r1 r2 r3)<br>\n  (if (and (setq ent (car (entsel &#8220;\\n\u8bf7\u9009\u53d6\u692d\u5706:&#8221;)))<br>\n\t   (setq obj (vlax-ename-&gt;vla-object ent))<br>\n\t   (vlax-property-available-p obj &#8216;MajorRadius)\t\t;\u8fd9\u4e2a\u5730\u65b9\u5e94\u8be5\u52a0\u51fa\u9519\u5904\u7406<br>\n  \t   (setq a (vla-get-MajorRadius obj))<br>\n\t   (setq b (vla-get-MinorRadius obj))<br>\n      )<br>\n    (while (setq pnt (getpoint &#8220;\\n\u70b9\u53d6\u4e00\u70b9:&#8221;))<br>\n      (setq pnt (trans pnt 1 0))<br>\n      (setq pnt (vlax-curve-getclosestpointto ent pnt))<br>\n      (setq par (vlax-curve-getparamatpoint ent pnt))<br>\n      (setq 1st (vlax-curve-getFirstDeriv ent par))<br>\n      (setq 2st (vlax-curve-getSecondDeriv ent par))<br>\n      (setq r1  (distance &#8216;(0 0) 2st))                          ;\u8fd9\u4e2asecondDeriv\u5e76\u4e0d\u610f\u5473\u7740\u534a\u5f84<br>\n      (setq r2  (cadr (ELL:GetCurvature1 ent a b pnt)))<br>\n      (setq r3  (cadr (CUR:getcurvature ent pnt)))<br>\n      (princ &#8220;\\nRadius 1 is:&#8221;)<br>\n      (princ r1)<br>\n      (princ &#8220;\\nRadius 2 is:&#8221;)<br>\n      (princ r2)<br>\n      (princ &#8220;\\nRadius 3 is:&#8221;)<br>\n      (princ r3)<br>\n      (UTI:Bench<br>\n        10000<br>\n        (list<br>\n\t  (list &#8216;ELL:GetCurvature1 ent a b pnt)<br>\n\t  (list &#8216;CUR:getcurvature ent pnt)<br>\n        )<br>\n      )<br>\n    )<br>\n  )<br>\n)<\/p>\n<p>;;;=============================================================<br>\n;;;\u6d4b\u8bd5\u7a0b\u5e8f3: \u52a8\u6001\u6f14\u793a\u66f2\u7ebf\u7684\u79bb\u5fc3\u534a\u5f84<br>\n;;;=============================================================<br>\n(defun c:tt3 (\/ CIR ENT LIN PNT PT0 RET 1ST 2ST CEN PAR PT2 VEC)<br>\n  (setq ent (car (entsel &#8220;\\n\u8bf7\u9009\u53d6\u66f2\u7ebf:&#8221;)))<br>\n  (setq cir (Ent:Make_Circle &#8216;(0 0 0) 1))<br>\n  (setq lin (ent:make_Line &#8216;(0 0 0) &#8216;(0 0 0)))<br>\n  (setq vec (ent:make_Line &#8216;(0 0 0) &#8216;(0 0 0)))<br>\n  (setq lin (vlax-ename-&gt;vla-object lin))<br>\n  (setq vec (vlax-ename-&gt;vla-object vec))<br>\n  (setq cir (vlax-ename-&gt;vla-object cir))<br>\n  (vla-put-color lin 1)<br>\n  (vla-put-color cir 3)<br>\n  (vla-put-color vec 6)<br>\n  (princ &#8220;\\n\u6309\u7a7a\u683c\u6216\u8005\u56de\u8f66\u9000\u51fa!&#8221;)<br>\n  (while (= (car (setq pt0 (grread 5 0))) 5)<br>\n    (setq pnt (trans (cadr pt0) 1 0))<br>\n    (setq pnt (vlax-curve-getclosestpointto ent pnt))<br>\n    (setq par (vlax-curve-getparamatpoint ent pnt))<br>\n    (setq 1st (vlax-curve-getFirstDeriv ent par))<br>\n    (setq 2st (vlax-curve-getSecondDeriv ent par))<br>\n    (if (setq ret (CUR:GetCurvature ent pnt))<br>\n      (progn<br>\n\t(setq pt2 (mapcar &#8216;+ pnt 2st))<br>\n\t(setq cen (car ret))<br>\n        (vlax-put Cir &#8216;Center cen )<br>\n        (vlax-put cir &#8216;Radius (cadr ret))<br>\n        (vlax-put lin &#8216;StartPoint cen)<br>\n        (vlax-put lin &#8216;EndPoint pnt)<br>\n\t(vlax-put vec &#8216;StartPoint pt2)<br>\n        (vlax-put vec &#8216;EndPoint pnt)<br>\n      )<br>\n    )<br>\n  )<br>\n  (vla-erase cir)<br>\n  (vla-erase lin)<br>\n  (vla-erase vec)<br>\n  (princ)<br>\n)<\/p>\n<p>;;;=============================================================<br>\n;;;\u6d4b\u8bd5\u7a0b\u5e8f4: \u7531\u66f2\u7ebf\u7684\u79bb\u5fc3\u534a\u5f84\u63cf\u7ed8\u5176\u8f68\u8ff9<br>\n;;;=============================================================<br>\n(defun c:tt4 (\/ ent lst par px1 px2 pxn pnt Inf cen)<br>\n  (if (setq ent (car (entsel &#8220;\\n\u8bf7\u9009\u53d6\u66f2\u7ebf:&#8221;)))<br>\n    (progn<br>\n      (setq px1 (vlax-curve-getStartParam ent))<br>\n      (setq px2 (vlax-curve-getendparam ent))<br>\n      (setq pxn (* (- px2 px1) 0.02))<br>\n      (setq par px1)<br>\n      (while (&lt;= par px2)<br>\n        (setq pnt (vlax-curve-getpointatparam ent par))<br>\n        (setq Inf (CUR:GetCurvature ent pnt))<br>\n        (if (setq cen (car Inf))<br>\n\t  (setq lst (cons cen lst))<br>\n\t)<br>\n        (setq par (+ par pxn))<br>\n      )<br>\n      (setq lst (reverse lst))<br>\n      (Ent:Make_LWPoly lst 1)<br>\n    )<br>\n  )<br>\n)<\/p>\n<p>[\/codesyntax]<\/p>\n<p>\u76f8\u5173\u8054\u4ee3\u7801\uff1a<br>\n[codesyntax lang=&#8221;lisp&#8221;]<\/p>\n<p>;;;************************************************************;<br>\n;;;\u5b9e\u4f53\u521b\u5efa\u90e8\u5206<br>\n;;;************************************************************;<\/p>\n<p>;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n;;;\u521b\u5efa\u4e00\u4e2a\u70b9<br>\n;;;\u8f93\u5165: \u4e00\u4e2a\u4e09\u7ef4\u6216\u8005\u4e8c\u7ef4\u7684\u70b9<br>\n;;;\u8f93\u51fa: \u70b9\u5b9e\u4f53\u7684\u56fe\u5143\u540d<br>\n;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n(defun Ent:Make_Point (p)<br>\n  (entmakex (list &#8216;(0 . &#8220;POINT&#8221;) (cons 10 p)))<br>\n)<\/p>\n<p>;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n;;;\u521b\u5efa\u4e00\u4e2a\u5e26\u989c\u8272\u7684\u70b9\uff08\u6b64\u51fd\u6570\u4e3a\u6d4b\u8bd5\u6216\u8005\u5176\u4ed6\u7528\u9014\uff09<br>\n;;;\u8f93\u5165: \u4e00\u4e2a\u4e09\u7ef4\u6216\u8005\u4e8c\u7ef4\u7684\u70b9\u8868\u548c\u4e00\u4e2a\u989c\u8272\u53f7<br>\n;;;\u8f93\u51fa: \u70b9\u5b9e\u4f53\u7684\u56fe\u5143\u540d<br>\n;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n(defun Ent:MakePoint-1 (p c)<br>\n  (entmakex (list &#8216;(0 . &#8220;POINT&#8221;) (cons 10 p) (cons 62 c)))<br>\n)<\/p>\n<p>;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n;;;\u521b\u5efa\u4e00\u6761\u76f4\u7ebf\u6bb5<br>\n;;;\u8f93\u5165: \u4e24\u4e2a\u4e09\u7ef4\u6216\u8005\u4e8c\u7ef4\u7684\u70b9<br>\n;;;\u8f93\u51fa: \u7ebf\u6bb5\u5b9e\u4f53\u7684\u56fe\u5143\u540d<br>\n;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n(defun Ent:Make_Line (p q)<br>\n  (entmakeX (list &#8216;(0 . &#8220;LINE&#8221;) (cons 10 p) (cons 11 q)))<br>\n)<\/p>\n<p>;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n;;;\u521b\u5efa\u4e00\u4e2a\u7531\u4e09\u6761\u76f4\u7ebf\u7ec4\u6210\u7684\u4e09\u89d2\u5f62<br>\n;;;\u8f93\u5165: \u4e09\u4e2a\u4e09\u7ef4\u6216\u8005\u4e8c\u7ef4\u7684\u70b9<br>\n;;;\u8f93\u51fa: \u7531\u4e09\u6761\u76f4\u7ebf\u7ec4\u6210\u7684\u4e09\u89d2\u5f62<br>\n;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n(defun Ent:Make_Triangle (p1 p2 p3)<br>\n  (mapcar &#8216;Ent:Make_Line (list p1 p2 p3) (list p2 p3 p1))<br>\n)<\/p>\n<p>;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n;;;\u521b\u5efa\u4e00\u4e2a\u4e09\u7ef4\u591a\u6bb5\u7ebf<br>\n;;;\u8f93\u5165: \u4e09\u7ef4\u7684\u70b9\u96c6<br>\n;;;\u8f93\u51fa: \u4e09\u7ef4\u591a\u6bb5\u7ebf\u5b9e\u4f53<br>\n;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n(defun Ent:Make_Poly (pts Closed \/ e)<br>\n  (if Closed<br>\n    (setq e (Entmake (list &#8216;(0 . &#8220;POLYLINE&#8221;) &#8216;(70 . 9))))<br>\n    (setq e (Entmake (list &#8216;(0 . &#8220;POLYLINE&#8221;) &#8216;(70 . 8))))<br>\n  )<br>\n  (foreach p pts<br>\n    (entmake (list &#8216;(0 . &#8220;VERTEX&#8221;) &#8216;(70 . 32) (cons 10 p)))<br>\n  )<br>\n  (entmake &#8216;((0 . &#8220;SEQEND&#8221;)))<br>\n  (entlast)<br>\n)<\/p>\n<p>;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n;;;\u521b\u5efa\u8f7b\u591a\u6bb5\u7ebf<br>\n;;;\u8f93\u5165: \u4e8c\u7ef4\u7684\u70b9\u96c6<br>\n;;;\u8f93\u51fa: \u8f7b\u591a\u6bb5\u7ebf\u5b9e\u4f53\u540d<br>\n;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n(defun Ent:Make_LWPoly (pts closed \/)<br>\n  (entmakeX<br>\n    (append<br>\n      &#8216;((0 . &#8220;LWPOLYLINE&#8221;)<br>\n        (100 . &#8220;AcDbEntity&#8221;)<br>\n        (100 . &#8220;AcDbPolyline&#8221;)<br>\n       )<br>\n      (list (cons 90 (length pts)))                      \t;\u9876\u70b9\u4e2a\u6570<br>\n      (mapcar (function (lambda (x) (cons 10 x))) pts)  \t;\u591a\u6bb5\u7ebf\u9876\u70b9<br>\n      (list (cons 70  closed))                  \t        ;\u95ed\u5408\u7684<br>\n    )<br>\n  )<br>\n)<\/p>\n<p>;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n;;; \u521b\u5efa\u5706\u5b9e\u4f53<br>\n;;; \u8f93\u5165: \u5706\u5fc3C\u548c\u534a\u5f84R<br>\n;;; \u8f93\u51fa: \u5706\u7684\u5b9e\u4f53\u540d<br>\n;;;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br>\n(defun Ent:Make_Circle (C R)<br>\n  (entmakex (list &#8216;(0 . &#8220;CIRCLE&#8221;) (cons 10 C) (cons 40 R)))<br>\n)<\/p>\n<p>[\/codesyntax]<\/p>\n\n\n<p>\u7a0b\u5e8f1\u6548\u679c\u6f14\u793a\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"718\" src=\"https:\/\/www.highflybird.com\/blog\/wp-content\/uploads\/2020\/02\/t11.gif\" alt=\"\" class=\"wp-image-4595\"\/><\/figure>\n\n\n\n<p>\u7a0b\u5e8f2\u6548\u679c\u6f14\u793a\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"399\" height=\"650\" src=\"https:\/\/www.highflybird.com\/blog\/wp-content\/uploads\/2020\/02\/ell-1.jpg\" alt=\"\" class=\"wp-image-4596\" srcset=\"https:\/\/www.highflybird.com\/blog\/wp-content\/uploads\/2020\/02\/ell-1.jpg 399w, https:\/\/www.highflybird.com\/blog\/wp-content\/uploads\/2020\/02\/ell-1-184x300.jpg 184w\" sizes=\"auto, (max-width: 399px) 100vw, 399px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u4e0b\u9762\u7684\u8fd9\u4e2a\u5e16\u5b50\u4e2d\u8ba8\u8bba\u4e86\u692d\u5706\u7684\u66f2\u7387\u548c\u8f6c\u5f2f\u534a\u5f84http:\/\/bbs.mjtd.com\/thread-62980-<\/p>\n<p class=\"more-link\"><a href=\"https:\/\/www.highflybird.com\/blog\/?p=4585\" class=\"themebutton2\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[9],"tags":[],"class_list":["post-4585","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4585"}],"version-history":[{"count":0,"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4585\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.highflybird.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}