芝麻仔 发表于 2004-11-9 11:43:00

第一个图的解法应该有很多种


先将多线画出的图像分解,再用圆角功能将要改变的角位改边,不就OK了,


不知道楼主是不是这个意思,偶是初学者,如果不是,请不要见怪

TWJ 发表于 2004-11-10 00:41:00

你在绘制多义线的时候,把Fill系统变量改掉,即可。

阿SAM 发表于 2004-11-10 13:35:00

就没人可以图文并茂来看看吗?唉!!

柯梦楠 发表于 2004-11-10 14:10:00

你的具体的想法我都没搞清楚,你画的是抛物线吗?他们说的画法也是在画抛物线线吗?我没有看出来!

zxdcad 发表于 2004-11-10 15:18:00

抛物线?符合数学定义的抛物线吗?这只有用程序或EXCEL+ACAD解决!ACAD不能直接解决!

ZZXXQQ 发表于 2004-11-11 09:45:00

可以编程解决。下面的小程序就可以画抛物线: 程序在R14上调试通过。


;抛物线绘制 ZZXXQQ 2004.11.11<BR>(DEFUN C:PARABOLA ()<BR>(SETVAR "CMDECHO" 0)<BR>(SETQ OLDOS (GETVAR "OSMODE"))<BR>(SETVAR "OSMODE" 0)<BR>(SETQ PF (GETDIST "\n输入焦参数 P= &lt;0.5&gt;")<BR>                                       PF (IF (NOT PF) 0.5 PF)<BR>                                       BY (GETREAL "\n输入Y起始值 Start Y= ")<BR>                                       EY (GETREAL "\n输入Y终点值 End               Y= ")<BR>                                       STP (GETREAL "\n输入曲线生成步长 S= &lt;0.5&gt;")<BR>                                       STP (IF (NOT STP) 0.5 STP)<BR>                                       PT (GETPOINT "\n输入曲线插入点 &lt;0,0&gt;: ")<BR>                                       PT (IF (/= PT nil) PT (LIST 0 0))<BR>                                       YS (MIN EY BY)<BR>                                       YE (MAX EY BY)<BR>                                       DX (/ (* YS YS) 2 PF)<BR>                                       X0 (CAR PT) Y0 (CADR PT))<BR>(COMMAND "SPLINE" (LIST (+ X0 DX) (+ Y0 YS)))<BR>(SETQ YS (+ YS STP))<BR>(WHILE (&lt; YS YE)<BR>        (SETQ DX (/ (* YS YS) 2 PF))<BR>        (COMMAND (LIST (+ X0 DX) (+ Y0 YS)))<BR>        (SETQ YS (+ YS STP))<BR>)<BR>(SETQ DX (/ (* YE YE) 2 PF))<BR>(COMMAND (LIST (+ X0 DX) (+ Y0 YS)) "" "" "")<BR>(SETVAR "OSMODE" OLDOS)<BR>(SETVAR "CMDECHO" 1)<BR>(PRINC)<BR>)

ZZXXQQ 发表于 2004-11-11 13:36:00

这个程序可以满足楼主的要求。


;管线绘制 ZZXXQQ 2004.11.11<BR>(DEFUN C:DRAWPIPE ()<BR>        (SETvar "CMDECHO" 0)<BR>        (SETQ OLDOS (GETvar "OSMODE"))<BR>        (SETvar "OSMODE" 0)<BR>        (SETQ D (GETDIST "\n输入管子外径 D= &lt;20&gt;")<BR>                                               D (IF (NOT D) 20 D)<BR>                                               D5 (* D 0.5)<BR>                                               R (GETREAL (STRCAT "\n输入管子弯曲半? &lt;大于" (RTOS D5 2 1) "&gt; R= "))<BR>                                               R (IF (NOT R) D5 R)<BR>                                               R (IF (&gt; D5 R) D5 R)<BR>                                               RS (- R D5)<BR>                                               RD (+ R D5)<BR>                                               PT (GETPOINT "\n管线起点 &lt;0,0&gt;: ")<BR>                                               PT (IF (/= PT nil) PT (LIST 0 0))<BR>                                               AL1 (/ PI 2) AL2 (- AL1)<BR>                                               PT1 (GETPOINT PT "\n管线下一点 :")<BR>                                               A (ANGLE PT PT1) A1 (+ A AL1) A2 (+ A AL2)<BR>                                               DS (DISTANCE PT1 PT)<BR>                                               P1 (POLAR PT A1 D5)<BR>                                               P2 (POLAR PT A2 D5)<BR>                                               P3 (POLAR P1 A (- DS R))<BR>                                               FIR P3<BR>                                               P4 (POLAR P2 A (- DS R))<BR>                                               PT PT1)<BR>        (COMMAND "LINE" P3 P1 "") (SETQ S1 (ENTLAST))<BR>        (COMMAND "LINE" P1 P2 P4 "") (SETQ S2 (ENTLAST))<BR>        (WHILE (SETQ PT1 (GETPOINT PT "\n管?下一? :"))<BR>       (SETQ A0 (ANGLE PT PT1) A1 (+ A0 AL1) A2 (+ A0 AL2)<BR>                                                       DS (DISTANCE PT1 PT)<BR>                                                       P1 (POLAR PT A1 D5)<BR>                                                       P2 (POLAR PT A2 D5)<BR>                                                       P3 (POLAR P1 A0 (- DS R))<BR>                                                       P4 (POLAR P2 A0 (- DS R)))<BR>       (COMMAND "LINE" P1 P3 "") (SETQ S3 (ENTLAST))<BR>       (COMMAND "LINE" P2 P4 "") (SETQ S4 (ENTLAST))<BR>       (if (&gt; (DISTANCE P1 FIR) (DISTANCE P2 FIR))<BR>               (COMMAND "FILLET" "R" RS "FILLET" S2 S4 "FILLET" "R" RD "FILLET" S1 S3)<BR>               (COMMAND "FILLET" "R" RD "FILLET" S2 S4 "FILLET" "R" RS "FILLET" S1 S3))<BR>       (SETQ A A0 PT PT1 S1 S3 S2 S4 FIR P3)<BR>        )<BR>        (SETQ P1 (POLAR P3 A0 R) P2 (POLAR P4 A0 R))<BR>        (COMMAND "STRETCH" "C" P3 P3 "" P3 P1 "STRETCH" "C" P4 P4 "" P4 P2)<BR>        (COMMAND "LINE" P1 P2 "")<BR>        (SETvar "OSMODE" OLDOS)<BR>        (SETvar "CMDECHO" 1)<BR>        (PRINC)<BR>)<BR>(PROMPT "\nDRAWPIPE 加载成功。")<BR>(PRINC)

sxxzsm 发表于 2004-11-14 20:53:00

自己编写过一个画抛物线的小程序
页: 1 [2]
查看完整版本: no subject