From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/14398 Path: main.gmane.org!not-for-mail From: David Arnold Newsgroups: gmane.comp.tex.context Subject: Here's a strange one for Metapost gurus Date: Sat, 03 Jan 2004 18:41:46 -0800 Sender: ntg-context-admin@ntg.nl Message-ID: <3.0.5.32.20040103184146.00989920@mail.northcoast.com> Reply-To: ntg-context@ntg.nl NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_1073212906==_" X-Trace: sea.gmane.org 1073187707 18226 80.91.224.253 (4 Jan 2004 03:41:47 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 4 Jan 2004 03:41:47 +0000 (UTC) Original-X-From: ntg-context-admin@ntg.nl Sun Jan 04 04:41:38 2004 Return-path: Original-Received: from ref.vet.uu.nl ([131.211.172.13] helo=ref.ntg.nl) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1Acz90-00080M-00 for ; Sun, 04 Jan 2004 04:41:38 +0100 Original-Received: from ref.ntg.nl (localhost.localdomain [127.0.0.1]) by ref.ntg.nl (Postfix) with ESMTP id BB9A910B33; Sun, 4 Jan 2004 04:41:09 +0100 (MET) Original-Received: from smtp.inreach.com (smtp.inreach.com [209.142.2.34]) by ref.ntg.nl (Postfix) with SMTP id D161A10B26 for ; Sun, 4 Jan 2004 04:40:35 +0100 (MET) Original-Received: (qmail 5301 invoked from network); 4 Jan 2004 03:40:54 -0000 Original-Received: from unknown (HELO newmicronpc) (209.209.15.170) by smtp.inreach.com with SMTP; 4 Jan 2004 03:40:54 -0000 X-Sender: darnold@mail.northcoast.com X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.5 (32) Original-To: ntg-context@ntg.nl Errors-To: ntg-context-admin@ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.0.13 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.comp.tex.context:14398 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:14398 --=====================_1073212906==_ Content-Type: text/plain; charset="us-ascii" All, I've run across an interesting bug that I haven't seen before. In the attached Metpost file, if I delete the last figure (beginfig(8)...endfig), the file compiles. However, with beginfig(8)...endfig, the file gives this error: [1] [2] [3] [4] [5] [6] [7] >> path >> pen ! Not implemented: penoffset(path)of(pen). ; pen_pickup_->...part.penoffset.left.of.currentpen; pen_bot:=ypart.penoffset.r... ; l.499 pickup pencircle scaled 2pt; ? As the code in beginfig(8)...endfig is a simple copy and paste of the code in beginfig(1)...endfig, this is perplexing to say the least. If in beginfig(8)...endfig, I replace the lines %draw pendulum length pickup pencircle scaled 2pt; draw A--E; pickup defaultpen; with: %draw pendulum length draw A--E withpen pencircle scaled 2pt; Now the file will compile. This is strange indeed! Any ideas? --=====================_1073212906==_ Content-Type: text/plain; charset="us-ascii" Content-Disposition: attachment; filename="pendula.mp" verbatimtex \input mtplain etex input mp-tool def drawgrid(expr xo,yo,nx,ny,sx,sy)= begingroup save cpen,result; pen cpen; picture result; cpen:=pencircle scaled 1pt; result:=nullpicture; for x=0 upto nx: for y=0 upto ny: addto result doublepath (x*sx,y*sy) withpen cpen; endfor endfor defaultfont:="cmr7"; defaultscale:=7pt/fontsize defaultfont; for x=0 upto nx: addto result also thelabel.bot(decimal(x),(x*sx,0)) withpen cpen; endfor for y=0 upto ny: addto result also thelabel.lft(decimal(y),(0,y*sy)) withpen cpen; endfor; draw result; endgroup enddef; beginfig(1); %initialize scale numeric u; 10u=3in; %initialize pendulum length L:=10u; %initialize points pair A, B, C, D, E; A:=origin; C:=(0,-L); E:=C rotated 45; B:=(0,ypart E); D:=(xpart E, -L); %draw connecting lines draw A--C--D--E; draw B--E; %draw pendulum length pickup pencircle scaled 2pt; draw A--E; pickup defaultpen; %angle of deflection drawarrow anglebetween(A--C,A--E,btex $\theta$ etex); %draw arc of pendulum anglelength:=L; draw anglebetween(A--C,A--E,"") dashed evenly; %draw pendulum bob path bob; bob:=fullcircle scaled 20; bob:=bob shifted E; fill bob withcolor 0.85white; draw bob; label(btex $m$ etex,E); %label lengths label.urt(btex $L$ etex, 0.5[A,E]); label.bot(btex $x$ etex, 0.5[C,D]); label.rt(btex $y$ etex, 0.5[D,E]); label.top(btex $x$ etex, 0.5[B,E]); label.lft(btex $L-y$ etex, 0.5[A,B]); label.lft(btex $y$ etex, 0.5[B,C]); %label vertices dotlabel.top(btex $A$ etex, A); dotlabel.lft(btex $B$ etex, B); dotlabel.llft(btex $C$ etex, C); dotlabel.lrt(btex $D$ etex, D); endfig; beginfig(2); %initialize scale numeric u; 10u=3in; %initialize pendulum length L:=10u; %initialize points pair A, B, C, D, E; A:=origin; C:=(0,-L); E:=C rotated 45; B:=(0,ypart E); D:=(xpart E, -L); %draw connecting lines draw A--C--D--E; draw B--E; %draw pendulum length pickup pencircle scaled 2pt; draw A--E; pickup defaultpen; %angle of deflection drawarrow anglebetween(A--C,A--E,btex $\theta$ etex); %draw arc of pendulum anglelength:=L; draw anglebetween(A--C,A--E,"") dashed evenly; %draw pendulum bob path bob; bob:=fullcircle scaled 20; bob:=bob shifted E; fill bob withcolor 0.85white; draw bob; label(btex $M$ etex,E); %label lengths label.urt(btex $L$ etex, 0.5[A,E]); label.bot(btex $x$ etex, 0.5[C,D]); label.rt(btex $y$ etex, 0.5[D,E]); label.top(btex $x$ etex, 0.5[B,E]); label.lft(btex $L-y$ etex, 0.5[A,B]); label.lft(btex $y$ etex, 0.5[B,C]); %label vertices dotlabel.top(btex $A$ etex, A); dotlabel.lft(btex $B$ etex, B); dotlabel.llft(btex $C$ etex, C); dotlabel.lrt(btex $D$ etex, D); endfig; beginfig(3); %initialize scale numeric u; 1u=0.125in; %draw thin rod path rod; rod:=(0,0)--(20u,0)--(20u,1u)--(0,1u)--cycle; draw rod; %draw mass element path element; element:=(0,0)--(1u,0)--(1u,1u)--(0,1u)--cycle; element:=element shifted (14u,0); fill element withcolor 0.85white; draw element; %ticks path tick; tick:=(0,0)--(0,-0.25u); draw tick; draw tick shifted (20u,0); draw tick shifted (14.5u,0); %labels label.bot(btex $0$ etex, (0,-0.25u)); label.bot(btex $L$ etex, (20u,-0.25u)); label.top(btex $dx$ etex, (14.5u,1u)); label.bot(btex $x$ etex, (14.5u,-0.25u)); endfig; beginfig(4); %initialize scale numeric u; 10u=3in; %initialize pendulum length L:=10u; %initialize points pair A, B, C, D, E, F, G, H, I; A:=origin; C:=(0,-L); E:=C rotated 45; B:=(0,ypart E); D:=(xpart E, -L); F:=0.5[A,E]; G:=(xpart F,0); H:=(xpart E,0); I:=(xpart G, ypart B); %draw connecting lines draw A--B; draw A--H; draw G--F dashed evenly; draw H--E dashed evenly; %draw pendulum length pickup pencircle scaled 2pt; draw A--E; pickup defaultpen; %angle of deflection anglelength:=20pt; drawarrow anglebetween(A--C,A--E,btex $\theta$ etex); %label lengths label.urt(btex $L/2$ etex, 0.5[A,F]); label.urt(btex $L/2$ etex, 0.5[F,E]); label.top(btex $(L/2)\sin\theta$ etex, 0.5[A,G]); label.top(btex $(L/2)\sin\theta$ etex, 0.5[G,H]); %label vertices dotlabel.top(btex $A$ etex, A); %draw forces pickup pencircle scaled 2pt; drawarrow E--D; drawarrow F--I; %label forces label.bot(btex $mg$ etex, I); label.bot(btex $Mg$ etex, D); endfig; beginfig(5); %initialize scale numeric u; 10u=3in; %initialize pendulum length L:=10u; %initialize points pair A, B, C, D, E, F, G; A:=origin; C:=(0,-L); E:=C rotated 45; B:=(0,ypart E); D:=(xpart E, -L); F:=0.5[A,B]; G:=0.5[A,E]; %draw connecting lines draw A--C--D--E; draw B--E; %draw pendulum length pickup pencircle scaled 2pt; draw A--E; pickup defaultpen; %angle of deflection drawarrow anglebetween(A--C,A--E,btex $\theta$ etex); %draw arc of pendulum anglelength:=L; draw anglebetween(A--C,A--E,"") dashed evenly; %draw pendulum bob path bob; bob:=fullcircle scaled 20; bob:=bob shifted E; fill bob withcolor 0.85white; draw bob; label(btex $M$ etex,E); %label lengths label.urt(btex $L/2$ etex, 0.5[A,G]); label.urt(btex $L/2$ etex, 0.5[G,E]); label.bot(btex $x$ etex, 0.5[C,D]); label.rt(btex $y$ etex, 0.5[D,E]); label.top(btex $x$ etex, 0.5[B,E]); label.lft(btex $y$ etex, 0.5[B,C]); %label vertices dotlabel.top(btex $A$ etex, A); dotlabel.lft(btex $B$ etex, B); dotlabel.llft(btex $C$ etex, C); dotlabel.lrt(btex $D$ etex, D); %more labels drawdot(G) withpen pencircle scaled 6pt; label.urt(btex $m$ etex, G shifted (3,0)); draw F--G; label.lft(btex $(L/2)\cos\theta$ etex, 0.5[A,F]); label.lft(btex $(L/2)\cos\theta$ etex, 0.5[F,B]); endfig; beginfig(6); %initialize scale numeric u; 1u=0.25in; % drawgrid(0,0,20,10,1u,1u); %draw line for measurement later draw (0,0)--(10u,0); %draw base for pivot path base; base:=unitsquare xyscaled (4u,1u); base:=base shifted (8u,-2u); stripe_path_a(withcolor black)(draw) base withcolor white; draw (8u,-1u)--(12u,-1u); %draw pivot path tri; tri:=(-1,-1)--(0,1)--(1,-1)--cycle; tri:=tri scaled u; tri:=tri shifted (10u,0); fill tri withcolor 0.85white; %initialize pendulum path pend; pend:=(9.5,-0.5)--(10.5,-0.5)--(10.5,10.5)--(9.5,10.5)--cycle; pend:=pend scaled u; draw pend; %draw pivot point drawdot(10u,0) withpen pencircle scaled 6pt; %draw spring block left path left; left:=(2,9)--(3,9)--(3,11)--(2,11)--cycle; left:=left scaled u; stripe_path_a(withcolor black)(draw) left withcolor white; draw (3u,9u)--(3u,11u); %draw spring block right path right; right:=(17,9)--(18,9)--(18,11)--(17,11)--cycle; right:=right scaled u; stripe_path_a(withcolor black)(draw) right withcolor white; draw (17u,9u)--(17u,11u); %spring path spring, link; link:=(0,0)--(0.25,0.5)--(0.75,-0.5)--(1,0); spring:=link; for k=1 upto 2: spring:=spring--(link shifted (k,0)); endfor spring:=spring scaled u; %left spring draw (3u,10u)--(5u,10u); draw spring shifted (5u,10u); draw (8u,10u)--(10u,10u); %right spring draw (10u,10u)--(12u,10u); draw spring shifted (12u,10u); draw (15u,10u)--(17u,10u); %draw spring contact point drawdot(10u,10u) withpen pencircle scaled 6pt; %label springs label(btex $k$ etex, (6.5u,11u)); label(btex $k$ etex, (13.5u,11u)); %label some measurement lengths pair A, B, C, D, E; A:=(1u,0); B:=(1u,10u); C:=(5u,0); D:=(5u,5u); E:=(10u,5u); drawdblarrow A--B; label.lft(btex $L$ etex, 0.5[A,B]); drawdblarrow C--D; draw (0,10u)--(2u,10u); label.lft(btex $L/2$ etex, 0.5[C,D]); draw (4u,5u)--(6u,5u); drawdot(E) withpen pencircle scaled 6pt; label.top(btex cm etex,E shifted (0,5)); endfig; beginfig(7); %initialize scale numeric u; 1u=0.25in; % drawgrid(0,0,20,10,1u,1u); %draw line for measurement later draw (4u,0)--(10u,0); %draw base for pivot path base; base:=unitsquare xyscaled (4u,1u); base:=base shifted (8u,-2u); stripe_path_a(withcolor black)(draw) base withcolor white; draw (8u,-1u)--(12u,-1u); %draw pivot path tri; tri:=(-1,-1)--(0,1)--(1,-1)--cycle; tri:=tri scaled u; tri:=tri shifted (10u,0); fill tri withcolor 0.85white; %initialize pendulum path pend; pend:=(9.5,-0.5)--(10.5,-0.5)--(10.5,10.5)--(9.5,10.5)--cycle; pend:=pend scaled u; draw pend rotatedabout((10u,0),-angle((8,6))); %draw pivot point drawdot(10u,0) withpen pencircle scaled 6pt; %label some measurement lengths pair A, B, C, D, E, F, G, H, P; A:=(5u,0); B:=(5u,8u); C:=(10u,10u); D:=(16u,10u); E:=(10u,5u); G:=(16u,8u); H:=(12u,8u); P:=(10u,0); draw P--C dashed evenly; drawdblarrow A--B; label.lft(btex $L\cos\theta$ etex, 0.5[A,B]); draw (4u,8u)--G dashed evenly; drawdblarrow C--D; label.top(btex $L\sin\theta$ etex, 0.5[C,D]); E:=E rotatedabout((10u,0),-angle(4,3)); drawdot(E) withpen pencircle scaled 6pt; label.top(btex cm etex,E shifted (0,5)); drawdot(G) withpen pencircle scaled 6pt; draw G--D dashed evenly; %draw force of spring drawarrow G--H withpen pencircle scaled 2pt; label.bot(btex $2kL\sin\theta$ etex, H); %draw force of pendulum mass F:=(xpart E, 2u); drawarrow E--F withpen pencircle scaled 2pt; label.lrt(btex $mg$ etex, F); %another measurement pair M, N; M:=(7u,0); N:=(7u,4u); drawdblarrow M--N; label.rt(btex $(L/2)\cos\theta$ etex, 0.5[M,N]); draw N--E dashed evenly; %mark angle anglelength:=40pt; drawarrow anglebetween(P--C,P--G,btex $\theta$ etex); draw P--G dashed evenly; endfig; beginfig(8); %initialize scale numeric u; 10u=3in; %initialize pendulum length L:=10u; %initialize points pair A, B, C, D, E; A:=origin; C:=(0,-L); E:=C rotated 45; B:=(0,ypart E); D:=(xpart E, -L); %draw connecting lines draw A--C--D--E; draw B--E; %draw pendulum length draw A--E withpen pencircle scaled 2pt; %angle of deflection drawarrow anglebetween(A--C,A--E,btex $\theta$ etex); %draw arc of pendulum anglelength:=L; draw anglebetween(A--C,A--E,"") dashed evenly; %draw pendulum bob path bob; bob:=fullcircle scaled 20; bob:=bob shifted E; fill bob withcolor 0.85white; draw bob; label(btex $m$ etex,E); %label lengths label.urt(btex $L$ etex, 0.5[A,E]); label.bot(btex $x$ etex, 0.5[C,D]); label.rt(btex $y$ etex, 0.5[D,E]); label.top(btex $x$ etex, 0.5[B,E]); label.lft(btex $L-y$ etex, 0.5[A,B]); label.lft(btex $y$ etex, 0.5[B,C]); %label vertices dotlabel.top(btex $A$ etex, A); dotlabel.lft(btex $B$ etex, B); dotlabel.llft(btex $C$ etex, C); dotlabel.lrt(btex $D$ etex, D); endfig; end. --=====================_1073212906==_--