summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-12-03 22:30:11 +0000
committerKarl Berry <karl@freefriends.org>2018-12-03 22:30:11 +0000
commit526cfb7ac8d644adaea426d705352af206a0d477 (patch)
treedfe6ef42917fb8d84e3f4cb105552bc768895348
parent5fc4d8142bde77451e56a8ebf0a2a227079639d4 (diff)
ketcindy (3dec18)
git-svn-id: svn://tug.org/texlive/trunk@49309 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdfbin1760255 -> 1818624 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdfbin2523190 -> 2522879 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s01figure/s0107hyperbolahatch.cdybin4238 -> 4239 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0208intersecthatch.cdybin3916 -> 3919 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0213implicithatch.cdybin4032 -> 4008 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501basic.cdybin5832 -> 5850 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501plane.cdybin8222 -> 8199 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0502spacecurve.cdybin5204 -> 5282 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0503perp.cdybin6023 -> 6010 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0504embed.cdybin6068 -> 6055 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0505bezier3d.cdybin6882 -> 6951 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0506embedhatch.cdybin6090 -> 6140 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0507polyhedron.cdybin6586 -> 6580 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0508concatobj.cdybin4311 -> 4309 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0509cubiccut.cdybin10850 -> 10900 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0510cubiccut2.cdybin8461 -> 8443 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0511tetra.cdybin6687 -> 6715 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0521totaldiffskeleton.cdybin6259 -> 6266 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdybin7046 -> 5528 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdybin7056 -> 5517 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt4
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.cdybin6734 -> 5306 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt2
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.cdybin7252 -> 5750 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt10
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.cdybin7247 -> 5757 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt4
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.cdybin6903 -> 5342 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt2
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.cdybin6445 -> 4848 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt13
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.cdybin0 -> 4816 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out0
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdfbin0 -> 15961 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex161
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt16
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.cdybin7380 -> 5908 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt8
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.cdybin7291 -> 5785 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt10
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.cdybin5833 -> 5978 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt3
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.cdybin5786 -> 5827 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt13
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdybin0 -> 5336 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1301basic.cdybin5337 -> 5340 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1303objparts.cdybin5546 -> 5550 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1304symbol.cdybin5373 -> 5376 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1305hyperpara.cdybin5410 -> 5411 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1306poly.cdybin6953 -> 6954 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1307poly2.cdybin8224 -> 8224 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1308discont.cdybin5744 -> 5744 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1309discont2.cdybin5950 -> 5953 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1310totaldiff.cdybin4626 -> 4610 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1311plate.cdybin6678 -> 6679 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1312plane.cdybin7329 -> 7326 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1313changescale.cdybin8179 -> 8571 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java26
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark2.tex26
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex120
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/kobayashiE.tex206
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplotE.cdybin4570 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax-theta.tex (renamed from Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setaxtheta.tex)0
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shadeE.cdybin4439 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tangent.cdybin4184 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex273
-rw-r--r--Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex285
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketcindy.pl33
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jarbin157246 -> 157488 bytes
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt14
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs477
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt18
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs434
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt7
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs79
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt4
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs32
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt26
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs1197
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r61
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt9
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h13
-rw-r--r--Master/texmf-dist/scripts/ketcindy/template0.cdybin3709 -> 3696 bytes
-rw-r--r--Master/texmf-dist/scripts/ketcindy/template1basic.cdybin4216 -> 4206 bytes
-rw-r--r--Master/texmf-dist/scripts/ketcindy/template2slide.cdybin5714 -> 5664 bytes
-rw-r--r--Master/texmf-dist/scripts/ketcindy/template3Dfigure.cdybin5060 -> 5058 bytes
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds2
87 files changed, 2290 insertions, 1298 deletions
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
index f4c59a2b27f..1b07c8cb409 100644
--- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceE.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
index 80a656fdc5c..3d883f3727b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
+++ b/Master/texmf-dist/doc/support/ketcindy/ketmanual/KeTCindyReferenceJ.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s01figure/s0107hyperbolahatch.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s01figure/s0107hyperbolahatch.cdy
index c9ef26ddc43..d42fdeb4fe8 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s01figure/s0107hyperbolahatch.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s01figure/s0107hyperbolahatch.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0208intersecthatch.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0208intersecthatch.cdy
index c47e67568bb..c16881d617d 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0208intersecthatch.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0208intersecthatch.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0213implicithatch.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0213implicithatch.cdy
index abe6403dd3f..20ebd6cc667 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0213implicithatch.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s02graph/s0213implicithatch.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501basic.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501basic.cdy
index ebee51329b5..c985d4afd02 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501basic.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501basic.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501plane.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501plane.cdy
index 56f271f1c08..ffddcb9e7f3 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501plane.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0501plane.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0502spacecurve.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0502spacecurve.cdy
index ea135e60991..fe7177eb839 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0502spacecurve.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0502spacecurve.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0503perp.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0503perp.cdy
index 7e062f74b6b..0a715038998 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0503perp.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0503perp.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0504embed.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0504embed.cdy
index 5924f1c06d5..d265f58d2d8 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0504embed.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0504embed.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0505bezier3d.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0505bezier3d.cdy
index b39a94c9eb1..367609778fa 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0505bezier3d.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0505bezier3d.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0506embedhatch.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0506embedhatch.cdy
index 2ee08f448bc..57ea801e0fa 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0506embedhatch.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0506embedhatch.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0507polyhedron.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0507polyhedron.cdy
index 1a3d3ee1816..85df6b35cd9 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0507polyhedron.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0507polyhedron.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0508concatobj.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0508concatobj.cdy
index a4536fb6e73..1ffcf8f0e10 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0508concatobj.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0508concatobj.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0509cubiccut.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0509cubiccut.cdy
index 8f619ef8212..f4cfae93a83 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0509cubiccut.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0509cubiccut.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0510cubiccut2.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0510cubiccut2.cdy
index e52d04d5e0b..61bfb33ab30 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0510cubiccut2.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0510cubiccut2.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0511tetra.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0511tetra.cdy
index 7b92d9d6ae0..3c836311544 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0511tetra.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0511tetra.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0521totaldiffskeleton.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0521totaldiffskeleton.cdy
index 40f0e10ed7c..e8ec61e607f 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0521totaldiffskeleton.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s05spacefigure/s0521totaldiffskeleton.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy
index 73149dccb3e..06fbc2f020f 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basic.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy
index 019c8ca16f1..74649ae411b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt
index 241b2022724..c54c882be23 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0701basicE.txt
@@ -18,7 +18,7 @@ new::How to use enumerate//
\slidepage//
enumerate::[(1)]//
-item::Change the style of number adding, for example, [(1)]//
-item::Same as usual//
+item::Change the style of items, for example, [(1)].//
+item::Do same as usual.//
end//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.cdy
index 364cf572519..38532a959e3 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt
index 7f297ed05a4..ff9e7e8b6d0 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graph.txt
@@ -24,5 +24,5 @@ new::includegrpahicsとlayer//
%まず,diffeq.pdfを作っておく(2)//
layer::{100}{0}//
-putnote::s{60}{15}::include[bb=0.00 0.00 283.46 113.39,width=100mm]::diffeq.pdf//
+putnote::s{60}{15}::include[bb=0.00 0.00 325.98 141.73,width=100mm]::diffeq.pdf//
end//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.cdy
index 745c4087062..32a03c471bf 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt
index cdf07cfeae9..1287872ec0a 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0702graphE.txt
@@ -1,4 +1,4 @@
-title::slideE::%wallpaper//
+title::slide0::%wallpaper//
%%%%%%%%%%%%%%%%//
main::Main Slide//
@@ -9,9 +9,9 @@ new::input and layer//
%repeat=2//
\slidepage//
-layer::{100}{0}//
-%[1]::putnote::se{10}{15}::sinecurve,0.8//
-%[2]::putnote::se{60}{25}::sinecurve,0.8//
+layer::{100}{0}// Change the 2nd {0} to a nonnegative number to change the position.
+%[1]::putnote::se{10}{15}::sine,0.8//
+%[2]::putnote::se{60}{25}::sine,0.8//
end//
%%%%%%%%%%%%%%%%//
@@ -19,5 +19,5 @@ new::includegrpahics and layer//
\slidepage//
layer::{100}{0}//
-putnote::s{60}{15}::include[bb=0.00 0.00 283.46 113.39,width=100mm]::diffeq.pdf//
+putnote::s{60}{15}::include[bb=0.00 0.00 325.98 141.73,width=100mm]::diffeq.pdf//
end//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.cdy
index cac282b325c..63c80909cd4 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt
index 1868c9c981a..b694ef7d4f2 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeat.txt
@@ -30,7 +30,7 @@ new::グラフとrepeat//
\slidepage//
layer::{100}{0}//
-%[1]::putnote::se{10}{15}::sinecurve,0.8//
-%[2]::putnote::se{30}{40}::sinecurve,0.8//
+%[1]::putnote::se{10}{15}::sine,0.8//
+%[2]::putnote::se{30}{40}::sine,0.8//
end//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.cdy
index 7762575fc79..f248e50b2ea 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt
index d29ff470246..8dadd248500 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0703repeatE.txt
@@ -1,4 +1,4 @@
-title::slideE::%wallpaper//
+title::slide0::%wallpaper//
%%%%%%%%%%%%%%%%//
main::Main Slide//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.cdy
index 5ac9feddda0..c1c3982eed3 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt
index 32cc01d94f2..a12edaf2baa 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thin.txt
@@ -5,19 +5,6 @@ main::メインスライド1//
\slidepage[m]//
%%%%%%%%%%%%%%%%//
-new::画面上のボタン//
-\slidepage//
-
-itemize//
-item::\Ltab{20mm}{Figure}静止画(Fhead+".tex")をfigに作成//
-item::\Ltab{20mm}{Title}タイトル(default : slide0)をfigに作成//
-item::\Ltab{20mm}{ParaF}パラパラ動画フォルダを作成\\//
-\Ltab{25mm}{}Setparaで引数を書いておく//
-item::\Ltab{20mm}{Slide}Texparent+".txt"からスライドを作成//
-item::\Ltab{20mm}{Sum}SummaryのPDFを作成//
-end//
-
-%%%%%%%%%%%%%%%%//
new::enumerate環境の使い方//
%repeat=3,para//
\slidepage//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.cdy
new file mode 100644
index 00000000000..5c618db5b25
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.out
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdf b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdf
new file mode 100644
index 00000000000..6819c709fb6
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex
new file mode 100644
index 00000000000..60e5abb1e34
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.tex
@@ -0,0 +1,161 @@
+%%% title s0704thinE
+\documentclass[landscape,10pt]{article}
+\special{papersize=\the\paperwidth,\the\paperheight}
+\usepackage{ketpic,ketlayer}
+\usepackage{ketslide}
+\usepackage{amsmath,amssymb}
+\usepackage{bm,enumerate}
+\usepackage[dvipdfmx]{graphicx}
+\usepackage{xcolor}
+\definecolor{slidecolora}{cmyk}{0.98,0.13,0,0.43}
+\definecolor{slidecolorb}{cmyk}{0,0.32,0.52,0}
+\definecolor{slidecolorc}{cmyk}{0,0.32,0.52,0}
+\definecolor{slidecolord}{cmyk}{0,0.32,0.52,0}
+\definecolor{slidecolore}{cmyk}{0,0,0,0.5}
+\definecolor{slidecolorf}{cmyk}{0,0,0,0.5}
+\definecolor{slidecolori}{cmyk}{0.98,0.13,0,0.43}
+\def\setthin#1{\def\thin{#1}}
+\setthin{0.1}
+\newcommand{\slidepage}[1][s]{%
+\setcounter{ketpicctra}{18}%
+\if#1m \setcounter{ketpicctra}{1}\fi
+\hypersetup{linkcolor=black}%
+
+\begin{layer}{118}{0}
+\putnotee{122}{-\theketpicctra.05}{\small\thepage/\pageref{pageend}}
+\end{layer}\hypersetup{linkcolor=blue}
+
+}
+\usepackage[dvipdfmx,colorlinks=true,linkcolor=blue,filecolor=blue]{hyperref}
+%wallpaper/%%%%%%%%%%%%%%%%
+
+\setmargin{20}{135}{15}{100}
+
+\ketslideinit
+
+\pagestyle{empty}
+
+\begin{document}
+
+\begin{layer}{120}{0}
+\putnotese{0}{0}{\input{fig/slide0.tex}}
+\end{layer}
+
+\def\mainslidetitley{22}
+\def\ketcletter{slidecolora}
+\def\ketcbox{slidecolorb}
+\def\ketdbox{slidecolorc}
+\def\ketcframe{slidecolord}
+\def\ketcshadow{slidecolore}
+\def\ketdshadow{slidecolorf}
+\def\slidetitlex{6}
+\def\slidetitlesize{1.3}
+\def\mketcletter{slidecolori}
+\def\mketcbox{yellow}
+\def\mketdbox{yellow}
+\def\mketcframe{yellow}
+\def\mslidetitlex{62}
+\def\mslidetitlesize{2}
+
+\color{black}
+\Large\bf\boldmath
+\addtocounter{page}{-1}
+
+
+%%%%%%%%%%%%%%%%%%%%
+
+\mainslide{Main slide}
+
+
+\slidepage[m]
+%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%
+
+\newslide{How to use enumerate}
+
+\vspace*{18mm}
+
+\hypertarget{para1pg1}{}
+
+\begin{layer}{120}{0}
+\putnotew{96}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut||\!\lhd$}}}}}
+\putnotew{101}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut|\!\lhd$}}}}}
+\putnotew{108}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}
+\putnotew{115}{73}{\hyperlink{para1pg2}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\rhd\!$}}}}}
+\putnotew{120}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}
+\putnotew{125}{73}{\hyperlink{para2pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}
+\putnotee{126}{73}{\scriptsize\color{blue} 1/3}
+\end{layer}
+
+\slidepage
+\begin{enumerate}[(1)]
+{\color[cmyk]{\thin,\thin,\thin,\thin}%
+\item
+Add :\hspace{0mm}:[(1)] to change the style of item.
+}%
+{\color[cmyk]{\thin,\thin,\thin,\thin}%
+\item
+Give a list of page numbers to be displayed.\\
+}%
+{\color[cmyk]{\thin,\thin,\thin,\thin}%
+\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc
+}%
+\end{enumerate}
+
+\sameslide
+
+\vspace*{18mm}
+
+\hypertarget{para1pg2}{}
+
+\begin{layer}{120}{0}
+\putnotew{96}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut||\!\lhd$}}}}}
+\putnotew{101}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut|\!\lhd$}}}}}
+\putnotew{108}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}
+\putnotew{115}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\rhd\!$}}}}}
+\putnotew{120}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}
+\putnotew{125}{73}{\hyperlink{para2pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}
+\putnotee{126}{73}{\scriptsize\color{blue} 2/3}
+\end{layer}
+
+\slidepage
+\begin{enumerate}[(1)]
+\item
+Add :\hspace{0mm}:[(1)] to change the style of item.
+{\color[cmyk]{\thin,\thin,\thin,\thin}%
+\item
+Give a list of page numbers to be displayed.\\
+}%
+{\color[cmyk]{\thin,\thin,\thin,\thin}%
+\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc
+}%
+\end{enumerate}
+
+\sameslide
+
+\vspace*{18mm}
+
+\hypertarget{para1pg3}{}
+
+\begin{layer}{120}{0}
+\putnotew{96}{73}{\hyperlink{para0pg0}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut||\!\lhd$}}}}}
+\putnotew{101}{73}{\hyperlink{para1pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut|\!\lhd$}}}}}
+\putnotew{108}{73}{\hyperlink{para1pg2}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}
+\putnotew{115}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{4.5mm}{\scalebox{1}{\scriptsize $\mathstrut\!\rhd\!$}}}}}
+\putnotew{120}{73}{\hyperlink{para1pg3}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}
+\putnotew{125}{73}{\hyperlink{para2pg1}{\fbox{\Ctab{2.5mm}{\scalebox{1}{\scriptsize $\mathstrut \!\rhd\!\!||$}}}}}
+\putnotee{126}{73}{\scriptsize\color{blue} 3/3}
+\end{layer}
+
+\slidepage
+\begin{enumerate}[(1)]
+\item
+Add :\hspace{0mm}:[(1)] to change the style of item.
+\item
+Give a list of page numbers to be displayed.\\
+\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc
+\end{enumerate}
+\label{pageend}\mbox{}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt
new file mode 100644
index 00000000000..70940e2d909
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0704thinE.txt
@@ -0,0 +1,16 @@
+title::slide0::%wallpaper/
+
+%%%%%%%%%%%%%%%%//
+main::Main slide//
+\slidepage[m]//
+
+%%%%%%%%%%%%%%%%//
+new::How to use enumerate//
+%repeat=3,para//
+\slidepage//
+
+%thin[2,-]::enumerate::[(1)]//
+%thin[2,-]::item::Add :\hspace{0mm}:[(1)] to change the style of item.//
+%thin[3,-]::item::Give a list of page numbers to be displayed.\\//
+%thin[3,-]::\hspace*{10mm}[1],\ [1,-],\ [1..3],\ [1..3,6], etc//
+%thin[2,- ]::end//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.cdy
index 623ff70d46a..5f020d82c92 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt
index 136eb183a93..5b8b7abb879 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705para.txt
@@ -2,9 +2,11 @@
タイトル::slide0//
%%%%%%%%%%%%%%%%//
-new::parapara//
+new::Example 1//
%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2//
+\slidepage//
%%%%%%%%%%%%%%%%//
-%new::parapara2//
-%%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
+new::Example2//
+%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
+\slidepage//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.cdy
index 380c28c8f69..b8035c68e78 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt
index 31852c305db..20a726b2acc 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0705paraE.txt
@@ -1,9 +1,11 @@
-title::slideE::%wallpaperi//
+title::slide0::%wallpaperi//
%%%%%%%%%%%%%%%%//
-new::parapara//
+new::Example1//
%repeat=,para=sinemove:{0}:s{65}{10}:input:1.2//
+\slidepage//
%%%%%%%%%%%%%%%%//
-%new::parapara2//
-%%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
+new::Example2//
+%repeat=,para=sinemove2:{0}:s{65}{10}:input:1.2//
+\slidepage//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.cdy
index 1849c63839c..29f07aa287b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt
index dc5d8a24148..b8e5ccb4f64 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animate.txt
@@ -2,9 +2,11 @@
%%%%%%%%%%%%%%%%//
main::メインスライド1//
+\slidepage[m]//
%%%%%%%%%%%%%%%%//
new::Animation1//
+\slidepage//
\begin{center}//
\input{fig/animsinemove}//
@@ -12,6 +14,7 @@ new::Animation1//
%%%%%%%%%%%%%%%%//
%new::Animation2//
+\slidepage//
%\begin{center}//
%\input{fig/animsinemove2}//
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.cdy
index 1b5fbb23b93..97d65a26658 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt
index 7e547c14f87..27ae34b0280 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s07slides/s0706animateE.txt
@@ -1,18 +1,21 @@
-Title::slideE::%wallpaper//
+Title::slide0::%wallpaper//
%%%%%%%%%%%%%%%%//
main::Main Slide//
+\slidepage[m]//
%%%%%%%%%%%%%%%%//
new::Animation1//
+\slidepage//
\begin{center}//
\input{fig/animsinemove}//
\end{center}//
%%%%%%%%%%%%%%%%//
-%new::Animation2//
+new::Animation2//
+\slidepage//
-%\begin{center}//
-%\input{fig/animsinemove2}//
-%\end{center}// \ No newline at end of file
+\begin{center}//
+\input{fig/animsinemove2}//
+\end{center}// \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdy
new file mode 100644
index 00000000000..04f5af090ea
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s09surfaceC/s0916multiandcut.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1301basic.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1301basic.cdy
index 36e58a987f6..2a559f793b9 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1301basic.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1301basic.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1303objparts.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1303objparts.cdy
index 983542dcfcf..068af73520d 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1303objparts.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1303objparts.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1304symbol.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1304symbol.cdy
index db100f6197b..47bf089fee8 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1304symbol.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1304symbol.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1305hyperpara.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1305hyperpara.cdy
index f6b66945c14..07a912d6098 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1305hyperpara.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1305hyperpara.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1306poly.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1306poly.cdy
index 59d1ca9e025..daa44cf7223 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1306poly.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1306poly.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1307poly2.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1307poly2.cdy
index ea275f1a0bb..35d8ec377c2 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1307poly2.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1307poly2.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1308discont.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1308discont.cdy
index a432e6e9369..1d1e697af04 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1308discont.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1308discont.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1309discont2.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1309discont2.cdy
index 19c6b6bbe3a..fabcbe8d3c5 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1309discont2.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1309discont2.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1310totaldiff.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1310totaldiff.cdy
index 21bd1bc081e..522352db39b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1310totaldiff.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1310totaldiff.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1311plate.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1311plate.cdy
index e4c9a238286..dabf7d469fd 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1311plate.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1311plate.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1312plane.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1312plane.cdy
index c99731ef66d..612333249ca 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1312plane.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1312plane.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1313changescale.cdy b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1313changescale.cdy
index 927196dfb76..ca9b331175c 100644
--- a/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1313changescale.cdy
+++ b/Master/texmf-dist/doc/support/ketcindy/samples/s13meshlab/s1313changescale.cdy
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java b/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java
index ce158837837..053e3b08d8b 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java
+++ b/Master/texmf-dist/doc/support/ketcindy/source/KetCindyPlugin/src/KetCindyPlugin.java
@@ -8,12 +8,13 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.io.*;
import java.util.Date;
+import java.nio.file.Files;
public class KetCindyPlugin extends CindyScriptPlugin {
@CindyScript("ketjavaversion")
public String ketjavaversion() {
- return "Ketjava 20180727";
+ return "Ketjava 20181125";
}
public String getName() {
@@ -347,6 +348,29 @@ public class KetCindyPlugin extends CindyScriptPlugin {
return path;
}
+ @CindyScript("readfile2str")
+ // 18.11.25
+ public static String readfile2str(String dir,String fname){
+ String res = "";
+ try {
+ File file = new File(dir+File.separator+fname);
+ if (!file.exists()) {
+ return "";
+ }
+ FileReader fileReader = new FileReader(file);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+ String data;
+ while ((data = bufferedReader.readLine()) != null) {
+ res=res+data+"//";
+ }
+ bufferedReader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return res;
+ }
+
+
@CindyScript("makedir")
// 17.09.06
public static String makedir(String dir,String dirname){
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark2.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark2.tex
new file mode 100644
index 00000000000..5963f1e89eb
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/anglemark2.tex
@@ -0,0 +1,26 @@
+%%% /Users/hannya/Desktop/fig/template1.tex
+%%% Generator=template1.cdy
+{\unitlength=8mm%
+\begin{picture}%
+(5.55,5.2)(-3,-1)%
+\special{pn 8}%
+%
+\special{pa -263 -1165}\special{pa -630 -0}\special{pa 630 -0}\special{pa -263 -1165}%
+\special{fp}%
+\settowidth{\Width}{A}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{A}\settodepth{\Depth}{A}\setlength{\Height}{\Depth}%
+\put(-0.8300000,3.8250000){\hspace*{\Width}\raisebox{\Height}{A}}%
+%
+\settowidth{\Width}{B}\setlength{\Width}{-1\Width}%
+\settoheight{\Height}{B}\settodepth{\Depth}{B}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-2.1250000,0.0000000){\hspace*{\Width}\raisebox{\Height}{B}}%
+%
+\settowidth{\Width}{C}\setlength{\Width}{0\Width}%
+\settoheight{\Height}{C}\settodepth{\Depth}{C}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.1250000,0.0000000){\hspace*{\Width}\raisebox{\Height}{C}}%
+%
+\settowidth{\Width}{$\circ$}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{$\circ$}\settodepth{\Depth}{$\circ$}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(-1.5200000,0.3500000){\hspace*{\Width}\raisebox{\Height}{$\circ$}}%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex
index 52ab681b820..5b610afa959 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/arrowdata.tex
@@ -1,72 +1,88 @@
-%%% test.tex 2014-11-30 20:20
-%%% test.sce 2014-11-30 20:20
-{\unitlength=6mm%
+%%% /Users/hannya/Desktop/fig/template1.tex
+%%% Generator=template1.cdy
+{\unitlength=8mm%
\begin{picture}%
-( 12.56000, 5.04000)( -1.00000, -1.00000)%
+(9.49,4.44)(-0.57,-0.66)%
\special{pn 8}%
%
-\special{pa 451 -633}\special{pa 472 -709}\special{pa 411 -660}\special{pa 431 -646}%
-\special{pa 451 -633}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 451 -633}\special{pa 472 -709}\special{pa 411 -660}\special{pa 431 -646}%
-\special{pa 451 -633}%
+\special{pa 0 -0}\special{pa 315 -945}%
\special{fp}%
-\special{pn 8}%
-\special{pa 724 -277}\special{pa 709 -354}\special{pa 631 -339}\special{pa 678 -308}%
-\special{pa 724 -277}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 724 -277}\special{pa 709 -354}\special{pa 631 -339}\special{pa 678 -308}%
-\special{pa 724 -277}%
+\special{pa 314 -866}\special{pa 315 -945}\special{pa 268 -882}\special{pa 291 -874}%
+\special{pa 314 -866}\special{pa 314 -866}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 314 -866}\special{pa 315 -945}\special{pa 268 -882}\special{pa 291 -874}%
+\special{pa 314 -866}\special{pa 315 -945}%
\special{fp}%
\special{pn 8}%
-\special{pn 16}%
-\special{pa 945 0}\special{pa 1417 -709}%
+\special{pa 315 -0}\special{pa 630 -945}%
+\special{fp}%
+\special{pa 629 -787}\special{pa 630 -945}\special{pa 536 -818}\special{pa 583 -803}%
+\special{pa 629 -787}\special{pa 629 -787}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 629 -787}\special{pa 630 -945}\special{pa 536 -818}\special{pa 583 -803}%
+\special{pa 629 -787}\special{pa 630 -945}%
\special{fp}%
\special{pn 8}%
-\special{pa 1375 -557}\special{pa 1417 -709}\special{pa 1294 -611}\special{pa 1334 -584}%
-\special{pa 1375 -557}\special{sh 1}\special{ip}%
-\special{pn 8}%
-\special{pa 1375 -557}\special{pa 1417 -709}\special{pa 1294 -611}\special{pa 1334 -584}%
-\special{pa 1375 -557}%
+\special{pa 630 -0}\special{pa 945 -945}%
+\special{fp}%
+\special{pa 1051 -734}\special{pa 945 -945}\special{pa 734 -839}\special{pa 892 -786}%
+\special{pa 1051 -734}\special{pa 1051 -734}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 1051 -734}\special{pa 945 -945}\special{pa 734 -839}\special{pa 892 -786}%
+\special{pa 1051 -734}\special{pa 945 -945}%
\special{fp}%
\special{pn 8}%
-\special{pa 1417 0}\special{pa 1428 -16}\special{fp}\special{pa 1438 -31}\special{pa 1449 -47}\special{fp}%
-\special{pa 1459 -63}\special{pa 1470 -79}\special{fp}\special{pa 1480 -94}\special{pa 1491 -110}\special{fp}%
-\special{pa 1501 -126}\special{pa 1512 -142}\special{fp}\special{pa 1522 -157}\special{pa 1533 -173}\special{fp}%
-\special{pa 1543 -189}\special{pa 1554 -205}\special{fp}\special{pa 1564 -220}\special{pa 1575 -236}\special{fp}%
-\special{pa 1585 -252}\special{pa 1596 -268}\special{fp}\special{pa 1606 -283}\special{pa 1617 -299}\special{fp}%
-\special{pa 1627 -315}\special{pa 1638 -331}\special{fp}\special{pa 1648 -346}\special{pa 1659 -362}\special{fp}%
-\special{pa 1669 -378}\special{pa 1680 -394}\special{fp}\special{pa 1690 -409}\special{pa 1701 -425}\special{fp}%
-\special{pa 1711 -441}\special{pa 1722 -457}\special{fp}\special{pa 1732 -472}\special{pa 1743 -488}\special{fp}%
-\special{pa 1753 -504}\special{pa 1764 -520}\special{fp}\special{pa 1774 -535}\special{pa 1785 -551}\special{fp}%
-\special{pa 1795 -567}\special{pa 1806 -583}\special{fp}\special{pa 1816 -598}\special{pa 1827 -614}\special{fp}%
-\special{pa 1837 -630}\special{pa 1848 -646}\special{fp}\special{pa 1858 -661}\special{pa 1869 -677}\special{fp}%
-\special{pa 1879 -693}\special{pa 1890 -709}\special{fp}%
-%
-\special{pa 1868 -633}\special{pa 1890 -709}\special{pa 1828 -660}\special{pa 1848 -646}%
-\special{pa 1868 -633}\special{sh 1}\special{ip}%
+\special{pa 945 -0}\special{pa 1260 -945}%
+\special{fp}%
+\special{pa 1101 -236}\special{pa 1102 -472}\special{pa 962 -282}\special{pa 1031 -259}%
+\special{pa 1101 -236}\special{pa 1101 -236}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 1101 -236}\special{pa 1102 -472}\special{pa 962 -282}\special{pa 1031 -259}%
+\special{pa 1101 -236}\special{pa 1102 -472}%
+\special{fp}%
\special{pn 8}%
-\special{pa 1868 -633}\special{pa 1890 -709}\special{pa 1828 -660}\special{pa 1848 -646}%
-\special{pa 1868 -633}%
+\special{pa 1260 -0}\special{pa 1575 -945}%
+\special{fp}%
+\special{pa 1573 -709}\special{pa 1575 -945}\special{pa 1435 -755}\special{pa 1539 -838}%
+\special{pa 1573 -709}\special{pa 1573 -709}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 1573 -709}\special{pa 1575 -945}\special{pa 1435 -755}\special{pa 1539 -838}%
+\special{pa 1573 -709}\special{pa 1575 -945}%
\special{fp}%
\special{pn 8}%
-\special{pn 24}%
-\special{pa 1883 10}\special{pa 1896 -10}\special{fp}\special{pa 1926 -54}\special{pa 1939 -74}\special{fp}%
-\special{pa 1969 -119}\special{pa 1982 -139}\special{fp}\special{pa 2012 -183}\special{pa 2025 -203}\special{fp}%
-\special{pa 2055 -248}\special{pa 2068 -268}\special{fp}\special{pa 2098 -312}\special{pa 2111 -332}\special{fp}%
-\special{pa 2141 -377}\special{pa 2154 -397}\special{fp}\special{pa 2184 -441}\special{pa 2197 -461}\special{fp}%
-\special{pa 2227 -505}\special{pa 2240 -525}\special{fp}\special{pa 2270 -570}\special{pa 2283 -590}\special{fp}%
-\special{pa 2313 -634}\special{pa 2326 -654}\special{fp}\special{pa 2356 -699}\special{pa 2369 -719}\special{fp}%
+\special{pa 1575 -0}\special{pa 1890 -945}%
+\special{fp}%
+\special{pa 1888 -709}\special{pa 1890 -945}\special{pa 1749 -755}\special{pa 1890 -945}%
+\special{pa 1888 -709}\special{pa 1888 -709}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 1888 -709}\special{pa 1890 -945}\special{pa 1749 -755}\special{pa 1890 -945}%
+\special{pa 1888 -709}\special{pa 1890 -945}%
+\special{fp}%
\special{pn 8}%
-\special{pa 2320 -557}\special{pa 2362 -709}\special{pa 2239 -611}\special{pa 2279 -584}%
-\special{pa 2320 -557}\special{sh 1}\special{ip}%
+\special{pn 16}%
+\special{pa 1890 -0}\special{pa 2205 -945}%
+\special{fp}%
\special{pn 8}%
-\special{pa 2320 -557}\special{pa 2362 -709}\special{pa 2239 -611}\special{pa 2279 -584}%
-\special{pa 2320 -557}%
+\special{pa 2203 -709}\special{pa 2205 -945}\special{pa 2064 -755}\special{pa 2134 -732}%
+\special{pa 2203 -709}\special{pa 2203 -709}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 2203 -709}\special{pa 2205 -945}\special{pa 2064 -755}\special{pa 2134 -732}%
+\special{pa 2203 -709}\special{pa 2205 -945}%
\special{fp}%
\special{pn 8}%
-\special{pa 0 0}\special{pa 472 -709}%
+{%
+\color[rgb]{1,0,0}%
+\special{pa 2205 -0}\special{pa 2520 -945}%
\special{fp}%
-\special{pa 472 0}\special{pa 945 -709}%
+}%
+{%
+\color[rgb]{1,0,0}%
+\special{pa 2518 -709}\special{pa 2520 -945}\special{pa 2379 -755}\special{pa 2484 -838}%
+\special{pa 2518 -709}\special{pa 2518 -709}\special{sh 1}\special{ip}%
+\special{pn 1}%
+\special{pa 2518 -709}\special{pa 2520 -945}\special{pa 2379 -755}\special{pa 2484 -838}%
+\special{pa 2518 -709}\special{pa 2520 -945}%
\special{fp}%
+\special{pn 8}%
+}%
\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/kobayashiE.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/kobayashiE.tex
new file mode 100644
index 00000000000..04eaee60462
--- /dev/null
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/kobayashiE.tex
@@ -0,0 +1,206 @@
+%%% /Users/Hannya/Desktop/KeTCindy/KeTCindyTools/fig/kobayashiE.tex
+%%% Generator=作表.cdy
+{\unitlength=10mm%
+\begin{picture}%
+(16.02,5.6)(0,0)%
+\special{pn 8}%
+%
+\special{pa 0 -2205}\special{pa 0 -0}%
+\special{fp}%
+\special{pa 327 -2205}\special{pa 327 -0}%
+\special{fp}%
+\special{pa 1476 -2205}\special{pa 1476 -0}%
+\special{fp}%
+\special{pa 1772 -2205}\special{pa 1772 -0}%
+\special{fp}%
+\special{pa 3551 -2205}\special{pa 3551 -0}%
+\special{fp}%
+\special{pa 4224 -2205}\special{pa 4224 -0}%
+\special{fp}%
+\special{pa 6307 -2205}\special{pa 6307 -0}%
+\special{fp}%
+\special{pa 0 -2205}\special{pa 6307 -2205}%
+\special{fp}%
+\special{pa 0 -1890}\special{pa 6307 -1890}%
+\special{fp}%
+\special{pa 0 -1575}\special{pa 6307 -1575}%
+\special{fp}%
+\special{pa 0 -1260}\special{pa 6307 -1260}%
+\special{fp}%
+\special{pa 0 -945}\special{pa 6307 -945}%
+\special{fp}%
+\special{pa 0 -630}\special{pa 6307 -630}%
+\special{fp}%
+\special{pa 0 -315}\special{pa 6307 -315}%
+\special{fp}%
+\special{pa 0 -0}\special{pa 6307 -0}%
+\special{fp}%
+\settowidth{\Width}{No}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{No}\settodepth{\Depth}{No}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.4100000,5.2000000){\hspace*{\Width}\raisebox{\Height}{No}}%
+%
+\settowidth{\Width}{name}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{name}\settodepth{\Depth}{name}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2900000,5.2000000){\hspace*{\Width}\raisebox{\Height}{name}}%
+%
+\settowidth{\Width}{No}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{No}\settodepth{\Depth}{No}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.1200000,5.2000000){\hspace*{\Width}\raisebox{\Height}{No}}%
+%
+\settowidth{\Width}{name}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{name}\settodepth{\Depth}{name}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(6.7600000,5.2000000){\hspace*{\Width}\raisebox{\Height}{name}}%
+%
+\settowidth{\Width}{No}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{No}\settodepth{\Depth}{No}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(9.8800000,5.2000000){\hspace*{\Width}\raisebox{\Height}{No}}%
+%
+\settowidth{\Width}{name}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{name}\settodepth{\Depth}{name}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(13.3800000,5.2000000){\hspace*{\Width}\raisebox{\Height}{name}}%
+%
+\settowidth{\Width}{r01}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{r01}\settodepth{\Depth}{r01}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.4100000,4.4000000){\hspace*{\Width}\raisebox{\Height}{r01}}%
+%
+\settowidth{\Width}{Tetrahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Tetrahedron}\settodepth{\Depth}{Tetrahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2900000,4.4000000){\hspace*{\Width}\raisebox{\Height}{Tetrahedron}}%
+%
+\settowidth{\Width}{s02}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s02}\settodepth{\Depth}{s02}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.1200000,4.4000000){\hspace*{\Width}\raisebox{\Height}{s02}}%
+%
+\settowidth{\Width}{Icosidodecahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Icosidodecahedron}\settodepth{\Depth}{Icosidodecahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(6.7600000,4.4000000){\hspace*{\Width}\raisebox{\Height}{Icosidodecahedron}}%
+%
+\settowidth{\Width}{s08}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s08}\settodepth{\Depth}{s08}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(9.8800000,4.4000000){\hspace*{\Width}\raisebox{\Height}{s08}}%
+%
+\settowidth{\Width}{Rhombicuboctahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Rhombicuboctahedron}\settodepth{\Depth}{Rhombicuboctahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(13.3800000,4.4000000){\hspace*{\Width}\raisebox{\Height}{Rhombicuboctahedron}}%
+%
+\settowidth{\Width}{r02}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{r02}\settodepth{\Depth}{r02}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.4100000,3.6000000){\hspace*{\Width}\raisebox{\Height}{r02}}%
+%
+\settowidth{\Width}{Octahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Octahedron}\settodepth{\Depth}{Octahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2900000,3.6000000){\hspace*{\Width}\raisebox{\Height}{Octahedron}}%
+%
+\settowidth{\Width}{s03}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s03}\settodepth{\Depth}{s03}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.1200000,3.6000000){\hspace*{\Width}\raisebox{\Height}{s03}}%
+%
+\settowidth{\Width}{Truncatedtetrahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Truncatedtetrahedron}\settodepth{\Depth}{Truncatedtetrahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(6.7600000,3.6000000){\hspace*{\Width}\raisebox{\Height}{Truncatedtetrahedron}}%
+%
+\settowidth{\Width}{s09}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s09}\settodepth{\Depth}{s09}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(9.8800000,3.6000000){\hspace*{\Width}\raisebox{\Height}{s09}}%
+%
+\settowidth{\Width}{Rhombicosidodecahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Rhombicosidodecahedron}\settodepth{\Depth}{Rhombicosidodecahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(13.3800000,3.6000000){\hspace*{\Width}\raisebox{\Height}{Rhombicosidodecahedron}}%
+%
+\settowidth{\Width}{r03}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{r03}\settodepth{\Depth}{r03}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.4100000,2.8000000){\hspace*{\Width}\raisebox{\Height}{r03}}%
+%
+\settowidth{\Width}{Cube}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Cube}\settodepth{\Depth}{Cube}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2900000,2.8000000){\hspace*{\Width}\raisebox{\Height}{Cube}}%
+%
+\settowidth{\Width}{s04}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s04}\settodepth{\Depth}{s04}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.1200000,2.8000000){\hspace*{\Width}\raisebox{\Height}{s04}}%
+%
+\settowidth{\Width}{Truncatedoctahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Truncatedoctahedron}\settodepth{\Depth}{Truncatedoctahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(6.7600000,2.8000000){\hspace*{\Width}\raisebox{\Height}{Truncatedoctahedron}}%
+%
+\settowidth{\Width}{s10}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s10}\settodepth{\Depth}{s10}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(9.8800000,2.8000000){\hspace*{\Width}\raisebox{\Height}{s10}}%
+%
+\settowidth{\Width}{Truncatedcuboctahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Truncatedcuboctahedron}\settodepth{\Depth}{Truncatedcuboctahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(13.3800000,2.8000000){\hspace*{\Width}\raisebox{\Height}{Truncatedcuboctahedron}}%
+%
+\settowidth{\Width}{r04}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{r04}\settodepth{\Depth}{r04}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.4100000,2.0000000){\hspace*{\Width}\raisebox{\Height}{r04}}%
+%
+\settowidth{\Width}{Dodecahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Dodecahedron}\settodepth{\Depth}{Dodecahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2900000,2.0000000){\hspace*{\Width}\raisebox{\Height}{Dodecahedron}}%
+%
+\settowidth{\Width}{s05}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s05}\settodepth{\Depth}{s05}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.1200000,2.0000000){\hspace*{\Width}\raisebox{\Height}{s05}}%
+%
+\settowidth{\Width}{Truncatedcube}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Truncatedcube}\settodepth{\Depth}{Truncatedcube}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(6.7600000,2.0000000){\hspace*{\Width}\raisebox{\Height}{Truncatedcube}}%
+%
+\settowidth{\Width}{s11}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s11}\settodepth{\Depth}{s11}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(9.8800000,2.0000000){\hspace*{\Width}\raisebox{\Height}{s11}}%
+%
+\settowidth{\Width}{Truncatedicosidodecahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Truncatedicosidodecahedron}\settodepth{\Depth}{Truncatedicosidodecahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(13.3800000,2.0000000){\hspace*{\Width}\raisebox{\Height}{Truncatedicosidodecahedron}}%
+%
+\settowidth{\Width}{r05}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{r05}\settodepth{\Depth}{r05}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.4100000,1.2000000){\hspace*{\Width}\raisebox{\Height}{r05}}%
+%
+\settowidth{\Width}{Icosahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Icosahedron}\settodepth{\Depth}{Icosahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2900000,1.2000000){\hspace*{\Width}\raisebox{\Height}{Icosahedron}}%
+%
+\settowidth{\Width}{s06}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s06}\settodepth{\Depth}{s06}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.1200000,1.2000000){\hspace*{\Width}\raisebox{\Height}{s06}}%
+%
+\settowidth{\Width}{Truncatedicosahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Truncatedicosahedron}\settodepth{\Depth}{Truncatedicosahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(6.7600000,1.2000000){\hspace*{\Width}\raisebox{\Height}{Truncatedicosahedron}}%
+%
+\settowidth{\Width}{s12L/R}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s12L/R}\settodepth{\Depth}{s12L/R}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(9.8800000,1.2000000){\hspace*{\Width}\raisebox{\Height}{s12L/R}}%
+%
+\settowidth{\Width}{snubcube}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{snubcube}\settodepth{\Depth}{snubcube}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(13.3800000,1.2000000){\hspace*{\Width}\raisebox{\Height}{snubcube}}%
+%
+\settowidth{\Width}{s01}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s01}\settodepth{\Depth}{s01}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(0.4100000,0.4000000){\hspace*{\Width}\raisebox{\Height}{s01}}%
+%
+\settowidth{\Width}{Cuboctahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Cuboctahedron}\settodepth{\Depth}{Cuboctahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(2.2900000,0.4000000){\hspace*{\Width}\raisebox{\Height}{Cuboctahedron}}%
+%
+\settowidth{\Width}{s07}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s07}\settodepth{\Depth}{s07}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(4.1200000,0.4000000){\hspace*{\Width}\raisebox{\Height}{s07}}%
+%
+\settowidth{\Width}{Truncateddodecahedron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Truncateddodecahedron}\settodepth{\Depth}{Truncateddodecahedron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(6.7600000,0.4000000){\hspace*{\Width}\raisebox{\Height}{Truncateddodecahedron}}%
+%
+\settowidth{\Width}{s13L/R}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{s13L/R}\settodepth{\Depth}{s13L/R}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(9.8800000,0.4000000){\hspace*{\Width}\raisebox{\Height}{s13L/R}}%
+%
+\settowidth{\Width}{Snubdodecahedoron}\setlength{\Width}{-0.5\Width}%
+\settoheight{\Height}{Snubdodecahedoron}\settodepth{\Depth}{Snubdodecahedoron}\setlength{\Height}{-0.5\Height}\setlength{\Depth}{0.5\Depth}\addtolength{\Height}{\Depth}%
+\put(13.3800000,0.4000000){\hspace*{\Width}\raisebox{\Height}{Snubdodecahedoron}}%
+%
+\end{picture}}% \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplotE.cdy b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplotE.cdy
deleted file mode 100644
index 07c61ba3fb0..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/parabolaplotE.cdy
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setaxtheta.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax-theta.tex
index 89db63255ea..89db63255ea 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setaxtheta.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/setax-theta.tex
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shadeE.cdy b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shadeE.cdy
deleted file mode 100644
index 84bfea633a3..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/shadeE.cdy
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tangent.cdy b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tangent.cdy
deleted file mode 100644
index 8fa4946db1c..00000000000
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/Fig/tangent.cdy
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
index c43602753fb..ecec1632a56 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceE.tex
@@ -146,7 +146,7 @@ Hide coordinate axes.
\verb| Letter([A,"ne","A",B,"sw","B",C,"se","C"]);|
\begin{center}
-\input{Fig/FigE}
+\input{Fig/addax2}
\end{center}
\end{cmd}
@@ -155,13 +155,13 @@ Hide coordinate axes.
\itemket{Usage}Setax(a list of parameters);
\itemket{Description}Generic function to set the style of axis.
\itemket{Details}Parameters are:\\
-1. Style of axis ("l'' ; line(default), "a'' : arrow)\\
+1. Style of axis ("l" ; line(default), "a" : arrow)\\
2. Name of horizontal ax ( default is x)\\
-3. Posion of horizontal name (default is "e'')\\
+3. Posion of horizontal name (default is "e")\\
4. Name of horizontal ax ( default is y)\\
-5. Posion of horizontal name (default is "n'')\\
+5. Posion of horizontal name (default is "n")\\
6. Name of origin (default is O)\\
-7. Position of origin (default is "sw'')
+7. Position of origin (default is "sw")
\itemket{Examples}\mbox{}
\verb|Setax(["a","","","","","","nw"]);|\\
@@ -169,7 +169,7 @@ Hide coordinate axes.
\verb|Setax(["a","\theta","","x","w"]);|
\begin{center}
-\input{Fig/setax(theta)}
+\input{Fig/setax-theta}
\end{center}
\end{cmd}
@@ -317,8 +317,8 @@ $f(x)=\left\{\begin{array}{l}1 (x\geq 0)\\ -1 (x<0)\\ \end{array}\right.$
\begin{cmd}{Setpt}{setpt}
\itemket{Usage}Setpt(ratio);
\itemket{Description}Generic funtion to set the size of points.
-\itemket{Details}''ratio'' is the ratio from the standard size.\\
-Size can be change as a option of ``Pointdata''.
+\itemket{Details}"ratio" is the ratio from the standard size.\\
+Size can be change as a option of ``Pointdata".
\itemket{Examples}\mbox{}
\verb|Pointdata("1",A,["Size=1"]);|\\
@@ -382,7 +382,7 @@ Argument is real number or list. If it is a real number, vertical scaling. If t
\verb|Setscaling(0.5);|\\
\verb|Plotdata("1","-2*x^2+10*x","x");|\\
\verb|p1=[5/2,0]; p2=[5/2,25/2]; p3=[0,25/2];|\\
-\verb|Listplot(``1'',[p1,p2,p3],["da"]);|\\
+\verb|Listplot(``1",[p1,p2,p3],["da"]);|\\
\verb|Expr([[5,0],"s2w","5",p3,"w2","\frac{25}{2}",p1,"s4","\frac{5}{2}"]);|
\begin{center}
@@ -459,7 +459,7 @@ It is recommended to put this function to the beginning of a script.
\item Direction
-The direction is represented by e(east : right), w(west: left), n(north : upper), s(south:lower) and c(center). The distance from the specified position can also be given as a numerical value. For example, ''e2'' and ''e3'' are placed twice and three times of the slightly unit distance away from ''e'', respectively.
+The direction is represented by e(east : right), w(west: left), n(north : upper), s(south:lower) and c(center). The distance from the specified position can also be given as a numerical value. For example, "e2" and "e3" are placed twice and three times of the slightly unit distance away from "e", respectively.
\begin{center}\input{Fig/ewns} \end{center}
@@ -677,23 +677,37 @@ This Point P on the asteroid can be move along the curve on the Euclidean view.
\end{cmd}
%------------Arrowdata--------------------------------
-\begin{cmd}{Arrowdata}{arrow data}
+\begin{cmd}{Arrowdata}{arrowdata}
\itemket{Usage}Arrowdata(name,[starting point, ending point] , options)
\itemket{Description}draw an arrow line between two points.
-Options : arrowhead size, arrowhead angle,position,line type,line color.\\
+Options : arrowhead size, arrowhead angle,position,cut position,line type,line color,trimming.\\
All options do not always reflect on Euclidean view.
\itemket{Examples}\mbox{}
-\verb|Arrowdata([A,B]);|\\
-\verb|Arrowdata("1",[[2,0],[4,3]],[1,45,0.5]); | //(2,0) to (4,3) , angle : 45$^\circ$\\
-\verb|Arrowdata([C,D],[2,1,1,"dr,2"]);|\\
-\verb|Arrowdata([E,F],["da,0.5"]);|\\
-\verb|Arrowdata([G,H],[2,1,"do,2,3","Color=[1,0,0]"]);| \\%
+\verb| Arrowdata("1",[A,B]);|\\
+\verb| Arrowdata("2",[[1,0],[2,3]],[2]);|\\
+\verb| Arrowdata("3",[[2,0],[3,3]],[3,45]);|\\
+\verb| Arrowdata("4",[[3,0],[4,3]],[3,1,0.5]);|\\
+\verb| Arrowdata("5",[[4,0],[5,3]],[3,1,1,0.5]);|\\
+\verb| Arrowdata("6",[[5,0],[6,3]],[3,1,1,1]);|\\
+\verb| Arrowdata("7",[[6,0],[7,3]],[3,"dr,2"]);|\\
+\verb| Arrowdata("8",[[7,0],[8,3]],[3,1,1,0.5,"Color=red"]);|\\
\begin{center}
\input{Fig/arrowdata}
\end{center}
+
+\begin{layer}{150}{0}
+\putnotese{75}{0}{ \input{Fig/trimarrow}}
+\end{layer}
+\hspace{20mm}
+
+\verb| Circledata("1",[A,A.xy+[0.5,0]]);|\\
+\verb| Circledata("2",[B,B.xy+[0.7,0]]);|\\
+\verb| Arrowdata([A,B],["Cutend=[0.5,0.7]"]);|\\
+\verb| Letter([A,"c","A",B,"c","B"]);|\\
+
\end{cmd}
%--------------Arrowhead------------------------------
@@ -1096,7 +1110,7 @@ In the case of a single B\'ezier curve, \verb|[ ]| outside the list can be omitt
Mkbeziercrv(name, [nodes, control points], options) is same as Bezier(name, [nodes, control points], options). \\
\verb|Mkbeziercrv("n",[[A,B,C],[[D],[E,F]]])| is same as \verb|Bezier("n",[A,B,C],|\\
\verb|[[D],[E,F]])|.
-The name of the plotting data is ''bz''.
+The name of the plotting data is "bz".
\item[Example1]\mbox{}
\verb|Mkbeziercrv("5",[[[A,B,C],[[D],[E,F]]],[[G,H,K,L],[[M],[N,O],[P]]]]);|
@@ -1501,7 +1515,7 @@ Assign a value to the letter "b".\\
The differential equation and its initial conditions should be specified as arguments.
\itemket{Examples}\mbox{}
-The solution curve of the equation $y''=-y$ with initial conditions $y(0)=1,y'(0)=0$
+The solution curve of the equation $y"=-y$ with initial conditions $y(0)=1,y'(0)=0$
\verb|Deqplot("1","y``=-y","x",0, [1,0]);|\\
\begin{center}
@@ -1575,7 +1589,7 @@ Draw ellipses with options.\\
\itemket{Description}Function to draw the graph of a periodic function.
\itemket{Details}
\verb|defL| is a list of fun(str),interval,division number.\\
-The options are "Con=n/do, Color=name'' for discontinuous parts.
+The options are "Con=n/do, Color=name" for discontinuous parts.
ex. "Con=do,Color=red" , " Con=n". Default is broken line and draw.
@@ -1658,7 +1672,7 @@ The option "nth" is used to set the number when plotting data has multi intersec
Write the string at the position specified by position (or coordinates) and direction. \\
The position (or coordinates) can also be specified by the geometric point name. \\
The direction is "e", "w", "n", "s", "c".
-The distance from the specified position can also be given as a numerical value. For example, ''e2'' and ''e3'' are placed twice and three times of the slightly unit distance away from ''e'', respectively. \\
+The distance from the specified position can also be given as a numerical value. For example, "e2" and "e3" are placed twice and three times of the slightly unit distance away from "e", respectively. \\
Multiple strings can be passed in the form of a list. \\
\itemket{Remark}\mbox{}
The derivative symbol $'$ uses \$ $'$ \$ (single quart) in mathematical mode (interleaved with two \$ s).
@@ -1731,7 +1745,7 @@ It is also possible to write as follows, abbreviated for the amount of movement.
\hspace{15mm} dir : direction vector : coordinate or name
-\hspace{15mm} move: "t'':tangent , "n":normal
+\hspace{15mm} move: "t":tangent , "n":normal
\hspace{15mm} string : expression
\itemket{Examples}\mbox{}
@@ -1757,7 +1771,7 @@ It is also possible to write as follows, abbreviated for the amount of movement.
\hspace{15mm} numerical value size of mark (default is 1)
-\hspace{15mm} draw text \verb|"Expr=n,str"|
+\hspace{15mm} draw text \verb|"Expr=n,str"| or \verb|"Let=n,str"|
\itemket{Examples}\mbox{}
@@ -1771,6 +1785,17 @@ draw an angle mark at interior angles of a triangle, write characters.\\
\begin{center}
\input{Fig/anglemark}
\end{center}
+
+draw $\circ$ at interior angles of a triangle.\\
+
+\verb| Listplot([A,B,C,A]);|\\
+\verb| Letter([A,"n1","A",B,"w1","B",C,"e1","C"]);|\\
+\verb| Anglemark([C,B,A],["Expr=\circ","nodisp"]);|\\
+
+\begin{center}
+\input{Fig/anglemark2}
+
+\end{center}
\item{Remark} You can draw an angle mark with a parallelogram.
Refer to \hyperlink{paramark}{Paramark} .
\end{cmd}
@@ -1879,7 +1904,7 @@ Extra options :\\
\verb|ticks=apply(-5..5,x,[x,text(x)]);| // ticks is [ [-5,"5"],...,[5,"5"] ]\\
\verb|ticks=remove(ticks,[[0,"0"]]); | // [0,"0"] is removed\\
-\verb|ticks=flatten(ticks); | // ticks becomes [-5,"5'',...,5,"5'']\\
+\verb|ticks=flatten(ticks); | // ticks becomes [-5,"5",...,5,"5"]\\
\verb|Htickmark(ticks);|
\begin{center}
@@ -2067,7 +2092,7 @@ In the last example we draw the pice of parabola:$y=x^2$ which is cut off by the
\item[Description]This function makes a closed curve form the list of plotdata.
\item[Details]Options are:\\
near point from start position : Set in case where the first curve and the last curve have multi intersects.\\
-\verb|"dr","da", "do","`notex","nodisp",''Color= "| : as usual.
+\verb|"dr","da", "do","`notex","nodisp","Color= "| : as usual.
\item[Examples]\mbox{}
\verb|Plotdata("1","x^2","x");|\\
@@ -2094,7 +2119,10 @@ near point from start position : Set in case where the first curve and the last
\itemket{Details}Options are:\\
\hspace*{5mm}angle(degree,45), interval(ratio,1) of hatches, \\
\hspace*{5mm}\verb|"Max=(default:20)"| maximum of the number of hatches.\\
-\hspace*{5mm}\verb|"Out=y/n(default:n)"| whether it uses R and make the data file or not.
+\hspace*{5mm}\verb|"No=pointlist"| not executed when any point is selected\\
+\hspace*{5mm}\verb|"File=y/m/n(default:n)"| whether to make data file or not\\
+\hspace*{5mm}\verb|"Check=pointlist"| data file updated if any point is changed
+
\itemket{Examples}\mbox{}
@@ -2171,7 +2199,7 @@ near point from start position : Set in case where the first curve and the last
\verb|Hatchdata("8",["i"],[["crAB"]]);|
\begin{center}
-\input{Fig/HatchZuKita7E.tex}\hspace{10mm}\input{Fig/HatchZuKita8.tex}
+\input{Fig/HatchZuKita7E.tex}\hspace{10mm}\input{Fig/HatchZuKita8E.tex}
\end{center}
%\verb|Hatchdata("9a",["iii"],[["crAB"],["ln1","n"],["ln2","n"]]);|\\
@@ -2891,8 +2919,8 @@ This section describes data processing by \ketcindy . Cooperation with spreadsh
\itemket{Usage}Tab2list(string data, option);
\itemket{Description}Sheet function to convert contents of string data to list.
\item[Ditails]The options are as follows.\\
-\verb|"Blank=a"| : translate cells that is NULL to ``a''\\
-\verb|"Sep=b"| : separators of the string are ``b''. The default separators are Tab code.
+\verb|"Blank=a"| : translate cells that is NULL to ``a"\\
+\verb|"Sep=b"| : separators of the string are ``b". The default separators are Tab code.
\itemket{Examples} \mbox{}
In the Cindyscrpt editor, prepare a local variable, for example "data".
@@ -3029,7 +3057,7 @@ The image files are PDF, PNG, JPG, and so on.\\
\itemket{Description}Generic function to change colorcode from colortype1 to colortype2.
\itemket{Details}Return value is changed color code.
-Color type is one of "rgb'',"cmyk",''hsv''.
+Color type is one of "rgb","cmyk","hsv".
\item[Example]\mbox{}
RGB to CMYK
@@ -3178,7 +3206,7 @@ Draw the point A near the origin.
%-------------Slider-------------------------------
\begin{cmd}{Slider}{slider}
-\itemket{Usage}Slider("endpoint1-pt-endpoint2'',endpoint1,endpoint2);
+\itemket{Usage}Slider("endpoint1-pt-endpoint2",endpoint1,endpoint2);
\itemket{Description}Generic function to make a slider on a Euclidean view.\\
\itemket{Examples}\mbox{}
@@ -3199,8 +3227,8 @@ Draw the point A near the origin.
\itemket{Details}\hspace{9mm} Convert a real value to a string to the specified number of digits after the decimal point.
\itemket{Examples}\mbox{}
-\verb|Sprintf(pi,2);| // returns "3.14''.\\
-\verb|Sprintf(pi,7);| // returns "3.1415927''.\\
+\verb|Sprintf(pi,2);| // returns "3.14".\\
+\verb|Sprintf(pi,7);| // returns "3.1415927".\\
\verb|Remark| : \verb|pi| is a reserved variable in Cindyscript, representing the number $\pi$.
@@ -3240,8 +3268,8 @@ Draw the point A near the origin.
Cindyscript has a function \verb|format(value, number)|, like as Textformat.
\itemket{Examples}\mbox{}
-\verb| Textformat(1/6,4);| // return value is string "0.1667'' \\
-\verb| format(1/6,4); | // return value is string "0.1667''
+\verb| Textformat(1/6,4);| // return value is string "0.1667" \\
+\verb| format(1/6,4); | // return value is string "0.1667"
\verb| dt=[1/6,0.5];|\\
\verb| Textformat(dt,4); | // return valu is string "[ 0.1667 , 0.5 ]" \\
@@ -3256,7 +3284,7 @@ Cindyscript has a function \verb|format(value, number)|, like as Textformat.
\begin{cmd}{Toupper}{toupper}
\itemket{Usage}Toupper(string);
\itemket{Description}This function returns the upper case letters of the string.
-\itemket{Examples}\verb|Toupper("aBc123'');| // "ABC123" is returned.
+\itemket{Examples}\verb|Toupper("aBc123");| // "ABC123" is returned.
%\verb|Windispg();|
\end{cmd}
@@ -3390,11 +3418,13 @@ Before you use \verb|Framedata|, you need to take two diagonal points of the dra
\itemket{Usage}Histplot(name,data,options)
\itemket{Description}create histograms.
\itemket{Details}data is given in a list or read an external data file in csv format.\\
+Return value is list of breaks and frequency.
+
You can specify the breaks as a vector of points to get exactly what is wanted, for example\\
-\hspace{20mm} \verb|''Breaks=[0,10,20,30,40,50,60]''| .\\
+\hspace{20mm} \verb|"Breaks=[0,10,20,30,40,50,60]"| .\\
The Sturges algorithm is the default.\\
Other options:\\
-\verb|''Rel=yes/no''| : draw a histogram of proportions or frequencies (default is no)\\
+\verb|"Rel=yes/no"| : draw a histogram of proportions or frequencies (default is no)\\
\itemket{Examples} \mbox{}
@@ -3456,7 +3486,7 @@ Example2\\
\itemket{Usage}PlotdiscR(name,fromaula,var)
\itemket{Description}draw graphs of discrete distributions by calling R’s built-in functions.
-\itemket{Details}The ''d'' functions in R to draw graphs of discrete distributions:\\
+\itemket{Details}The "d" functions in R to draw graphs of discrete distributions:\\
dbinom (binomial distribution), dpois (poisson distribution), dgeom (geometric distribution), etc.
\itemket{Examples} \mbox{}
@@ -3475,6 +3505,7 @@ Example2
\verb| PlotdiscR("3","dgeom(k,0.3)","k=[0,10]");|
\end{cmd}
+
%------------Readcsv--------------------------------
\begin{cmd}{Readcsv}{readcsv}
@@ -3486,6 +3517,17 @@ option: By the argument "Flat=y", you can flatten a list of the data (the defaul
\itemket{Examples} \mbox{}
Examples can be found in the command Boxplot().
\end{cmd}
+
+%------------Readlines--------------------------------
+\begin{cmd}{Readlines}{readlines}
+
+\itemket{Usage}Readlines(path,filename,option)
+\itemket{Description}read a text file line by line. The return value is a list of strings.
+\itemket{Details}The first argument sets a path to the current working folder where the data file is (the default is fig).
+If you put the data file in fig folder, the pathname can be omitted. Otherwise a full pathname is required.\\
+option: By the argument "Flat=y", you can flatten a list of the data (the default is "Flat=n" ).
+\end{cmd}
+
%------------Scatterplot--------------------------------
\begin{cmd}{Scatterplot}{scatterplot}
@@ -3529,8 +3571,8 @@ Position is coordinate or name of point.
\itemket{Details}The second argument is a command to be executed by Maxima.\\
Create a list (eg. cmdL) consisting of a repetition of commands and argument lists, and execute at once.\\
There is no return value.
-For the result (of undefined value), the value of the variable of the command list last described (argument is the empty list) is assigned to the variable specified by ''name''.
-When you want to return more than one result, if you describe it by separating it with ''::'', it will be substituted into the list.
+For the result (of undefined value), the value of the variable of the command list last described (argument is the empty list) is assigned to the variable specified by "name".
+When you want to return more than one result, if you describe it by separating it with "::", it will be substituted into the list.
\itemket{Examples} \mbox{}
Example1: derivative
@@ -4116,7 +4158,7 @@ Drawing of a curved surface with hidden line processing is performed in the foll
\itemket{Usage}Isangle()
\itemket{Description}Decide the selection of the angle slider.
-\itemket{Details}Returns ``true'' if select slider, and ``false'' if not.\\
+\itemket{Details}Returns ``true" if select slider, and ``false" if not.\\
In drawing including hidden line processing, reaction is bad when recalculating while moving the viewpoint. With this function, you can write code that does not recalculate while moving the viewpoint.
\itemket{Examples} \mbox{}
@@ -4171,7 +4213,7 @@ then\\
\verb|Changestyle3d("sl3d1",["dr,3"]);| // one edge become thick.\\
or\\
\verb|edges=apply(1..6,"sl3d"+text(#));|\\
-\verb|Changestyle3d(edges,["notex"]);| // all edges become ``notex''.\\
+\verb|Changestyle3d(edges,["notex"]);| // all edges become ``notex".\\
\end{cmd}
%------------Concatobj--------------------------------
@@ -4212,7 +4254,7 @@ For example code, see \hyperlink{execcmdc}{ExeccmdC()}.
We execute the following program then the computer will display "PD=[ax2d,AB2d]" on the console.\\
\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
-\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix"); |\\
+\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\
\verb| Spaceline("1",[A,B]); |\\
\verb| println("PD="+Datalist2d());|
@@ -4228,7 +4270,7 @@ We execute the following program then the computer will display "PD=[ax2d,AB2d]"
We execute the following program then the computer will display "PD=[ax3d,AB3d]" on the console.\\
\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
-\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix"); |\\
+\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\
\verb| Spaceline("1",[A,B]); |\\
\verb| println("PD="+Datalist3d()); |
@@ -4286,7 +4328,7 @@ If we specify only option2 then we denote that option1 is empty list:[].
left figure
\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); |\\
-\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix"); |\\
+\verb| Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]); |\\
\verb| Spaceline([A,B]); |\\
\verb| fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"]; |\\
\verb| Startsurf(); |\\
@@ -4328,7 +4370,7 @@ Embed an equilateral triangle and its circumscribed circle in a plane in 3D spac
\verb|Defvar("vo=[3,3,3]");| // Defined in R\\
\verb|Defvar("vx=[0,1,0]");| // Defined in R\\
\verb|Defvar("vy=[0,0,1]");| // Defined in R\\
-\verb|Putpoint3d(["A",[3,3,3]],"fix");|\\
+\verb|Putpoint3d(["A",[3,3,3]]);|\\
\verb|Circledata("1",[[0,0],[2,0]],["nodisp"]);|\\
\verb|Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);|\\
\verb|Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");|\\
@@ -4339,26 +4381,26 @@ Following view is as \verb|TH|=75,\verb|FI|=70.
\begin{center} \input{Fig/embed01} \end{center}
(2) A, B, and C are defined instead of vo, vx, vy defined by Defvar. But, in this case, points B and C are not drawn in the plane. So, the figure may be difficult to understand.\\
-\verb|Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]],"fix");|\\
+\verb|Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]);|\\
\verb|Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");|\\
\begin{center}
\includegraphics[bb=0.00 0.00 477.02 383.02,width=8cm]{Fig/embed03.pdf}
\end{center}
To draw the B and C on the embedded figure, code changes as follows.
-\verb|Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]],"fix");|\\
+\verb|Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]);|\\
\verb|Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");|\\
(3) The function {\tt \hyperlink{perpplane}{Perpplane}} is used in next.\\
\verb|Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]");|\\
-\verb|Putpoint3d(["O",[0,0,0],"P",[1,1,2]],"fix");|\\
+\verb|Putpoint3d(["O",[0,0,0],"P",[1,1,2]]);|\\
\verb|Perpplane("E-F","P",P3d-O3d,"put");|\\
\verb|vec1=3*(E3d-P3d);|\\
\verb|vec2=3*(F3d-P3d);|\\
-\verb|Putpoint3d(["A",P3d+vec1+vec2],"fix");|\\
-\verb|Putpoint3d(["B",P3d+vec1-vec2],"fix");|\\
-\verb|Putpoint3d(["C",P3d-vec1-vec2],"fix");|\\
-\verb|Putpoint3d(["D",P3d-vec1+vec2],"fix");|\\
+\verb|Putpoint3d(["A",P3d+vec1+vec2]);|\\
+\verb|Putpoint3d(["B",P3d+vec1-vec2]);|\\
+\verb|Putpoint3d(["C",P3d-vec1-vec2]);|\\
+\verb|Putpoint3d(["D",P3d-vec1+vec2]);|\\
\verb|Spaceline("1",[A,B,C,D,A]);|\\
\verb|Circledata("1",[[0,0],[2,0]],["nodisp"]);|\\
\verb|Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);|\\
@@ -4377,7 +4419,7 @@ To draw the B and C on the embedded figure, code changes as follows.
\itemket{Details}PD is plotting data of curve. Curved face is given by formula.
\itemket{Examples} \mbox{}
-\verb|Putpoint3d(["A",[0,-3,0],"B",[0,3,2]],"fix");|\\
+\verb|Putpoint3d(["A",[0,-3,0],"B",[0,3,2]]);|\\
\verb|Spaceline("1",[A,B]);|\\
\verb|fd=[|\\
\verb| "z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)",|\\
@@ -4400,7 +4442,7 @@ To draw the B and C on the embedded figure, code changes as follows.
\begin{cmd}{IntersectsgpL}{intersectsgpL}
\itemket{Usage}IntersectsgpL(name,segment,plane,option)
\itemket{Description}Returns a intersection of a line segment and plane.
-\itemket{Details}Specify a line segment with two endpoints. Specify the plane as three points that it contains. Options are ``put'' or ``draw'', and if omitted select ``draw''.\\
+\itemket{Details}Specify a line segment with two endpoints. Specify the plane as three points that it contains. Options are ``put" or ``draw", and if omitted select ``draw".\\
Following two programs return the same result.\\
\verb| IntersectsgpL("P","A-B","C-D-E"); |\\
\verb| IntersectsgpL("P",[A3d,B3d],[C3d,D3d,E3d]); |
@@ -4412,10 +4454,10 @@ cutcube
\verb| Hn=3; |\\
\verb| Putaxes3d(Hn); |\\
-\verb| Putpoint3d("A",[Hn,Hn,0],"fix"); |\\
-\verb| Putpoint3d("B",[Hn,0,Hn],"fix"); |\\
-\verb| Putpoint3d("C",[Hn,Hn,Hn],"fix"); |\\
-\verb| Putpoint3d("D",[0,Hn,Hn],"fix"); |\\
+\verb| Putpoint3d("A",[Hn,Hn,0]); |\\
+\verb| Putpoint3d("B",[Hn,0,Hn]); |\\
+\verb| Putpoint3d("C",[Hn,Hn,Hn]); |\\
+\verb| Putpoint3d("D",[0,Hn,Hn]); |\\
\verb| Putonseg3d("E",X,B); |\\
\verb| Putonseg3d("F",Z,B); |\\
\verb| Putonseg3d("G",Z,D); |\\
@@ -4423,7 +4465,7 @@ cutcube
\verb| IntersectsgpL("N","D-Y","E-F-G","put"); |\\
\verb| phd=Concatobj([[O,X,A,Y],[X,A,M,E],[A,Y,N,M],[Y,N,G,Z,O], |\\
\verb| [O,Z,F,E,X],[Z,F,G],[E,M,N,G,F]]); |\\
-\verb| VertexEdgeFace("1",phd,["Edg=nogeo"]); |\\
+\verb| VertexEdgeFace("1",phd); |\\
\verb| Nohiddenbyfaces("1","phf3d1"); |
\hspace{20mm}\includegraphics[bb=0.00 0.00 713.04 327.02,width=10cm]{Fig/IntersectsgpL0.pdf}
@@ -4481,12 +4523,12 @@ If we specify only option2 then option1 must be null list:[].\\
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
-Putpoint3d("A",2*[-1,-1/sqrt(3),0],"fix");
-Putpoint3d("B",2*[1,-1/sqrt(3),0],"fix");
-Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0],"fix");
-Putpoint3d("D",2*[0,0,2*sqrt(6)/3],"fix");
+Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
+Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+Putpoint3d("D",2*[0,0,2*sqrt(6)/3]);
phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
-VertexEdgeFace("1",phd,["Edg=nogeo"]);
+VertexEdgeFace("1",phd);
Nohiddenbyfaces("1","phf3d1");
\end{verbatim}
(left figure)
@@ -4533,15 +4575,15 @@ Draw point A,B,C,D by draw tool of Cinderella.
\end{layer}
\verb| Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); |\\
-\verb| Putpoint3d(["O",[0,0,0]],"fix"); |\\
-\verb| Putpoint3d(["P",[1,1,1]],"fix"); |\\
+\verb| Putpoint3d(["O",[0,0,0]]); |\\
+\verb| Putpoint3d(["P",[1,1,1]]); |\\
\verb| Perpplane("E-F","P",P3d-O3d,"put"); |\\
\verb| vec1=2*(E3d-P3d); |\\
\verb| vec2=2*(F3d-P3d); |\\
-\verb| Putpoint3d(["A",P3d+vec1+vec2],"fix"); |\\
-\verb| Putpoint3d(["B",P3d+vec1-vec2],"fix"); |\\
-\verb| Putpoint3d(["C",P3d-vec1-vec2],"fix"); |\\
-\verb| Putpoint3d(["D",P3d-vec1+vec2],"fix"); |\\
+\verb| Putpoint3d(["A",P3d+vec1+vec2]); |\\
+\verb| Putpoint3d(["B",P3d+vec1-vec2]); |\\
+\verb| Putpoint3d(["C",P3d-vec1-vec2]); |\\
+\verb| Putpoint3d(["D",P3d-vec1+vec2]); |\\
\verb| Spaceline("1",[A,B,C,D,A]); |\\
\verb| Arrowdata([O,P],["dr,2"]); |\\
\verb| Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]); |\\
@@ -4568,10 +4610,10 @@ We get the coordinate of the point H in the variable H3d for the following examp
Example
\verb|Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]"); |\\
-\verb|Putpoint3d("O",[0,0,0],"fix"); |\\
-\verb|Putpoint3d("A",[3,0,0],"fix"); |\\
-\verb|Putpoint3d("B",[0,3,0],"fix"); |\\
-\verb|Putpoint3d("C",[0,0,3],"fix"); |\\
+\verb|Putpoint3d("O",[0,0,0]); |\\
+\verb|Putpoint3d("A",[3,0,0]); |\\
+\verb|Putpoint3d("B",[0,3,0]); |\\
+\verb|Putpoint3d("C",[0,0,3]); |\\
\verb|Perppt("H","O","A-B-C","put"); |\\
\verb|Spaceline("1",[A,B,C,A]); |\\
\verb|Spaceline("2",[O,H]); |\\
@@ -4613,11 +4655,11 @@ Example
\verb|Setdirectory( Dirhead+"/data/polyhedrons_obj");| //Many polyhedron data exist in this directory.\\
\verb|phd=Readobj("s06.obj",["size=3"]);| //"s06" is the name of truncated icosahedron data.\\
\verb|Setdirectory(Dirwork);| //Chage work space.\\
-\verb|VertexEdgeFace("s06",phd,["Edg=nogeo"]);|\\
+\verb|VertexEdgeFace("s06",phd);|\\
\verb|Phparadata("1","s06");| //default usage, left figure\\
The last two lines we can write the following.\\
-\verb|VertexEdgeFace("1",phd,["Edg=nogeo"]);|\\
+\verb|VertexEdgeFace("1",phd);|\\
\verb|Phparadata("1","1");|
\begin{center}
\includegraphics[bb=0 0 1452 730 , width=10cm]{Fig/phparadata01.pdf}
@@ -4683,12 +4725,12 @@ Make reference to \hyperlink{partcrv3d}{Partcrv3d()}
\itemket{Usage}Putpoint3d(list of 3D-points, option)
\itemket{Description}Generic function to draw the geometric point in the space.
-\itemket{Details}Option is "fix" or "free"(default).
+\itemket{Details}Option is "free" or "fix"(default).
\itemket{Examples} \mbox{}
\verb|Putpoint3d(["A",[2,1,3]]);|\\
-\verb|Putpoint3d(["A",[2,1,3]],"free");| //same as above\\
-\verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]],"fix");|\\
+\verb|Putpoint3d(["A",[2,1,3]],"free");| \\
+\verb|Putpoint3d(["A",[1,1,1],"C",[1,0,1]]);|\\
These points don't output in the \TeX file. To output in the \TeX file use the following \hyperlink{pointdata}{Pointdata()} or \hyperlink{drwpt}{Drawpoint()}
@@ -4702,15 +4744,21 @@ In the 3D-drawings the coordinate of the point name A is A3d.
\itemket{Usage}Readobj(filename, option)
\itemket{Description}Read in the polyhedron data in the folder name \verb|polyhedrons_obj|
-\itemket{Details}Option is ["size=n"] then we get the magnification of n times. If n is negative value then we have the image of vertical inversion.
+\itemket{Details}\mbox{}
+
+Data of all \verb|Johnson solid| can be downloaded from\\
+\hspace*{20mm}\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/}\\
+Store the folder into the work folder of \ketcindy\ for example, and execute\\
+\verb| Setdirectory(gethome+"/ketcindy/polyhedrons_obj");|\\
+\verb| polydt=Readobj("r02.obj",["size=2"]);|\\
+\verb| Setdirectory(Dirwork);|\\
+Then the data of \verb|r02.obj| are assigned to the variable \verb|polydt|.
+
+Option is ["size=n"] then we get the magnification of n times. If n is negative value then we have the image of vertical inversion.
\itemket{Examples} \mbox{}
-\verb|Setdirectory( Dirhead+"/data/polyhedrons_obj");| //Many polyhedron data exist in this directory.\\
-\verb|polydt=Readobj("r02.obj",["size=2"]);| //"r02" is the name of regular octahedron data.\\
-\verb|Setdirectory(Dirwork);| //Chage work space.\\
-\verb|VertexEdgeFace("1",polydt,["Edg=nogeo"]);| //output data name is phf3d1\\
+\verb|VertexEdgeFace("1",polydt);| //output data name is phf3d1\\
\verb|Nohiddenbyfaces("1","phf3d1");|
-\begin{center} \input{Fig/readobj} \end{center}
\begin{center} \input{Fig/readobj} \end{center}
@@ -4718,10 +4766,6 @@ The main polyhedral data is as follows.
\input{Fig/kobayashiE}
-Besides this, there are facing convex polyhedrons from n01 to n92.
-
-cf.http://mitani.cs.tsukuba.ac.jp/polyhedron/
-
\end{cmd}
@@ -4734,7 +4778,7 @@ cf.http://mitani.cs.tsukuba.ac.jp/polyhedron/
\itemket{Examples}\mbox{}
\verb| Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,0,1], |\\
-\verb| "E",[1,0,0]],"fix"); |\\
+\verb| "E",[1,0,0]]); |\\
\verb| Spaceline("1",[A,B,C,A]); |\\
Reflection on the point D
@@ -4779,7 +4823,7 @@ Reflection on the plane BDE
\itemket{Examples} \mbox{}
\verb|Xyzax3data("","x=[-5,4]","y=[-5,5]","z=[-5,4]",["a","O"]); |\\
-\verb|Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]],"fix"); |\\
+\verb|Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]]); |\\
\verb|Spaceline("1",[A,B,C,A]); |\\
\verb|Spaceline("2",[C,D]); |\\
\verb|Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,["dr,2"]); |\\
@@ -4818,7 +4862,7 @@ Reflection on the plane BDE
\itemket{Details}Vec is a three-dimensional vector to express ratio. The center and options are given in a list.
\itemket{Examples}\mbox{}
-\verb|Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2]],"fix");|\\
+\verb|Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2]]);|\\
\verb|Spaceline("1",[A,B,C,A]);|\\
\verb|Spacecurve("1","[cos(t)+1,sin(t)+1,1]","t=[0,2*pi]",["Num=100"]);|\\
\verb|Scaledata3d("1",["sl3d1","sc3d1"],[2,2,2],[[0,0,0],"dr,2"]);|\\
@@ -4836,9 +4880,9 @@ Reflection on the plane BDE
\itemket{Details}$\text{Scalepoint3d}([a_i],[v_i],[c_i])=[(a_i-c_i)v_i+c_i]$
\itemket{Examples} \mbox{}
-\verb|Putpoint3d(["A",[2,-1,2]],"fix");|\\
+\verb|Putpoint3d(["A",[2,-1,2]]);|\\
\verb|pt=Scalepoint3d(A3d,[3,2,4],[1,1,1]); //pt=[4,-3,5]|\\
-\verb|Putpoint3d(["B",pt],"fix");|
+\verb|Putpoint3d(["B",pt]);|
\end{cmd}
@@ -4919,11 +4963,18 @@ If we specify only option2 then we denote that option1 is empty list:[].
\itemket{Usage}Skeletonparadata(name, PDlist, PDlist, option)
\itemket{Description}Generic function to draw the lines by performing hidden line processing.
\itemket{Details}This function draw the second argument(the list of the lines) by performing hidden line processing which are hidden by the third argument(the list of the lines). If both arguments are omitted the function draw all lines by performing hidden line processing.
+
+Options:\\
+\hspace*{5mm}\verb|real number| gap of line\\
+\hspace*{5mm}\verb|"No=pointlist"| not executed when any point is selected\\
+\hspace*{5mm}\verb|"File=y/m/n(default:n)"| whether to make data file or not\\
+\hspace*{5mm}\verb|"Check=pointlist"| data file updated if any point is changed
+
\itemket{Examples} \mbox{}
\verb| Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");| //Data name is "ax3d".\\
-\verb| Putpoint3d(["A",[0,-2,-2]],"fix");|\\
-\verb| Putpoint3d(["B",[-1,1,3]],"fix");|\\
+\verb| Putpoint3d(["A",[0,-2,-2]]);|\\
+\verb| Putpoint3d(["B",[-1,1,3]]);|\\
\verb| Spaceline([A,B]);| //Data name is "AB3d".\\
\verb| Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);| //Data name is "sc3d1".\\
@@ -4986,7 +5037,7 @@ Since polygons drawn with VertexEdgeFace() can not be translated by this functio
\verb|Setdirectory(Dirwork); |\\
\verb|dn=length(phd_1); |\\
\verb|repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]); |\\
-\verb|VertexEdgeFace("1",phd,["Edg=nogeo"]); |\\
+\verb|VertexEdgeFace("1",phd); |\\
\begin{center}
\input{Fig/translate01}
@@ -5001,9 +5052,9 @@ Since polygons drawn with VertexEdgeFace() can not be translated by this functio
\itemket{Details}$\text{Translatepoint3d}([a_i],[v_i])=[a_i+v_i]$
\itemket{Examples} \mbox{}
-\verb|Putpoint3d(["A",[1,0,0]],"fix"); |\\
+\verb|Putpoint3d(["A",[1,0,0]]); |\\
\verb|pt=Translatepoint3d(A3d,[-1,1,1]); |\\
-\verb|Putpoint3d(["B",pt],"fix"); |
+\verb|Putpoint3d(["B",pt]); |
\end{cmd}
@@ -5015,18 +5066,16 @@ Since polygons drawn with VertexEdgeFace() can not be translated by this functio
\itemket{Details}We use the faces data of the polyhedron.\\
The second argument is the list of vertexes list and the faces list.\\
For example, the faces data of the tetrahedron is [[A,B,C,D],[[1,2,3],[1,2,4],[1,3,4],[2,3,4]]].\\
-Option is the following.\\
-no option: output edges as the geometric elements but don't to \TeX file.\\
-\verb|["Edg=nogeo"]|: output data to \TeX file.\\
-\verb|["Pt=free"]|: Vertexes are free geometric points.
+%Option is the following.\\
+
\itemket{Examples} \mbox{}
-\verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0],"fix"); |\\
-\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0],"fix"); |\\
-\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0],"fix"); |\\
-\verb| Putpoint3d("D",2*[0,0,sqrt(3)],"fix"); |\\
+\verb| Putpoint3d("A",2*[-1,-1/sqrt(3),0]); |\\
+\verb| Putpoint3d("B",2*[1,-1/sqrt(3),0]); |\\
+\verb| Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]); |\\
+\verb| Putpoint3d("D",2*[0,0,sqrt(3)]); |\\
\verb| phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]); |\\
-\verb| VertexEdgeFace("1",phd,["Edg=nogeo"]); |\\
+\verb| VertexEdgeFace("1",phd); |\\
//Three data lists are made, phv3d1:vertex, phe3d1:edge and phf3d1:face.
\begin{center} \input{Fig/vertex01} \end{center}
\end{cmd}
@@ -5252,6 +5301,8 @@ Options are the followings.\\
\hyperlink{putonline}{PutonLine} \> put a point on the line.\\
\hyperlink{putonSeg}{Putonseg} \> put a point on the segment.\\
\hyperlink{putpoint}{Putpoint} \> put a point.\\
+\hyperlink{readcsv}{Readcsv} \> read a file in csv format.\\
+\hyperlink{readlines}{Readlines} \> read a text file line by line.\\
\hyperlink{reflectdata}{Reflectdata} \> draw a reflective curve.\\
\hyperlink{reflectpoint}{Reflectpoint} \> return the reflect point.\\
\hyperlink{rotatedata}{Rotatedata} \> rotate plotting data.\\
@@ -5413,4 +5464,4 @@ Options are the followings.\\
\end{tabbing}
-\end{document}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
index 937c5a10cc1..9ca5cfb90a2 100644
--- a/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
+++ b/Master/texmf-dist/doc/support/ketcindy/source/ketmanual/KeTCindyReferenceJ.tex
@@ -150,7 +150,7 @@ Parent ボタンで出力するファイル名は 初期設定がないので,
\end{verbatim}
\vspace{\baselineskip}
-\hspace{10mm} \input{Fig/addax1} \input{Fig/FigE}
+\hspace{10mm} \input{Fig/addax1} \input{Fig/addax2}
\hypertarget{setax}{}
@@ -194,7 +194,7 @@ Parent ボタンで出力するファイル名は 初期設定がないので,
\hspace{10mm} \verb|Setax(["a","\theta","","x","w"]);|
\vspace{\baselineskip}
-\hspace{10mm}\input{Fig/setax(theta)}
+\hspace{10mm}\input{Fig/setax-theta}
\vspace{\baselineskip}
@@ -708,12 +708,18 @@ optionsは,$x$座標の範囲をリストで与える。
\hypertarget{putonseg}{}
\item[関数] PutonSeg(点名 , 座標1 ,座標2 )
\item[機能] 線分上に点を作る
-\item[説明] 座標1,座標2を通る線分上に点名の点を作る。できた点は線分に対してインシデントとなる。
+\item[説明] 座標1,座標2を端点とする線分上に点名の点を作る。できた点は線分に対してインシデントとなる。指定した点がすでに存在する場合は動かさない。
\vspace{\baselineskip}
-【例】 点A,\ Bを通る線分上に点Pをとる。
+【例】
+
+線分AB上に点Cをとる。
+
+ \verb|PutonSeg("C",A,B);|
+
+点(-1,0),(2,2)を通る線分上に点Cをとる。
- \verb|PutonSeg("P",A,B);|
+ \verb|PutonSeg("C",[[-1,0],[2,2]]);|
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
@@ -840,43 +846,35 @@ optionsは,$x$座標の範囲をリストで与える。
\item[機能] 2点間を結ぶ矢線を描く。
\item[説明] name は,座標を数値で与えるときに必要。幾何要素の識別名で与えるときはなくてもよい。
-optionsは矢じりの形状などの指定で
+optionsは矢じりの形状などの指定。
-\hspace{10mm} [ 矢じりの大きさ, 開き角, 矢じり位置, 線種,線の表示色]
+\hspace{10mm} [ 矢じりの大きさ, 開き角, 矢じり位置,切り込み位置, 線種, 線の表示色,トリミング]
-のリストで与える。
+のリストで与える。矢じりの大きさから切り込み位置までは数で,後方のオプションを指定するときは,前方も書く。
開き角は60分法で与える。ただし,° はつけない。5未満の時は18°の倍数指定とする。
- 矢じり位置は,線分の長さを1とした始点からの距離。
+矢じり位置は,線分の長さを1とした始点からの距離。
+
+切り込み位置は,0のとき三角形の矢じり,1のとき線のみの矢じりとなる。
ただし,Cinderellaの画面上には全ては反映されない。たとえば,太さ指定をしても画面上では太さは同じ。
- トリミング : "Cutend=m" または "Cutend=[m,n]"
-
-右辺が数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。
+トリミング : "Cutend=m" または "Cutend=[m,n]" で,右辺が数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。mが負のときは延長する。
\vspace{\baselineskip}
-【例】線分ABを矢線にする。
+【例】オプションの設定とその結果を示す。
-\hspace{10mm} \verb|Arrowdata([A,B]);|
-
-始点が(2,0) , 終点が(4,3) ,開き角45°,EFの中点に矢じりの先端
-
-\hspace{10mm} \verb|Arrowdata("1",[[2,0],[4,3]],[1,45,0.5]);|
-
-大きさ2,太さ2
-
-\hspace{10mm} \verb|Arrowdata([C,D],[2,1,1,"dr,2"]);|
-
-破線で太さ0.5
-
-\hspace{10mm} \verb|Arrowdata([E,F],["da,0.5"]);|
-
- 少し間が空いて太い点線で,Cinderellaの画面上では赤で表示する。
-
-\hspace{10mm} \verb|Arrowdata([G,H],[2,1,"do,2,3","Color=[1,0,0]"]);|
-
+\begin{verbatim}
+ Arrowdata("1",[A,B]);
+ Arrowdata("2",[[1,0],[2,3]],[2]);
+ Arrowdata("3",[[2,0],[3,3]],[3,45]);
+ Arrowdata("4",[[3,0],[4,3]],[3,1,0.5]);
+ Arrowdata("5",[[4,0],[5,3]],[3,1,1,0.5]);
+ Arrowdata("6",[[5,0],[6,3]],[3,1,1,1]);
+ Arrowdata("7",[[6,0],[7,3]],[3,"dr,2"]);
+ Arrowdata("8",[[7,0],[8,3]],[3,1,1,0.5,"Color=red"]);
+\end{verbatim}
\hspace{20mm} \input{Fig/arrowdata}
【例】2つの円を矢線で結ぶ。
@@ -1027,7 +1025,7 @@ optionの働きの例
トリミング : "Cutend=m" または "Cutend=[m,n]"
-数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。
+数のときは両端をmだけカットする。リストのときは始点をm,終点をnだけカットする。mが負のときは延長する。
\begin{tabbing}
1234567890123456789012345678901234\=\kill
@@ -2157,7 +2155,7 @@ options は線種が有効
\hypertarget{anglemark}{}
\item[関数] Anglemark(name,点リスト , options)
\item[機能] 点リストで示された角に弧の形状の角の印をつける。
-\item[説明] Listplot() などと同様,点リストが点名の場合はnameは省略できる。
+\item[説明] Listplot() などと同様,点リストが点名の場合はnameは省略できる。弧を描かず文字だけを入れる場合は options に "nodisp" を指定する。
optionsは次の通り。
@@ -2165,12 +2163,12 @@ optionsは次の通り。
線種 "dr, n" , "da,m,n" , "do,m,n"
-"Expr=文字" : 文字を入れる
+"Expr=文字" または "Letter=文字" : 文字を入れる
"Expr=位置 , 文字" : 位置を指定して文字を入れる。位置は頂点からの距離。
\vspace{\baselineskip}
-【例】三角形の内角に印をいれ,文字を書き込む。
+【例】三角形の内角に印をいれ,文字を書き込む。(下図左)
\begin{verbatim}
Listplot([A,B,C,A]);
Letter([A,"n1","A",B,"w1","B",C,"e1","C"]);
@@ -2179,7 +2177,15 @@ optionsは次の通り。
Anglemark([A,C,B],[2,"dr,3","Expr=2,\alpha"]);
\end{verbatim}
-\hspace{20mm}\input{Fig/anglemark}
+【例】三角形の内角に弧を描かず,$\circ$ だけ書き込む。(下図右)
+\begin{verbatim}
+ Listplot([A,B,C,A]);
+ Letter([A,"n1","A",B,"w1","B",C,"e1","C"]);
+ Anglemark([C,B,A],["Expr=\circ","nodisp"]);
+\end{verbatim}
+
+
+\input{Fig/anglemark}\hspace{5mm}\input{Fig/anglemark2}
※角の印には平行四辺形の形状のものもある。\hyperlink{paramark}{Paramark()}を参照のこと。
@@ -2535,8 +2541,10 @@ optionsは線種 "dr, n" , "da,m,n" , "do,m,n"
\item[説明] 引数は,曲線名,内部外部のパターンを与える''i'',''o''の文字列,閉曲線を与える曲線と領域の内部を定める方向のリストとオプション。\\
オプション(カッコ内はデフォルト値)\\
 角度(45),間隔(1),\verb|"Max=(20)"| 斜線の最大本数,\\
- \verb|"Out=y/n (n)"| Rを呼び出して外部ファイルを作るか
-
+ \verb|"No=点リスト"| 点リストの点が選ばれているときは実行しない\\
+ \verb|"File=y/m/n (n)"| データファイルを作るか\\
+ \verb|"Check=点リスト"| 点リストの点が変更されていたら,ファイルを作り直す
+
\vspace{\baselineskip}
【例】円の内部。(次図左)
\begin{verbatim}
@@ -4214,6 +4222,7 @@ Rは主に統計解析のためのソフトウェアで, binorm(二項分
\item[関数] Histplot(name,data,option)
\item[機能] Rを利用してヒストグラムを描く
\item[説明] dataはリストにして作成するか,外部ファイルからReadcsv()で読み込む。
+戻り値は,階級境界値と,対応する度数のリスト。
階級境界値(ブレークポイント)は,自動的に設定される(スタージェスの公式による)が,オプションで,
@@ -4335,8 +4344,8 @@ PlotdiscR("3","dgeom(k,0.3)","k=[0,10]");
\hypertarget{readcsv}{}
\item[関数] Readcsv(path,filename,option)
-\item[機能] Rを利用してcsvファイルを読む。
-\item[説明] Rを使ってcsvファイルを読みこむ。戻り値は読み込んだデータのリスト。
+\item[機能] csvファイルを読む。
+\item[説明] csvファイルを読みこむ。戻り値は読み込んだデータのリスト。
第1引数の path は,ファイルを作業フォルダ( 初期設定は fig )に置いた場合は省略することができる。そうでない場合は,フルパスで指定する。たとえば,"/Users/Hoge/Desktop"
@@ -4370,6 +4379,13 @@ option は,"Flat=" で,"Flat=y" の場合は,読み込んだデータを
とする。
+\hypertarget{readlines}{}
+\item[関数] Readlines(path,filename,option)
+\item[機能] テキストファイルを1行ずつ読む。
+\item[説明] テキストファイルを1行ずつ読みこむ。戻り値は読み込んだ文字列のリスト。
+
+第1引数の path は,ファイルを作業フォルダ( 初期設定は fig )に置いた場合は省略することができる。そうでない場合は,フルパスで指定する。たとえば,"/Users/Hoge/Desktop"
+
\vspace{\baselineskip}
\hypertarget{scatterplot}{}
\item[関数] Scatterplot(name,filename/datalist,option1,option2)
@@ -6037,7 +6053,7 @@ options1 は分割数と誤差限界, options2 は陰線の線種。
【例】
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix");
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
Spaceline("1",[A,B]);
println("PD="+Datalist2d());
\end{verbatim}
@@ -6053,7 +6069,7 @@ options1 は分割数と誤差限界, options2 は陰線の線種。
【例】
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix");
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
Spaceline("1",[A,B]);
println("PD="+Datalist3d());
\end{verbatim}
@@ -6117,7 +6133,7 @@ options2だけを指定したい場合は,options1 を空リスト [ ] にす
初期設定では陰線は点線で表示される。(下図左)
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
- Putpoint3d(["A",[0,-3,0],"B",[0,3,3]],"fix");
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,3]]);
Spaceline([A,B]);
fd=["z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)","R=[0,2]","T=[0,2*pi]","e"];
Startsurf();
@@ -6160,7 +6176,7 @@ options2を ["nodisp"] にすると,陰線は非表示になる。(下図右
Defvar("vo=[3,3,3]");
Defvar("vx=[0,1,0]");
Defvar("vy=[0,0,1]");
- Putpoint3d(["A",[3,3,3]],"fix");
+ Putpoint3d(["A",[3,3,3]]);
Circledata("1",[[0,0],[2,0]],["nodisp"]);
Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
Embed("1",["cr1","sg1"],"vo+x*vx+y*vy","[x,y]");
@@ -6174,7 +6190,7 @@ options2を ["nodisp"] にすると,陰線は非表示になる。(下図右
原点,基本ベクトルを,点を作図して次のようにすることもできる。この場合は Defvar() は不要。
\begin{verbatim}
- Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]],"fix");
+ Putpoint3d(["A",[3,3,3],"B",[0,1,0],"C",[0,0,1]]);
Embed("1",["cr1","sg1"],"A3d+x*B3d+y*C3d","[x,y]");
\end{verbatim}
\begin{center}
@@ -6183,21 +6199,21 @@ options2を ["nodisp"] にすると,陰線は非表示になる。(下図右
この場合,点B,Cの座標がそのまま基本ベクトルとなっているが,原点Aに対して描画平面上にはB,Cがないので図がわかりにくい。図をわかりやすくするならば次のようにする。
\begin{verbatim}
- Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]],"fix");
+ Putpoint3d(["A",[3,3,3],"B",[3,4,3],"C",[3,3,4]]);
Embed("1",["cr1","sg1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]");
\end{verbatim}
また,平面を記述するのに,平面の原点と法線ベクトルを用いて Perpplane() を用いると,基本ベクトルが生成されるので、これを利用することができる。次のスクリプトでは,Skeletonparadata() を用いて陰線処理もしている。
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-8,5]","z=[-5,5]");
- Putpoint3d(["O",[0,0,0],"P",[1,1,2]],"fix");
+ Putpoint3d(["O",[0,0,0],"P",[1,1,2]]);
Perpplane("E-F","P",P3d-O3d,"put");
vec1=3*(E3d-P3d);
vec2=3*(F3d-P3d);
- Putpoint3d(["A",P3d+vec1+vec2],"fix");
- Putpoint3d(["B",P3d+vec1-vec2],"fix");
- Putpoint3d(["C",P3d-vec1-vec2],"fix");
- Putpoint3d(["D",P3d-vec1+vec2],"fix");
+ Putpoint3d(["A",P3d+vec1+vec2]);
+ Putpoint3d(["B",P3d+vec1-vec2]);
+ Putpoint3d(["C",P3d-vec1-vec2]);
+ Putpoint3d(["D",P3d-vec1+vec2]);
Spaceline("1",[A,B,C,D,A]);
Circledata("1",[[0,0],[2,0]],["nodisp"]);
Listplot("1",[[0,2],[-sqrt(3),-1],[sqrt(3),-1],[0,2]],["nodisp"]);
@@ -6221,7 +6237,7 @@ options2を ["nodisp"] にすると,陰線は非表示になる。(下図右
\vspace{\baselineskip}
【例】回転放物面と線分の交点の座標を表示する。
\begin{verbatim}
- Putpoint3d(["A",[0,-3,0],"B",[0,3,2]],"fix");
+ Putpoint3d(["A",[0,-3,0],"B",[0,3,2]]);
Spaceline("1",[A,B]);
fd=[
"z=4-(x^2+y^2)","x=R*cos(T)","y=R*sin(T)",
@@ -6242,12 +6258,28 @@ options2を ["nodisp"] にすると,陰線は非表示になる。(下図右
\vspace{\baselineskip}
\hypertarget{intersectsgpL}{}
\item[関数] IntersectsgpL(点名,線分,面,描画方法)
-\item[機能] 空間の線分と平面の交点を作図する
+\item[機能] 空間の線分(直線)と平面の交点を求める。
\item[説明] 引数の線分は線分の端点を "A-B" の形もしくは空間座標のリストで与える。
引数の面は,面内の3点を "C-D-E" の形もしくは空間座標のリストで与える。
+
+ 戻り値は,[pt,flag1,flag2,val1,val2]
- 描画方法は,"put" または "draw" で,描画方法を指定しない場合は "draw" と同じ。"draw"では交点が緑の点で表示されるだけで,幾何点はできない。"put" では幾何点を作る。
+ pt:直線と平面の交点の座標。直線と平面が平行で交点が存在しない場合は空リスト[]
+
+ flag1 : 交点が線分内にあれば true ,なければ false
+
+ flag2 : 交点が面内にあれば true,なければ false
+
+ val1,val2 :
+
+ 描画方法は,"put" または "i" , "e" 。
+
+ put : 幾何点を作る
+
+ i : 線分内にあれば点を描く
+
+ e : 平面で交われば点を描く
\vspace{\baselineskip}
【例】座標のリストで与える記述例\\
@@ -6270,10 +6302,10 @@ options2を ["nodisp"] にすると,陰線は非表示になる。(下図右
\begin{verbatim}
Hn=3;
Putaxes3d(Hn);
- Putpoint3d("A",[Hn,Hn,0],"fix");
- Putpoint3d("B",[Hn,0,Hn],"fix");
- Putpoint3d("C",[Hn,Hn,Hn],"fix");
- Putpoint3d("D",[0,Hn,Hn],"fix");
+ Putpoint3d("A",[Hn,Hn,0]);
+ Putpoint3d("B",[Hn,0,Hn]);
+ Putpoint3d("C",[Hn,Hn,Hn]);
+ Putpoint3d("D",[0,Hn,Hn]);
Putonseg3d("E",X,B);
Putonseg3d("F",Z,B);
Putonseg3d("G",Z,D);
@@ -6281,7 +6313,7 @@ options2を ["nodisp"] にすると,陰線は非表示になる。(下図右
IntersectsgpL("N","D-Y","E-F-G","put");
phd=Concatobj([[O,X,A,Y],[X,A,M,E],[A,Y,N,M],[Y,N,G,Z,O],
[O,Z,F,E,X],[Z,F,G],[E,M,N,G,F]]);
- VertexEdgeFace("1",phd,["Edg=nogeo"]);
+ VertexEdgeFace("1",phd);
Nohiddenbyfaces("1","phf3d1");
\end{verbatim}
Cinderellaの描画面はつぎのようになる。点E,F,Gをドラッグして,適当な位置の断面にする。ただし,M,Nは辺上にあることが条件である。
@@ -6319,7 +6351,7 @@ Cinderellaの描画面はつぎのようになる。点E,F,Gをドラッグし
p2=Invparapt(tmp_2,"sc3d1");
Partcrv3d("1",p1,p2,"sc3d1");
\end{verbatim}
- \begin{center} \input{Fig/invparapt} \end{center}
+ \begin{center}\scalebox{0.8}{ \input{Fig/invparapt}} \end{center}
ここで,sl2d1,sc2d1 は線分と螺旋の描画面上での(平面の)プロットデータである。Intersectcrvs() で平面上の交点の座標(複数あるのでリストが返る)を求め,Invparapt() で対応する螺旋上の点の座標を求めて部分曲線を描いている。実際に交わる点での部分曲線ではないことに注意。
@@ -6350,16 +6382,16 @@ option2では,"Eps=" で,陰線処理時の許容限界を設定できる。
【例】座標平面上に正四面体を描き,各軸と正四面体の辺を陰線処理する。(下図左)
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
-Putpoint3d("A",2*[-1,-1/sqrt(3),0],"fix");
-Putpoint3d("B",2*[1,-1/sqrt(3),0],"fix");
-Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0],"fix");
-Putpoint3d("D",2*[0,0,2*sqrt(6)/3],"fix");
+Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
+Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+Putpoint3d("D",2*[0,0,2*sqrt(6)/3]);
phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
-VertexEdgeFace("1",phd,["Edg=nogeo"]);
+VertexEdgeFace("1",phd);
Nohiddenbyfaces("1","phf3d1");
\end{verbatim}
- \verb|VertexEdgeFace("1",phd,["Edg=nogeo"]);| によって,辺,頂点,面のプロットデータが作られる。\verb|phf3d1| は,面のプロットデータである。
+ \verb|VertexEdgeFace("1",phd);| によって,辺,頂点,面のプロットデータが作られる。\verb|phf3d1| は,面のプロットデータである。
ここで,\verb|Nohiddenbyfaces("1","phe3d1","phf3d1",["dr,2"],["da"]); | とすると,座標軸は陰線処理されず,正四面体の辺(\verb|phe3d1|)だけが陰線処理されて破線で描かれる。四面体は太く描かれる。(下図右)
@@ -6416,15 +6448,15 @@ optionは "put" で,2つの幾何点を作図する。optionがない場合
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
- Putpoint3d(["O",[0,0,0]],"fix");
- Putpoint3d(["P",[1,1,1]],"fix");
+ Putpoint3d(["O",[0,0,0]]);
+ Putpoint3d(["P",[1,1,1]]);
Perpplane("E-F","P",P3d-O3d,"put");
vec1=2*(E3d-P3d);
vec2=2*(F3d-P3d);
- Putpoint3d(["A",P3d+vec1+vec2],"fix");
- Putpoint3d(["B",P3d+vec1-vec2],"fix");
- Putpoint3d(["C",P3d-vec1-vec2],"fix");
- Putpoint3d(["D",P3d-vec1+vec2],"fix");
+ Putpoint3d(["A",P3d+vec1+vec2]);
+ Putpoint3d(["B",P3d+vec1-vec2]);
+ Putpoint3d(["C",P3d-vec1-vec2]);
+ Putpoint3d(["D",P3d-vec1+vec2]);
Spaceline("1",[A,B,C,D,A]);
Arrowdata([O,P],["dr,2"]);
Letter([P,"w","P",A,"ne","A",B,"e","B",C,"ws","C",D,"nw","D",]);
@@ -6463,10 +6495,10 @@ none:計算だけ行い,点は作図しない。
作図例
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,4]");
- Putpoint3d("O",[0,0,0],"fix");
- Putpoint3d("A",[3,0,0],"fix");
- Putpoint3d("B",[0,3,0],"fix");
- Putpoint3d("C",[0,0,3],"fix");
+ Putpoint3d("O",[0,0,0]);
+ Putpoint3d("A",[3,0,0]);
+ Putpoint3d("B",[0,3,0]);
+ Putpoint3d("C",[0,0,3]);
Perppt("H","O","A-B-C","put");
Spaceline("1",[A,B,C,A]);
Spaceline("2",[O,H]);
@@ -6519,7 +6551,7 @@ Partcrv3d("1",3.3,8.5,"sc3d1");
Setdirectory( Dirhead+"/data/polyhedrons_obj");
phd=Readobj("s06.obj",["size=3"]);
Setdirectory(Dirwork);
- VertexEdgeFace("s06",phd,["Edg=nogeo"]);
+ VertexEdgeFace("s06",phd);
Phparadata("1","s06");
\end{verbatim}
VertexEdgeFace() の name は通常の "1" でもよい。その場合は,\verb|Phparadata("1","1");| とするが,わかりにくいので上のようにした。
@@ -6547,7 +6579,7 @@ Partcrv3d("1",3.3,8.5,"sc3d1");
Setdirectory( Dirhead+"/data/polyhedrons_obj");
phd=Readobj("r02.obj",["size=3"]);
Setdirectory(Dirwork);
- VertexEdgeFace("2",phd,["Edg=nogeo"]);
+ VertexEdgeFace("2",phd);
Phparadata("1","2");
\end{verbatim}
のようにする。
@@ -6607,16 +6639,21 @@ Partcrv3d("1",3.3,8.5,"sc3d1");
\vspace{\baselineskip}
\hypertarget{putonseg3d}{}
-\item[関数] Putonseg3d(点名,点1,点2)
-\item[機能] 線分上に点を取る
-\item[説明] 点1と点2の中点に,指定された名前の点を取る。点1と点2が線分として結ばれていなくてもよい。とった点は線分にインシデントとなる(線分が描かれていなくても)。点1と点2はリストにすることもできる。\\
+\item[関数] Putonseg3d(点名,点1,点2)
+\item[機能] 線分上に点を作る
+\item[説明] 点1と点2の中点に,指定された名前の点を取る。点1と点2が線分として結ばれていなくてもよい。とった点は線分にインシデントとなる(線分が描かれていなくても)。点1と点2はリストにすることもできる。指定した点がすでに存在する場合は動かさない。
+
+点1,点2は幾何点の名称または座標で指定する。
+
\vspace{\baselineskip}
-【例】AとBの中点に点Cをとる。つぎのいずれでもよい。
+【例】A(1,-1,0)とB(0,2,2) の中点に点Cをとる。つぎのいずれでもよい。
\verb|Putonseg3d("C",A,B);|
\verb|Putonseg3d("C",[A,B]);|
+ \verb|Putonseg3d("C",[[1,-1,0],[0,2,2]]);|
+
\vspace{\baselineskip}
\hypertarget{putpoint3d}{}
@@ -6624,11 +6661,11 @@ Partcrv3d("1",3.3,8.5,"sc3d1");
\item[機能] 空間に幾何点を作図する
\item[説明] 点の名称と座標を与えて点を作図する。複数の点を一度に作図できる。
-optionは,"fix" または "free" ( 初期設定)。
+optionは,"fix"( 初期設定) または "free"。リスト ["free"] にしてもよい。
-"fix" をつけると,固定点(ドラッグで移動できない点)とする。同じ名称の点がすでに存在する場合は,指定した位置に移動して固定点とする。
+"fix" では,固定点(ドラッグで移動できない点)とする。同じ名称の点がすでに存在する場合は,指定した位置に移動して固定点とする。
-"free" をつけると,自由点(ドラッグで移動できる)とする。同じ名称の点がすでに存在する場合はなにもしない。
+"free" では,自由点(ドラッグで移動できる)とする。同じ名称の点がすでに存在する場合はなにもしない。
\vspace{\baselineskip}
【例】いくつか記述例を示す。
@@ -6649,35 +6686,37 @@ optionは,"fix" または "free" ( 初期設定)。
\vspace{\baselineskip}
\hypertarget{readobj}{}
\item[関数] Readobj(ファイル名)
-\item[機能] objファイルを読み込む.
-\item[説明] 小林・鈴木・三谷による多面体データ \verb|polyhedrons_obj| を読み込む。
-
-オプションは "size=n" で,n倍したデータにする。負の数にすると上下が反転される。
-
-データはKeTCindyのdataフォルダの中にある。したがって,次のようなスクリプトを書く。読み込むのは一度だけなので, Draw スロットではなくInitialization スロットに置けばよいが,コードの可読性を高めるには Draw スロットでもよい。
+\item[機能] objファイルを読み込む。
+\item[説明] 小林・鈴木・三谷による整面凸多面体のデータは\\
+\hspace*{20mm}\url{http://mitani.cs.tsukuba.ac.jp/polyhedron/}\\
+からダウンロードできる。\verb|polyhedrons_obj|を,例えば,ユーザホームのketcindy作業フォルダに入れておく。
\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
+ Setdirectory(gethome()+"/ketcindy/polyhedrons_obj");
polydt=Readobj("r02.obj");
Setdirectory(Dirwork);
\end{verbatim}
これで,r02.obj データが,変数 polydt に代入される。
+オプションは "size=n" で,n倍したデータにする。負の数にすると上下が反転される。
+
+データはKeTCindyのdataフォルダの中にある。したがって,次のようなスクリプトを書く。読み込むのは一度だけなので, Draw スロットではなくInitialization スロットに置けばよいが,コードの可読性を高めるには Draw スロットでもよい。
+
この多面体データは,頂点リストと面リストからなっているが,頂点リストは座標のリストなので,読み込んで表示するときには,点の名称を v1,v2,・・・ とする。
読み込んだあとの使い方を含めて例を示す。
-\vspace{\baselineskip}
-【例】正八面体を描く
\begin{layer}{150}{0}
-\putnotese{55}{0}{ \input{Fig/readobj}}
+\putnotese{80}{0}{ \input{Fig/readobj}}
\end{layer}
+
+\vspace{\baselineskip}
+【例】\verb|polydt|を用いて正八面体を描く
+
+
\begin{verbatim}
- Setdirectory( Dirhead+"/data/polyhedrons_obj");
- polydt=Readobj("r02.obj",["size=2"]);
- Setdirectory(Dirwork);
- VertexEdgeFace("1",polydt,["Edg=nogeo"]);
+ VertexEdgeFace("1",polydt);
Nohiddenbyfaces("1","phf3d1");
\end{verbatim}
@@ -6688,8 +6727,6 @@ optionは,"fix" または "free" ( 初期設定)。
この他にn01〜n92まで整面凸多面体がある。
-Webページは,http://mitani.cs.tsukuba.ac.jp/polyhedron/
-
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
@@ -6703,7 +6740,7 @@ Webページは,http://mitani.cs.tsukuba.ac.jp/polyhedron/
\begin{verbatim}
Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,0,1],
- "E",[1,0,0]],"fix");
+ "E",[1,0,0]]);
Spaceline("1",[A,B,C,A]);
\end{verbatim}
@@ -6756,7 +6793,7 @@ options として,中心点(vecの始点),線種を指定することが
【例】コード例と結果を示す。
\begin{verbatim}
Xyzax3data("","x=[-5,4]","y=[-5,5]","z=[-5,4]",["a","O"]);
- Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]],"fix");
+ Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2],"D",[1,-2,3]]);
Spaceline("1",[A,B,C,A]);
Spaceline("2",[C,D]);
Rotatedata3d("1",["sl3d1","CD3d"],[0,0,1],pi/2,["dr,2"]);
@@ -6797,7 +6834,7 @@ options として,中心点(vecの始点),線種を指定することが
【例】三角形と円を拡大/縮小する。
\begin{verbatim}
- Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2]],"fix");
+ Putpoint3d(["A",[0,-2,0],"B",[2,-2,0],"C",[1,-2,2]]);
Spaceline("1",[A,B,C,A]);
Spacecurve("1","[cos(t)+1,sin(t)+1,1]","t=[0,2*pi]",["Num=100"]);
Scaledata3d("1",["sl3d1","sc3d1"],[2,2,2],[[0,0,0],"dr,2"]);
@@ -6815,9 +6852,9 @@ options として,中心点(vecの始点),線種を指定することが
【例】コード例と結果を示す。
\begin{verbatim}
- Putpoint3d(["A",[2,-1,2]],"fix");
+ Putpoint3d(["A",[2,-1,2]]);
pt=Scalepoint3d(A3d,[3,2,4],[1,1,1]);
- Putpoint3d(["B",pt],"fix");
+ Putpoint3d(["B",pt]);
\vspace{\baselineskip}
\end{verbatim}
@@ -6928,7 +6965,7 @@ C言語の環境がない場合は,ExeccmdC() が使えないので,Sfbdpara
陰線を消去して表示(下図左)
\begin{verbatim}
- fd=["x=x^2-y^2","x=[-2,2]","y=[-2,2]"];
+ fd=["z=x^2-y^2","x=[-2,2]","y=[-2,2]"];
if(Isangle(),
Sf3data("1",fd);
,
@@ -6962,7 +6999,12 @@ C言語の環境がない場合は,ExeccmdC() が使えないので,Sfbdpara
\item[機能] 陰線処理(スケルトン処理)をおこなう
\item[説明] 描画されている線と軸について陰線処理をおこなう。
-第2引数の線(プロットデータ)が,第3引数の線(プロットデータ)によって隠される部分を消去する。第2,第3引数を省略した場合は,すべての線について,互いの陰線処理をおこなう。optionで消去する部分の長さを指定できる。
+第2引数の線(プロットデータ)が,第3引数の線(プロットデータ)によって隠される部分を消去する。第2,第3引数を省略した場合は,すべての線について,互いの陰線処理をおこなう。optionで消去する部分の長さを指定できる。\\
+他のオプション\\
+ \verb|"No=点リスト"| 点リストの点が選ばれているときは実行しない\\
+ \verb|"File=y/m/n (n)"| データファイルを作るか\\
+ \verb|"Check=点リスト"| 点リストの点が変更されていたら,ファイルを作り直す
+
\vspace{\baselineskip}
【例】螺旋と線分,座標軸の陰線処理
@@ -6970,8 +7012,8 @@ C言語の環境がない場合は,ExeccmdC() が使えないので,Sfbdpara
次のように螺旋と線分,座標軸を描いておく。
\begin{verbatim}
Xyzax3data("","x=[-5,5]","y=[-5,4]","z=[-5,3]");
- Putpoint3d(["A",[0,-2,-2]],"fix");
- Putpoint3d(["B",[-1,1,3]],"fix");
+ Putpoint3d(["A",[0,-2,-2]]);
+ Putpoint3d(["B",[-1,1,3]]);
Spaceline([A,B]);
Spacecurve("1","[2*cos(t),2*sin(t),0.2*t]","t=[0,4*pi]",["Num=100"]);
\end{verbatim}
@@ -7073,7 +7115,7 @@ VertexEdgeFace() で描いた多角形はこの関数では平行移動できな
Setdirectory(Dirwork);
dn=length(phd_1);
repeat(dn,s,phd_1_s=phd_1_s+[0,2,0]);
- VertexEdgeFace("1",phd,["Edg=nogeo"]);
+ VertexEdgeFace("1",phd);
\end{verbatim}
\begin{center} \input{Fig/translate01} \end{center}
@@ -7087,9 +7129,9 @@ VertexEdgeFace() で描いた多角形はこの関数では平行移動できな
\vspace{\baselineskip}
【例】点A(1,0,0) を(-1,1,1)だけ平行移動した点をBとする。点Aの空間座標は A3d で表される。
\begin{verbatim}
- Putpoint3d(["A",[1,0,0]],"fix");
+ Putpoint3d(["A",[1,0,0]]);
pt=Translatepoint3d(A3d,[-1,1,1]);
- Putpoint3d(["B",pt],"fix");
+ Putpoint3d(["B",pt]);
\end{verbatim}
\vspace{\baselineskip}
\begin{flushright} \hyperlink{functionlist}{$\Rightarrow$関数一覧}\end{flushright}
@@ -7103,10 +7145,6 @@ VertexEdgeFace() で描いた多角形はこの関数では平行移動できな
4点A,B,C,Dをとっておき,このリストを引数に与えると,四面体の辺が描かれる。
-このとき,option がなければ,Cinderellaの幾何要素として辺が描かれるが,それだけではTeXには書き出されないので注意が必要である。(変数未定義のエラーになる) TeXに書き出すには,optionとして ["Edg=nogeo"] をつける。このときは各辺は幾何要素にならない。
-
-また,"Pt=free" optionをつけると,頂点は自由点となり,マウスドラッグで動かすことができる。
-
生成されるプロットデータは,
phv3d:頂点のリスト
@@ -7120,12 +7158,12 @@ phf3d:面リスト
\vspace{\baselineskip}
【例】:正四面体を描く
\begin{verbatim}
- Putpoint3d("A",2*[-1,-1/sqrt(3),0],"fix");
- Putpoint3d("B",2*[1,-1/sqrt(3),0],"fix");
- Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0],"fix");
- Putpoint3d("D",2*[0,0,sqrt(3)],"fix");
+ Putpoint3d("A",2*[-1,-1/sqrt(3),0]);
+ Putpoint3d("B",2*[1,-1/sqrt(3),0]);
+ Putpoint3d("C",2*[0,sqrt(3)-1/sqrt(3),0]);
+ Putpoint3d("D",2*[0,0,sqrt(3)]);
phd=Concatobj([[A,B,C],[A,B,D],[A,C,D],[B,C,D]]);
- VertexEdgeFace("1",phd,["Edg=nogeo"]);
+ VertexEdgeFace("1",phd);
\end{verbatim}
\begin{center} \input{Fig/vertex01} \end{center}
@@ -7536,6 +7574,7 @@ Cinderellaで使っている用語に次のものがある。
\hyperlink{plotdatar}{PlotdataR(name,式,変数)} \>Rの関数のグラフを描く\\
\hyperlink{plotdiscr}{PlotdiscR(name,式,変数)} \>離散型のグラフを描く\\
\hyperlink{readcsv}{Readcsv(name,filename,option)} \>csvファイルを読む\\
+\hyperlink{readlines}{Readlines(name,filename,option)} \>テキストファイルを1行ずつ読む\\
\hyperlink{scatterplot}{Scatterplot(name,filename,option)} \>2次元データを読み込み,散布図を描く\\
\vspace{\baselineskip}
【Maximaとの連携】\\
@@ -7625,4 +7664,4 @@ Cinderellaで使っている用語に次のものがある。
\hyperlink{xyzcoord}{Xyzcoord(P.x,P.y,Pz.y)} \>主副画面で決まる点の座標
\end{tabbing}
-\end{document}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/scripts/ketcindy/ketcindy.pl b/Master/texmf-dist/scripts/ketcindy/ketcindy.pl
index ad71b35c2e2..e5efbc0c98e 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketcindy.pl
+++ b/Master/texmf-dist/scripts/ketcindy/ketcindy.pl
@@ -15,6 +15,7 @@ use File::Copy;
my $BinaryName = "Cinderella2";
my $TemplateFile = "template1basic.cdy";
my $devnull = "/dev/null";
+my $prog = "ketcindy";
my $systype;
if (win32()) {
$systype = "Windows";
@@ -48,11 +49,11 @@ if (! "$cinderella") {
}
if (! "$cinderella") {
- die "Cannot find $BinaryName!";
+ die "$prog: Cannot find $BinaryName!";
}
if ( ! -x "$cinderella" ) {
- die "Program $cinderella is not executable!";
+ die "$prog: Program $cinderella is not executable!";
}
# find real path
@@ -72,17 +73,17 @@ chomp(my $TempCdy = `kpsewhich -format=texmfscripts $TemplateFile`);
chomp(my $DirHead=`kpsewhich -format=texmfscripts ketcindy.ini`);
if (-z "$TempCdy" || -z "$KetCdyJar") {
- die "Cannot find $TemplateFile via kpsewhich, is ketpic installed?";
+ die "$prog: Cannot find $TemplateFile via kpsewhich, is ketpic installed?";
}
if ( ! -r "$plugin" || ! -r "$dirheadplugin" ) {
- print "Cinderella is *NOT* set up for KETCindy!\n";
- print "You need to copy\n";
- print " $KetCdyJar\n";
- print " $DirHead\n";
- print "into\n";
- print " $plugindir\n";
+ print "$prog: Cinderella is *NOT* set up for KETCindy!\n";
+ print "$prog: You need to copy\n";
+ print "$prog: $KetCdyJar\n";
+ print "$prog: $DirHead\n";
+ print "$prog: into\n";
+ print "$prog: $plugindir\n";
print "\n";
exit(1);
}
@@ -91,17 +92,17 @@ my $myjarmd = md5digest($KetCdyJar);
my $sysjarmd = md5digest($plugin);
if ( $myjarmd ne $sysjarmd ) {
- print "The installed version of the plugin in\n";
- print " $plugin\n";
- print "differs from the version shipped in\n";
- print " $KetCdyJar\n";
- print "You might need to update the former one with the later one!\n";
+ print "$prog: The installed version of the plugin in\n";
+ print "$prog: $plugin\n";
+ print "$prog: differs from the version shipped in\n";
+ print "$prog: $KetCdyJar\n";
+ print "$prog: You might need to update the former one with the later one!\n";
}
# print "DEBUG workdir =$workdir=\n";
# print "DEBUG TemplateFile =$TemplateFile=\n";
mkdir($workdir);
-copy($TempCdy, $workdir) or die "Copy failed: $!";
+copy($TempCdy, $workdir) or die "$prog: Copy failed: $!";
# print "Exec $cinderella $workdir/$TemplateFile\n";
if (win32()) {
@@ -114,7 +115,7 @@ if (win32()) {
sub md5digest {
my $file = shift;
- open(FILE, $file) || die "open($file) failed: $!";
+ open(FILE, $file) || die "$prog: open($file) failed: $!";
binmode(FILE);
my $out = Digest::MD5->new->addfile(*FILE)->hexdigest;
close(FILE);
diff --git a/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar b/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar
index 87a04ab663c..da263da5cfb 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar
+++ b/Master/texmf-dist/scripts/ketcindy/ketjava/KetCindyPlugin.jar
Binary files differ
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
index 3bfe1f09635..d793d2fb12d 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
@@ -1,8 +1,22 @@
+// 20181108
+// Mkpointlist debugged (theta=90)
+// 20181107
+// Nohiddenbyfaces changed ( frn3d,frnh3d returned, option "Disp=" added )
+// Perplane debugged ( for "draw" )
+// VertexEdgeFace changed (point name v =>V, option "Edg=n" as default )
+// 20181103
+// Skeletonparadata changed ( option "Not=","Check=" added )
+// 20181102
+// Skeletonparadata changed ( option "File=" added )
+// 20181031
+// IntersectsgpL changed ( option "Screen=" added )
+// Perpplane, Nohiddenseg changed ( for change of IntersectsgpL)
// 20181030
// Mkpointlist debugged (workprocess adopted)
// Parcrv3d, IntersectsgpL debugged
// Ptonseg3d changed ( for non-geo point )
// Drawpoint3d changed ( color option )
+// IntersectsgpL changed ( Pointdata3d => Drawpoint3d )
// 20181029
// Mkpointlist debugged
// Subgraph change
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
index c5516db2888..dabd701c181 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylib3d(20181030) loaded");
+println("ketcindylib3d(20181108) loaded");
//help:start();
@@ -86,7 +86,7 @@ Ketinit3d(subflg,position):=(
Start3d():=Start3d([]);
Start3d(ptexception):=(
//help:Start3d();
-//help:Start3d(execptionptlist);
+//help:Start3d(["A","B"](exceptionptlist));
regional(xmn,xMx,ymn,yMx,pt,pt3,pt2,
xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4);
Setfiles(Namecdy); //180608
@@ -161,8 +161,10 @@ Start3d(ptexception):=(
SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
letterc,mboxc,mboxc,mboxc,62,2,letterc];
ThinDense=0.1; //17.07.01to
- Ptseg3data(ptexception); //16.08.23
- PTEXCEPTION=ptexception; //180916
+ tmp=ptexception; //181106(3lines)
+ if(!islist(tmp),PTEXCEPTION=[tmp],PTEXCEPTION=tmp);
+ Ptseg3data(PTEXCEPTION); //16.08.23
+ PTEXCEPTION=ptexception; //180916
);
////%Start3d end////
@@ -246,12 +248,13 @@ Getangle():=getangle(["Disp=y"]); //180613from
Getangle(option):=(
regional(tmp,tmp1,dispflg,eqL);
tmp=divoptions(option);
- dispflg="N";
- eqL=tmp_7;
+ dispflg="Y";
+ eqL=tmp_5; //181111
forall(eqL,
- if(Toupper(#_1)=="DISP",
- dispflg=Toupper(#_1);
- dispflg=substring(dispflg,0,1);
+ tmp=Strsplit(#,"="); //181111(4lines)
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="D",
+ dispflg=Toupper(substring(tmp_2,0,1));
);
);
tmp=[THETA*180/pi, PHI*180/pi];
@@ -265,8 +268,11 @@ Getangle(option):=(
////%Angleselected start////
Angleselected():=IsAngle(); //180713
//isAngle():=Isangle(); //180517
+////%Angleselected end////
+////%Isangle start////
Isangle():=isselected(TH)%isselected(FI); //180517
////%Angleselected end////
+////%Isangle end////
////%Changestyle3d start////
Changestyle3d(nameL,style):=(
@@ -482,7 +488,8 @@ Projpara(ptdata,optionsorg):=(
msgflg=0; //180602from
forall(eqL,
tmp=Strsplit(#,"=");
- if(Toupper(tmp_1)=="MSG",
+ tmp1=Toupper(substring(tmp_1,0,1)); //181111
+ if(tmp=="M",
tmp=substring(tmp_2,0,1);
if(Toupper(tmp)=="Y", msgflg=1);
options=remove(options,[#]);
@@ -635,10 +642,11 @@ Spaceline(Arg1,Arg2):=(
name="-"+replace(tmp,",","");
Spaceline(name,Arg1,Arg2);
);
-); // 16.02.22 until
+); // 16.02.22 to
Spaceline(nm,ptlistorg,optionorg):=(
//help:Spaceline("1",[[2,5,1],[4,2,3]]);
//help:Spaceline([A,B]);
+//help:Spaceline(options=["Msg=y(n)"]);
regional(name2,name3,options,Out,tmp,tmp1,tmp2,
opstr,opcindy,Ltype,Noflg,eqL,ptlist, Msg,color);
ptlist=apply(ptlistorg,if(ispoint(#),parse(text(#)+"3d"),#)); // 16.02.10
@@ -749,8 +757,8 @@ Spacecurve(nm,funstr,variable,optionorg):=(
tmp=substring(#,0,1);
if(Toupper(tmp)=="M",
tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+2);
- if(Toupper(tmp1)=="NO",
+ tmp1=substring(#,tmp,tmp+1);
+ if(Toupper(tmp1)=="N",
Msg=0;
);
);
@@ -1291,6 +1299,7 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
Out;
);
+////%Rotatepoint3d start////
Rotate3pt(point,w1,w2):=Rotatepoint3d(point,w1,w2,[0,0,0]);
Rotate3pt(point,w1,w2,center):=Rotatepoint3d(point,w1,w2,center);
Rotatepoint3d(point,w1,w2):=Rotatepoint3d(point,w1,w2,[0,0,0]);//180809
@@ -1378,7 +1387,9 @@ Rotatepoint3d(point,w1,w2,center):=(
);
Ans;
);
+////%Rotatepoint3d end////
+////%Rotatedata3d start////
Rotatedata3d(nm,P3data,w1,w2):=Rotatedata3d(nm,P3data,w1,w2,[]);
Rotatedata3d(nm,P3data,w1,w2,options):=(
//help:Rotatedata3d("1",["sl3d1","sc3d2"],[0,0,1],pi/3);
@@ -1450,7 +1461,9 @@ Rotatedata3d(nm,P3data,w1,w2,options):=(
);
Out;
);
+////%Rotatedata3d end////
+////%Translatepoint3d start////
Translate3pt(point,w1):=Translatepoint3d(point,w1);
Translatepoint3d(point,w1):=(
//help:Translatepoint3d(pt3d,[1,2,3]);
@@ -1479,7 +1492,9 @@ Translatepoint3d(point,w1):=(
);
Ans;
);
+////%Translatepoint3d end////
+////%Translatedata3d start////
Translatedata3d(nm,P3data,w1):=Translatedata3d(nm,P3data,w1,[]);
Translatedata3d(nm,P3data,w1,options):=(
//help:Translatedata3d("1",["sl3d1"],[1,2,3]);
@@ -1543,7 +1558,9 @@ Translatedata3d(nm,P3data,w1,options):=(
);
Out;
);
+////%Translatedata3d end////
+////%Reflectpoint3d start////
Reflect3pt(point,vecL):=Reflectpoint3d(point,vecL);
Reflectpoint3d(point,vecL):=(
//help:Reflectpoint3d(pt3d,[v1,v2,v3]);
@@ -1569,7 +1586,9 @@ Reflectpoint3d(point,vecL):=(
);
ans;
);
+////%Reflectpoint3d end////
+////%Reflectdata3d start////
Reflectdata3d(nm,P3data,vecL):=Reflectdata3d(nm,P3data,vecL,[]);
Reflectdata3d(nm,P3data,vecL,options):=(
//help:Reflectdata3d("1",["sl3d1"],[v1,v2,v3]);
@@ -1636,8 +1655,10 @@ Reflectdata3d(nm,P3data,vecL,options):=(
);
Out;
);
+////%Reflectdata3d end////
// 180806
+////%Scalepoint3d start////
Scale3pt(point,ratio,center):=Scalepoint3d(point,ratio,center);
Scalepoint3d(point,ratio):=Scalepoint3d(point,ratio,[0,0,0]);//180809
Scalepoint3d(point,ratio,center):=(
@@ -1656,8 +1677,10 @@ Scalepoint3d(point,ratio,center):=(
Z2=Cz+ra3*(Z1-Cz);
[X2,Y2,Z2];
);
+////%Scalepoint3d end////
// 180808
+////%Scaledata3d start////
Scaledata3d(nm,P3data,ratio):=Scaledata3d(nm,P3data,ratio,[]);
Scaledata3d(nm,P3data,ratio,options):=(
//help:Scaledata3d("1",["sl3d1"],[v1,v2,v3]);
@@ -1728,6 +1751,7 @@ Scaledata3d(nm,P3data,ratio,options):=(
);
Out;
);
+////%Scaledata3d end////
////%Xyzcoord start////
Xyzcoord(pm,ps):=Xyzcoord(pm_1,pm_2,ps); //181028from
@@ -1753,16 +1777,17 @@ PutonCurve3d(name,pdstr):=(
pt=Xyzcoord(pt,tmp2); // 15.03.13
tmp=name+"z.xy="+textformat(tmp2,5);
parse(tmp);
- VLIST=select(VLIST,#_1!=name+"3d");
+ // VLIST=select(VLIST,#_1!=name+"3d");
Defvar(name+"3d",pt);
);
////%Mkpointlist start////
Mkpointlist():=Mkpointlist([]); //16.11.12
Mkpointlist(options):=( //181030
- regional(Eps,pos,worklist,plist,pt,ptstr,pt3,ptz,par,
- vlistpre,
+ regional(Eps,dp,mv,pos,worklist,plist,pt,ptstr,pt3,ptz,par,
tmp,tmp1,tmp2,tmp3,tmp4,p1,p2,flg);
+ dp=pi/24;
+ mv=NE.x-SW.x;
Eps=10^(-4);
pos=[NE.x+1,NE.y];
worklist=Workprocess(); //181030
@@ -1779,7 +1804,6 @@ Mkpointlist(options):=( //181030
VLIST=remove(VLIST,tmp);
);
); //181029to
-// vlistpre=VLIST; //181015
if(SUBSCR==0,plist=[]);
forall(plist,ptstr,
pt=parse(ptstr);
@@ -1790,23 +1814,27 @@ Mkpointlist(options):=( //181030
tmp=Finddef(pt);
tmp=select(VLIST,#_1==text(pt)+"3d");
if(length(tmp)==0,
- if(abs(cos(THETA))>Eps,//181028from
- tmp1=Mainsubpt3d(pt.xy,0);
- tmp=Parasubpt(tmp1);
- Putpoint(ptz,tmp,[tmp_1,parse(ptz+".y")]);
- pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
+ tmp=parse(ptz); //181108from
+ if(ispoint(tmp),
+ pt3=Mainsubpt3d(pt.xy,tmp.xy); //181108to
,
- if(abs(sin(PHI))>abs(cos(PHI)), //181029from
- tmp=Parasubpt([-pt.x/sin(PHI),0,pt.y]);
+ if(abs(cos(THETA))>Eps,//181028from
+ tmp1=Mainsubpt3d(pt.xy,0);
+ tmp=Parasubpt(tmp1);
+ Putpoint(ptz,tmp,[tmp_1,parse(ptz+".y")]);
+ pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
,
- tmp=Parasubpt([0,pt.x/cos(PHI),pt.y]);
+ if(abs(sin(PHI))>abs(cos(PHI)), //181029from
+ tmp=Parasubpt([-pt.x/sin(PHI),0,pt.y]);
+ ,
+ tmp=Parasubpt([0,pt.x/cos(PHI),pt.y]);
+ );
+ Putpoint(ptz,tmp,[parse(ptz+".x"),pt.y]);//181029t
+ pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
);
- Putpoint(ptz,tmp,[parse(ptz+".x"),pt.y]);//181029to
- pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
); //181028to
Defvar(text(pt)+"3d",pt3);
Defvar(text(pt)+"fix",0);
-// vlistpre=VLIST; //16.08.20
);
flg=0;
if(isstring(ptz),ptz=parse(ptz));//181029from
@@ -1817,32 +1845,37 @@ Mkpointlist(options):=( //181030
if(parse(text(pt)+"fix")!=1,
tmp=select(VLIST,#_1==text(pt)+"3d");
tmp1=tmp_1_2;
- tmp2=Mainsubpt3d(pt.xy,ptz.xy); //181029
- if(Norm(tmp1-tmp2)>Eps,
- VLIST=select(VLIST,#_1!=text(pt)+"3d");
- Defvar(text(pt)+"3d",tmp2);
-// vlistpre=VLIST; //16.08.20
+ pt3=Mainsubpt3d(pt.xy,ptz.xy); //181029
+ Putpoint(text(ptz),Parasubpt(pt3));
+ if(Norm(tmp1-pt3)>Eps,
+ Defvar(text(pt)+"3d",pt3);
);
- Putpoint(text(ptz),Parasubpt(tmp2));
- pt3=tmp2;
flg=1;
);
);
- if(isselected(ptz),
-// tmp=select(vlistpre,#_1==text(pt)+"3d"); //16.08.20
- tmp=select(VLIST,#_1==text(pt)+"3d"); //181030
+ if(isselected(ptz),//181108from
+ tmp=select(VLIST,#_1==text(pt)+"3d");
tmp1=tmp_1_2;
- tmp2=Mainsubpt3d(pt.xy,ptz.xy);
- if(Norm(tmp1-tmp2)>Eps,
+ tmp=Parasubpt(tmp1); //181108from
if(abs(cos(THETA))>Eps,
- tmp2=[tmp1_1,tmp1_2,tmp2_3];
- ,
- ); //181028to
- VLIST=select(VLIST,#_1!=text(pt)+"3d");
- Defvar(text(pt)+"3d",tmp2);
- );
- Putpoint(text(ptz),Parasubpt(tmp2));
- pt3=tmp2;
+ tmp=text(ptz)+".x="+format(tmp_1,6);
+ parse(tmp);
+ tmp=Parapt([tmp1_1,tmp1_2,ptz.y]);
+ Putpoint(text(pt),tmp);
+ ,
+ tmp=text(ptz)+".y="+format(tmp_2,6);
+ parse(tmp);
+ if(abs(sin(PHI+dp))>abs(cos(PHI+dp)), //181108
+ tmp=-(ptz.x-mv-tmp1_2*cos(PHI+dp))/sin(PHI+dp);
+ tmp=Parapt([tmp,tmp1_2,tmp1_3]);
+ ,
+ tmp=(ptz.x-mv+tmp1_1*sin(PHI+dp))/cos(PHI+dp); //181109pm
+ tmp=Parapt([tmp1_1,tmp,tmp1_3]);
+ );
+ Putpoint(text(pt),tmp);
+ );
+ pt3=Mainsubpt3d(pt.xy,ptz.xy);
+ Defvar(text(pt)+"3d",pt3);//181108to
flg=2;
);
if(isselected(TH) % isselected(FI), //181029
@@ -1857,7 +1890,6 @@ Mkpointlist(options):=( //181030
);
if(flg==0, //181030from
pt3=Mainsubpt3d(pt.xy,ptz.xy);
- VLIST=select(VLIST,#_1!=text(pt)+"3d");
Defvar(text(pt)+"3d",pt3);
); //181030to
if(isselected(pt) % isselected(ptz),
@@ -1930,12 +1962,15 @@ Ptseg3data(options):=(
tmp=select(VLIST,#_1==tmp1+"3d"); //17.10.07
if(length(tmp)>0,
pt3=tmp_1_2;
- tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];";
+ tmp=tmp1+".xy="+Textformat(Parapt(pt3),6);//181107
parse(tmp);
if(SUBSCR==1,
- tmp=tmp1+"z"+".x=NE.x-SW.x+"+tmp1+".x";
+ tmp=tmp1+"z"+".xy="+Textformat(Parasubpt(pt3),6);//181107
parse(tmp);
);
+ ,
+ tmp=Mainsubpt3d(parse(pt+".xy"),parse(tmp1+"z.xy")); //181107(2lines)
+ Defvar(tmp1+"3d",tmp);
);
);
,
@@ -2054,9 +2089,7 @@ Putpoint3d(Arg1,Arg2,Arg3):=(
inspect(parse(tmp1),"textsize",TSIZE);
if(SUBSCR==1,
tmp2=tmp1+"z";
- tmp=[pt.x+NE.x-SW.x,pt3_3];
- tmp1="[NE.x-SW.x+"+tmp1+".x,"+tmp2+"y]";
- Putpoint(tmp2,tmp,parse(tmp1));
+ Putpoint(tmp2,Parasubpt(pt3));
inspect(parse(tmp2),"ptsize",3);
inspect(parse(tmp2),"color",3);
inspect(parse(tmp2),"textsize",TSIZEZ);
@@ -2122,7 +2155,7 @@ Putperp(name,ptstr,pLstr,option):=(
N3d=pP+tmp;
Defvar("tmp3d",N3d); // temporary
sgstr=ptstr+"-tmp";
- tmp=IntersectsgpL(name,sgstr,pLstr,"none");
+ tmp=IntersectsgpL(name,sgstr,pLstr,["Screen=n"]); //181031
VLIST=select(VLIST,#_1!="tmp3d");
out=tmp_1;
Defvar(name+"3d",tmp_1);
@@ -2161,7 +2194,11 @@ Perpplane(name,ptstr,nstr,option):=(
th,ph,pA,pB,tmp,tmp1,tmp2);
Eps=10^(-4);
if(isstring(nstr),nvec=parse(nstr+"3d"),nvec=nstr);
- pP=parse(ptstr+"3d");
+ if(indexof(ptstr,"3d")==0, //181107from
+ pP=parse(ptstr+"3d");
+ ,
+ pP=parse(ptstr);
+ ); //181107to
v3=nvec/|nvec|;
th=THETA; ph=PHI;
tmp=findangle(v3);
@@ -2169,16 +2206,19 @@ Perpplane(name,ptstr,nstr,option):=(
v1=Cancoordpara([1,0,0]);
v2=Cancoordpara([0,1,0]);
THETA=th; PHI=ph;
+ tmp=indexof(name,"-");
+ tmp1=substring(name,0,tmp-1);
+ tmp2=substring(name,tmp,length(name));
tmp=indexof(pLstr,"-");
pA=pP+v1;
pB=pP+v2;
if(islist(option),tmp=option_1,tmp=option);
tmp=Toupper(substring(tmp,0,1)); // 16.06.19
if(tmp=="P",
- tmp=indexof(name,"-");
- tmp1=substring(name,0,tmp-1);
- tmp2=substring(name,tmp,length(name));
Putpoint3d([tmp1,pA,tmp2,pB],["fix"]);
+ ,
+ Defvar(tmp1+"3d",pA); //181107(2lines)
+ Defvar(tmp2+"3d",pB);
);
if(tmp=="D",
Drawpoint3d(pA);
@@ -2238,13 +2278,13 @@ Putaxes3d(size):=(
////%IntersectsgpL start////
IntersectsgpL(name,sgstr,pLstr):=
- IntersectsgpL(name,sgstr,pLstr,["Draw=ie"]);
+ IntersectsgpL(name,sgstr,pLstr,["ie"]);
IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
//help:IntersectsgpL("R","P-Q","A-B-C");
//help:IntersectsgpL("",[p1,p2],[p3,p4,p5]);
-//help:IntersectsgpL(options=["draw(put)","ie"+pointoptions]);
- regional(options,strL,ptflg,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,
- flg,nvec,tmp,tmp1,tmp2,tmp3,tmp4);
+//help:IntersectsgpL(options=["draw(put)","ie","Screen=n"+pointoptions]);
+ regional(options,eqL, strL,ptflg,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,
+ flg,scrflg,nvec,tmp,tmp1,tmp2,tmp3,tmp4);
options=optionsorg; //181026from
tmp1="";
if(isstring(options),
@@ -2253,6 +2293,7 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
);
options=remove(options,["draw","Draw"]);
tmp=Divoptions(options);
+ eqL=tmp_5;
strL=tmp_7;
if(length(tmp1)>0,
strL=append(strL,tmp1);
@@ -2271,7 +2312,16 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
);
);
);
- options=remove(options,strL);
+ options=remove(options,strL);
+ scrflg="Y"; //181031from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1)); //181111
+ if(tmp1=="S",
+ scrflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //181031to
tmp=select(options,substring(#,0,1)=="C");
if(length(tmp)==0,options=append(options,"Color=green"));//181026to
Eps=10^(-4);
@@ -2326,12 +2376,12 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
tmp=ptflg_2;
tmp1=(tmp1)%(substring(tmp,0,1)=="e"); //181025from
tmp2=(tmp2)%(substring(tmp,1,2)=="e");
- if(tmp1&tmp2,
+ if(tmp1&tmp2&(scrflg=="Y"), //181031
if(ptflg_1=="P", //181025
Putpoint3d([name,pR]);
Fixpoint3d([name,pR]);
,
- Pointdata3d(name,pR,options);
+ Drawpoint3d(pR,options);
);
// println(" pt"+name+" data:"+format(out,5));
,
@@ -2506,7 +2556,7 @@ Mkbezierptcrv3(ptdata,options):=( //17.10.08 greatly changed
Out;
);
-///////////////////////////////////////////
+//////////old version ///////////////////////////////
Readobj(filename):=Readobj(filename,[]);
Readobj(filename,options):=(
@@ -2539,8 +2589,8 @@ Readobj(filename,options):=(
[vL,fnL];
);
-/////////////////////////////////////////
-
+//////////new version ///////////////////////////////
+////%Readobj start////
Readobj(filename,options):=(
//help:Readobj("file.obj",["size=-3"]);
regional(eqL,size,vL,fnL,dtL,numer,flg,flg2,
@@ -2644,6 +2694,7 @@ Readobj(filename,options):=(
);
[vL,fnL];
);
+////%Readobj end////
Concatobj(objL):=Concatobj(objL,[]);
Concatobj(objL,options):=(
@@ -2750,15 +2801,14 @@ Mkobjfile(path,fnameorg,objL):=(
);
-VertexandEdge(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]);
-VertexandEdge(nm,vfnL,options):=VertexEdgeFace(nm,vfnL,options);
+////%VertexEdgeFace start////
VertexEdgeFace(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); // 16.02.10
+VertexEdgeFace(nm,vfnLorg,optionorg):=(
//help:VertexEdgeFace("1",[vL,fnL]);
//help:VertexEdgeFace("1",["A","B","C"]);
-//help:VertexEdgeFace(options=["Pt=fix","Vtx=geo","Edg=geo"]);
-VertexEdgeFace(nm,vfnLorg,optionorg):=(
+//help:VertexEdgeFace(options=["Pt=fix","Vtx=n(y)","Edg=n(y)"]);
regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL,
- vL,eL,enL,face,edge,vtx,vname,fixflg,vtxflg, edgflg,tmp,tmp1,tmp2);
+ vL,eL,enL,face,edge,vtx,vname,fixflg,vtxflg, edgflg,dispflg,tmp,tmp1,tmp2);
name3="phvef"+nm;
namev="phv3d"+nm;
namee="phe3d"+nm;
@@ -2776,24 +2826,35 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
eqL=tmp_5;
strL=tmp_7;
fixflg=1;
- vtxflg=1; //180905
- edgflg=1;
+ vtxflg=0; //180905
+ edgflg=0;
+ dispflg=1; //181106
forall(eqL,
- tmp1=Toupper(substring(#,0,1));
- tmp=indexof(#,"=");
- tmp2=Toupper(substring(#,tmp,length(#)));
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=Toupper(substring(tmp_2,0,1));
if(tmp1=="P",
- if(tmp2=="FREE", fixflg=0);
+ if(tmp2=="F", fixflg=0);
options=remove(options,[#]);
);
if(tmp1=="V", //180905from
- if(substring(tmp2,0,1)=="N", vtxflg=0);
+ if((tmp2=="Y")%(tmp2==G), //181107
+ vtxflg=1;
+ );
options=remove(options,[#]);
); //180905to
if(tmp1=="E",
- if(substring(tmp2,0,1)=="N", edgflg=0);
+ if((tmp2=="Y")%(tmp2=="G"),//181107(2lines)
+ if(vtxflg==1,edgflg=1);
+ );
options=remove(options,[#]);
);
+ if(tmp1=="D", //181106from
+ if(substring(tmp2,0,1)=="N",
+ dispflg=0; vtxflg=0; edgflg=0;
+ );
+ options=remove(options,[#]);
+ ); //181106to
);
forall(strL,
if(Toupper(#)=="FREE",
@@ -2808,14 +2869,13 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
if(ispoint(vtx),
tmp=parse(text(vtx)+"3d");
vname=text(vtx);
-// tmp=parse(text(vtx)+"3d");
-// tmp="v"+text(#)+"3d="+textformat(tmp,5);
-// parse(tmp);
,
- vname="v"+text(#);
+ vname="V"+text(#); //181107
if(vtxflg==1, //180905
if(fixflg==1,
- Putpoint3d([vname,vtx],"fix");
+ Putpoint3d([vname,vtx],"fix");
+ ,
+ Putpoint3d([vname,vtx]);
);
, //180905from
tmp=vname+"3d="+format(vtx,6);
@@ -2824,7 +2884,9 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
tmp=vname+"2d=Parapt("+vname+"3d)";
parse(tmp);
Defvar(vname+"2d",parse(vname+"2d"));
- drawtext(parse(vname+"2d"),vname);
+ if(dispflg==1, //181106
+ drawtext(parse(vname+"2d"),vname);
+ );
); //180905to
);
vL=append(vL,vname); // 16.02.10 until
@@ -2841,8 +2903,6 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
if(tmp2<tmp1,
tmp=tmp2; tmp2=tmp1; tmp1=tmp;
);
-// tmp1="v"+text(tmp1)+"3d";
-// tmp2="v"+text(tmp2)+"3d";
tmp1=vL_tmp1+"3d";
tmp2=vL_tmp2+"3d";
tmp=select(eL,#==[tmp1,tmp2] % #==[tmp2,tmp1]);
@@ -2875,6 +2935,7 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
tmp1=replace(edge_1,"3d","");
tmp2=replace(edge_2,"3d","");
tmp=tmp1+tmp2;
+ tmp=replace(tmp,"V","v");
create([tmp],"Segment",[parse(tmp1),parse(tmp2)]);
enL=append(enL,tmp+"3d");//16.02.29
);
@@ -2912,7 +2973,9 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
);
[namev,namee,namef];
);
+////%VertexEdgeFace end////
+////%Phparadata start////
Phparadata(nm,nmvf):=(
regional(tmp1,tmp2);
tmp1=parse("phv3d"+nmvf);
@@ -3016,7 +3079,9 @@ Phparadata(nm,nmvf,vfL,options):=(
);
);
);
+////%Phparadata end////
+////%Nohiddenseg start////
Nohiddenseg(seg,rng,triang,Eps):=(
// help:Nohiddenseg("1",seg1,[0,1],["v1","v2","v3"]);
regional(pA3,pB3,pC3,pA,pB,pC,sg1,sg2,ss1,ss2,parL,flgL,flg1,flg2,
@@ -3057,15 +3122,13 @@ Nohiddenseg(seg,rng,triang,Eps):=(
);
tmp1=Crossprod(pB3-pA3,pC3-pA3);
if(abs(Dotprod(tmp1,sg2-sg1))>Eps,
- tmp=IntersectsgpL("",[sg1,sg2],[pA3,pB3,pC3],["nodisp"]);//180815
- if(tmp_2>-Eps & tmp_2<1+Eps,
- if(tmp_3>-Eps & tmp_4>-Eps & tmp_3+tmp_4<1+Eps,
- tmp1=select(parL,abs(tmp_2-#)<Eps);
- if(length(tmp1)==0,
- parL=sort(append(parL,tmp_2));
- );
+ tmp=IntersectsgpL("",[sg1,sg2],[pA3,pB3,pC3],["Screen=n"]);//181031from
+ if(tmp_2&tmp_3,
+ tmp1=select(parL,abs(tmp_4-#)<Eps);
+ if(length(tmp1)==0,
+ parL=sort(append(parL,tmp_4));
);
- );
+ );//181031to
);
flgL=[];
forall(parL,
@@ -3073,7 +3136,7 @@ Nohiddenseg(seg,rng,triang,Eps):=(
tmp=Projcoordpara(tmp1);
tmp_3=tmp_3+1;
tmp2=Cancoordpara(tmp);
- tmp=IntersectsgpL("",[tmp1,tmp2],[pA3,pB3,pC3],["nodisp"]);//180815
+ tmp=IntersectsgpL("",[tmp1,tmp2],[pA3,pB3,pC3],["Screen=n"]);//181031
tmp1=Projcoordpara(tmp1);
tmp2=Projcoordpara(tmp_1);
flg1=0;
@@ -3149,7 +3212,9 @@ Nohiddenseg(seg,rng,triang,Eps):=(
sgnoh=apply(sgnoh,rng_1+#*(rng_2-rng_1));
sgnoh;
);
+////%Nohiddenseg end////
+////%Nohiddensegs start////
Nohiddensegs(seg,range,faceno,vtxL,Eps):=(
regional(rng,face,vtx,out,ra,rb,tmp,tmp1,tmp2);
// Eps=10^(-2);
@@ -3188,7 +3253,9 @@ Nohiddensegs(seg,range,faceno,vtxL,Eps):=(
);
rng;
);
+////%Nohiddensegs end////
+////%Nohiddenbyfaces start////
Nohiddenbyfaces(nm,facestr):=
Nohiddenbyfaces(nm,Datalist3d(),facestr,[],["do"]);
Nohiddenbyfaces(nm,Arg1,Arg2):=(
@@ -3298,8 +3365,8 @@ Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
opcindy=tmp_(length(tmp));
forall(eqL, //180815from
tmp=Strsplit(#,"=");
- tmp1=Toupper(tmp_1);
- if(substring(tmp1,0,3)=="EPS",
+ tmp1=Toupper(substring(tmp_1,0,1)); //181111
+ if(substring(tmp1,0,3)=="E",
Eps=parse(tmp_2);
options=remove(options,[#]);
);
@@ -3358,8 +3425,11 @@ Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
tmp="frh3d"+nm+"="+text(tmp1);
parse(tmp);
println(" generate totally "+"frh3d"+nm);
+ [frnL,frhL]; //181106
);
+////%Nohiddenbyfaces end////
+////%Faceremovaldata start////
Faceremovaldata(nm,vfdata,crvdata):=Faceremovaldata(nm,vfdata,crvdata,[]);
Faceremovaldata(nm,vfdata,crvdata,options):=(
regional(name2,name3,nameh2,nameh3,Ltype,Noflg,eqL,Hidden,
@@ -3444,6 +3514,7 @@ Faceremovaldata(nm,vfdata,crvdata,options):=(
);
);
);
+////%Faceremovaldata end////
Fullformfunc(FdL):=(
regional(Out,nn,ii,Jrg,flg,Urg,Vrg,kk,Uname,
@@ -3638,8 +3709,8 @@ SfbdparadataR(nm,fd):=
SfbdparadataR(nm,fd,options):=
SfbdparadataR(nm,fd,options,["nodisp"]);
SfbdparadataR(nm,fdorg,optionorg,optionsh):=(
-//help:SfbdparadataR("1",Fd);
-//help:SfbdparadataR(options2=["Wait=60",division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+// help:SfbdparadataR("1",Fd);
+// help:SfbdparadataR(options2=["Wait=60",division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(fd,options,name3,name3h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg);
tmp=ConvertFdtoC(fdorg);//180430(2lines)
@@ -3743,8 +3814,8 @@ CrvsfparadataR(nm,crv,sf,fd):=
CrvsfparadataR(nm,crv,sf,fd,options):=
CrvsfparadataR(nm,crv,sf,fd,options,["nodisp"]);
CrvsfparadataR(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:CrvsfparadataR("1","ax3d","sfbd3d1",fd);
-//help:CrvsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+// help:CrvsfparadataR("1","ax3d","sfbd3d1",fd);
+// help:CrvsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
tmp=replace(crvstr,"3d","2d");
@@ -3847,8 +3918,8 @@ Crv3onsfparadataR(nm,crv3d,sf,fd):=
Crv3onsfparadataR(nm,crv3d,sf,fd,options):=
Crv3onsfparadataR(nm,crv3d,sf,fd,options,["nodisp"]);
Crv3onsfparadataR(nm,crv3dstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:Crv3onsfparadataR("1","sc1","sfbd3d1",fd);
-//help:Crv3onsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+// help:Crv3onsfparadataR("1","sc1","sfbd3d1",fd);
+// help:Crv3onsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
tmp1=replace(crv3dstr,"3d","2d");
@@ -3949,8 +4020,8 @@ Crv2onsfparadataR(nm,crv2d,sf,fd):=
Crv2onsfparadataR(nm,crv2d,sf,fd,options):=
Crv2onsfparadataR(nm,crv2d,sf,fd,options,["nodisp"]);
Crv2onsfparadataR(nm,crv2dstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:Crv2onsfparadataR("1","pa1","sfbd3d1",fd);
-//help:Crv2onsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+//help :Crv2onsfparadataR("1","pa1","sfbd3d1",fd);
+//help :Crv2onsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
Changestyle(crv2dstr,["nodisp"]);
@@ -4052,8 +4123,8 @@ WireparadataR(nm,sf,wr1,wr2,fd):=
WireparadataR(nm,sf,fd,wr1,wr2,options):=
WireparadataR(nm,sf,fd,wr1,wr2,options,["nodisp"]);
WireparadataR(nm,sfstr,fdorg,wr1,wr2,optionorg,optionsh):=(
-//help:WireparadataR("1","sfbd3d1",fd,5,5);
-//help:WireparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+// help:WireparadataR("1","sfbd3d1",fd,5,5);
+// help:WireparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(fd,options,name3,name3h,outreg,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,flg,wflg);
name3="wire3d"+nm;
@@ -4159,9 +4230,9 @@ IntersectcrvsfR(nm,crv,fd,Arg):=(
);
);
IntersectcrvsfR(nm,crvstr,fdorg,bdyeq,optionorg):=(
-//help:IntersectcrvsfR("1",curve,fd);
-//help:IntersectcrvsfR("1",curve,fd,curveequation);
-//help:IntersectcrvsfR(options=[Np([50,50]),Eps(0.01)]);
+// help:IntersectcrvsfR("1",curve,fd);
+// help:IntersectcrvsfR("1",curve,fd,curveequation);
+// help:IntersectcrvsfR(options=[Np([50,50]),Eps(0.01)]);
regional(name,crv,fd,options,reL,fname,crvfname,argR,
waiting,tmp,tmp1,tmp2,flg,wflg,pts); name="crvsf"+nm;
name="crvsf"+nm;
@@ -4245,8 +4316,8 @@ SfcutparadataR(nm,eqstr,sf,fd):=
SfcutparadataR(nm,eqstr,sf,fd,options):=
SfcutparadataR(nm,eqstr,sf,fd,options,["nodisp"]);
SfcutparadataR(nm,eqstrorg,sf,fdorg,optionorg,optionsh):=(
-//help:SfcutparadataR("1","x+y+z=1","sfbd3d1",fd);
-//help:SfcutparadataR(options2=[Division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+// help:SfcutparadataR("1","x+y+z=1","sfbd3d1",fd);
+// help:SfcutparadataR(options2=[Division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,eqstr,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
tmp=Strsplit(eqstrorg,"=");
@@ -4546,6 +4617,7 @@ Makeskeletondata(ObjL,PltL,R0):=(
////////////// current skeleton 2018.01.04 ////////////////
+////%Skeletonparadata start////
Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
Skeletondatacindy(nm,options):=(
regional(tmp);
@@ -4554,15 +4626,17 @@ Skeletondatacindy(nm,options):=(
);
Skeletondatacindy(nm,pltdata1,pltdata2):=
Skeletondatacindy(nm,pltdata1,pltdata2,[]);
-Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
+Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
//help:Skeletondatacindy("1");
//help:Skeletondatacindy("1",[pdata1,pdata2],[pdata3]);
-//help:Skeletondatacindy(options2=[1(width)]);
- regional(Eps,Eps2,name2,name3,Ltype,Noflg,reL,opcindy,
+//help:Skeletondatacindy(options=[1(width),"File=y(/m/n)","Not=ptlist","Check=ptlist"]);
+ regional(Eps,Eps2,name2,name3,options,Ltype,Noflg,reL,eqL,opcindy,
Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data,
- Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2,color);
+ Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2,color,
+ fileflg,wflg,mkflg,fname,varL,nn,chkL); //181101
name2="sk2d"+nm;
name3="sk3d"+nm;
+ fname=Fhead+"sk"+nm+".txt"; //181102
pltdata1=[];// 16.01.31
forall(pltdata1org,tmp1,
tmp=parse(tmp1);
@@ -4573,65 +4647,140 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
tmp=parse(tmp1);
pltdata2=append(pltdata2,tmp);
);
+ options=optionsorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
+ eqL=tmp_5;
reL=tmp_6; //16.02.28
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
Rr=0.075*1000/2.54/MilliIn;
size=1;
Eps2=0.05;
+ fileflg="N";
+ mkflg=1;
if(length(reL)>0, //16.02.28
size=reL_1;
Rr=size*Rr;
if(length(reL)>1,Eps2=reL_2);
);
+ forall(eqL, //181101from
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="FI",
+ fileflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ if(tmp1=="N",
+ tmp=parse(tmp_2);
+ if(Anyselected(tmp),
+ mkflg=-1;
+ );
+ options=remove(options,[#]);
+ );
+ if(tmp1=="C",
+ chkL=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ );
Eps=10^(-4);
ObjL=Flattenlist(pltdata1);
Plt3L=Flattenlist(pltdata2);
tmp=apply(Plt3L,ProjcoordCurve(#));
Plt2L=Flattenlist(tmp);
-/////////// tmp=apply(pltdata1,replace(#,"3d","2d"));
- Out=[];
- forall(1..(length(ObjL)),ii,
- Obj3=ObjL_ii;
- tmp=ProjcoordCurve(Obj3);
- Data=Makeskeletondata([tmp],Plt2L,Rr,Eps2);
- forall(1..(length(Data)),jj,
- Gd=Data_jj;
- if((length(Gd)>1)
- & (Norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))>Eps),
- PtD=[];
- forall(1..(length(Gd)),
- tmp=Gd_#;
- tmp1=Invparapt(tmp,Obj3);
- PtD=append(PtD,tmp1);
+ if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), //181101from, 181103
+ wflg=1;
+ tmp=flatten(pltdata1org);
+ varL=tmp;
+ tmp1=flatten(pltdata2org);
+ forall(tmp1,
+ if(!contains(varL,#),
+ varL=append(varL,#);
+ );
+ );
+ varL=sort(varL);
+ forall(1..(length(varL)),nn,
+ tmp1=varL_nn;
+ tmp=select(GLIST,substring(#,0,length(tmp1))==tmp1);
+ varL_nn=tmp_1;
+ );
+ tmp=["THETA="+format(THETA,5),"PHI="+format(PHI,5)];
+ varL=concat(tmp,varL);
+ forall(chkL,
+ tmp=#+"="+Textformat(parse(#+".xy"),5);
+ varL=append(varL,tmp);
+ );
+ if(fileflg=="M",
+ fileflg="Y";
+ ,
+ tmp1="skeleton"+nm+".txt";
+ if(isexists(Dirwork,tmp1),
+ tmp2=load(tmp1);
+ tmp2=tokenize(tmp2,"//");
+ tmp2=tmp2_(1..(length(tmp2)-1));
+ if(tmp2==varL,
+ wflg=0;
+ if(isexists(Dirwork,fname),
+ mkflg=0;
+ ReadOutData(fname);
+ tmp=name3+"="+Textformat(parse(name3),5);
+ parse(tmp);
+ tmp=name2+"="+Textformat(parse(name2),5);
+ parse(tmp);
+ );
);
- Out=append(Out,PtD);
);
);
);
- Out=select(Out,length(Projcurve(#))>0); // 16.12.19
- tmp1=apply(Out,textformat(#,5));
- tmp=name3+"="+tmp1;
- parse(tmp);
- tmp=name2+"=Projcurve("+tmp1+");";
- parse(tmp);
- Changestyle3d(pltdata1org,["nodisp"]);
- if(Noflg<3,
- println("generate skeleton :"+name3);
- tmp1=text(pltdata1org);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=text(pltdata2org);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- tmp=name3+"=Skeletonpara3data("+tmp1+","+tmp2+",";
- tmp=tmp+text(size)+")";
- GLIST=append(GLIST,tmp);
- tmp=name2+"=Projpara("+name3+")";
- GLIST=append(GLIST,tmp);
+ if(mkflg==1, //181102
+///////////// tmp=apply(pltdata1,replace(#,"3d","2d"));
+ Out=[];
+ forall(1..(length(ObjL)),ii,
+ Obj3=ObjL_ii;
+ tmp=ProjcoordCurve(Obj3);
+ Data=Makeskeletondata([tmp],Plt2L,Rr,Eps2);
+ forall(1..(length(Data)),jj,
+ Gd=Data_jj;
+ if((length(Gd)>1)
+ & (Norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))>Eps),
+ PtD=[];
+ forall(1..(length(Gd)),
+ tmp=Gd_#;
+ tmp1=Invparapt(tmp,Obj3);
+ PtD=append(PtD,tmp1);
+ );
+ Out=append(Out,PtD);
+ );
+ );
+ );
+ Out=select(Out,length(Projcurve(#))>0); // 16.12.19
+ tmp1=apply(Out,textformat(#,5));
+ tmp=name3+"="+tmp1;
+ parse(tmp);
+ tmp=name2+"=Projcurve("+tmp1+");";
+ parse(tmp);
+ );
+ if(mkflg>-1,
+ Changestyle3d(pltdata1org,["nodisp"]);
+ );
+ if((Noflg<3)&(mkflg>-1), //181103
+ if(fileflg!="Y", //181102
+ println("generate skeleton :"+name3);
+ tmp1=text(pltdata1org);
+ tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
+ tmp2=text(pltdata2org);
+ tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
+ tmp=name3+"=Skeletonpara3data("+tmp1+","+tmp2+",";
+ tmp=tmp+text(size)+")";
+ GLIST=append(GLIST,tmp);
+ tmp=name2+"=Projpara("+name3+")";
+ GLIST=append(GLIST,tmp);
+ ,
+ GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102
+ );
);
- if(Noflg<2,
+ if((Noflg<2)&(mkflg>-1), //181103
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
@@ -4644,9 +4793,22 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
Subgraph(name3,opcindy);
);
);
- Out;
+ if(mkflg>-1,
+ if((fileflg=="Y")&(wflg==1), //181102from
+ tmp1="skeleton"+nm+".txt";
+ SCEOUTPUT = openfile(tmp1);
+ forall(varL,
+ println(SCEOUTPUT,#+"//");
+ );
+ closefile(SCEOUTPUT);
+ WriteOutData(fname,[name3,parse(name3),name2,parse(name2)]);
+ ); //181102to
+ Out;
+ );
);
+////%Skeletonparadata end////
+////%Makeskeletondata start////
Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
regional(Allres,Eps,Dmat,Dind,ii,Dt,nn1,nn2,Nind,Nobj,
Plt2,PhL,ClipL,ns,pt1,pt2,pt,pta,ptb,za,zb,z1,z2,t1,t2,te,
@@ -4849,7 +5011,9 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
);
Allres;
);
+////%Makeskeletondata end////
+////%Kukannozoku start////
Kukannozoku(Jokyo,KukanL):=(
regional(Res,Eps,nn,ii,t1,t2,Ku,Flg,contflg,tmp,tmp1);
Eps=10^(-6);
@@ -4902,6 +5066,7 @@ Kukannozoku(Jokyo,KukanL):=(
);
Res;
);
+////%Kukannozoku end////
////////////////// end of current skeleton//////////////
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
index 921167a0311..6f0e1a2326e 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
@@ -1,3 +1,21 @@
+// 20181125
+// Fillstore,Fillblack,Fillrestore added
+// 2018111
+// Connectseg debugged ( concat )
+// 20181112
+// Connectseg debugged ( concat )
+// Implicitplot changed ( "Msg=" added)
+// 20181111
+// eqL : Only the1st character used (basic2,... )
+// 20181110
+// Arrowdata,Arrowheaddata debugged ( option position,cut )
+// Arrowdata changed ( automatic naming supported)
+// Arrowhead changed ( cut option supported)
+// 20181109
+// Hatchdata changed (Default of "Max" changed to 50)
+// 20181103
+// Anyselected added
+// Hatchdata changed (option "File=", "Not=","Check=" added)
// 20181030
// Drawprocess,Workprocess changed (dispflg added)
// 20181026
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
index d466f9fe530..be7bd1adedf 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
@@ -14,9 +14,9 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("KeTCindy V.3.2.2(20181030)");
+println("KeTCindy V.3.2.3(20181201)");
println(ketjavaversion());
-println("ketcindylibbasic1(20181030) loaded");
+println("ketcindylibbasic1(20181125) loaded");
//help:start();
@@ -132,7 +132,11 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
if(iswindows(),
Batparent="\kc.bat";
,
- Shellparent="/kc.sh";
+ if(ismacosx(), //181125from
+ Shellparent="/kc.command";
+ ,
+ Shellparent="/kc.sh";
+ ); //181125to
if(!isexists(Dirwork,""),
println(Dirwork+" not exists");
,
@@ -174,6 +178,67 @@ Ketinit(work,sy,rangex,rangey):=(//181001to
);
////%Ketinit end////
+////%Fillstore start////
+Fillstore():=(
+ regional(tmp,tmp1,out);
+ tmp1=allelements();
+ tmp1=select(tmp1,indexof(#.name,"Text")>0);
+ out=apply(tmp1,[#.name,#.fillcolor]);
+ out;
+);
+////%Fillstore end////
+
+////%Fillblack start////
+Fillblack():=Fillblack("Running");
+Fillblack(str):=(
+ regional(tmp,tmp1,store);
+ tmp1=allelements();
+ tmp1=select(tmp1,indexof(#.name,"Text")>0);
+ store=apply(tmp1,[#.name,#.fillcolor,#.text]);
+ tmp=select(tmp1,#.name=="Text0");
+ if(length(tmp)==0,
+ forall(store,
+ tmp=parse(#_1);
+ tmp.fillcolor=[0,0,0];
+ );
+ ,
+ Text0.text=str;
+ );
+ store;
+);
+////%Fillblack end////
+
+////%Fillrestore start////
+Fillrestore(store):=(
+ regional(tmp);
+ tmp=select(store,#_1=="Text0");
+ if(length(tmp)==0,
+ forall(store,
+ tmp=parse(#_1);
+ tmp.fillcolor=#_2;
+ );
+ ,
+ tmp=tmp_1;
+ Text0.text=tmp_3;
+ );
+);
+////%Fillrestore end////
+
+////%Readlines start////
+Readlines(file):=Readlines(Dirwork,file); //181126
+Readlines(path,file):=(
+//help:Readlines(path,file);
+ regional(tmp,out);
+ out=readfile2str(path,file);
+ out=tokenize(out,"/LF/");
+ tmp=out_(length(out));
+ if(length(tmp)==0,
+ out=out_(1..(length(out)-1));
+ );
+ out;
+);
+////%Readlines end////
+
////%Changesetting start////
Changesetting(dir):=( //181017
regional(fname);
@@ -646,7 +711,8 @@ Changework(dirorg,options):=( //16.10.21
makesub=1;
forall(eqL,
tmp=Strsplit(#,"=");
- if(Toupper(tmp_1)=="SUB",
+ tmp1=Toupper(substring(#,0,1)); //181111
+ if(tmp1=="S",
tmp=Toupper(tmp_2);
if(substring(tmp,0,1)=="N",
makesub=0;
@@ -688,9 +754,9 @@ Changework(dirorg,options):=( //16.10.21
setdirectory(Dirwork);
if(!iswindows(), //17.04.11
if(!iskcexists(Dirwork),
- SCEOUTPUT = openfile("/kc.sh");
+ SCEOUTPUT = openfile("/kc.command"); //181125
closefile(SCEOUTPUT);
- println(setexec(Dirwork,"/kc.sh"));
+ println(setexec(Dirwork,"/kc.command")); //181125
);
);
);
@@ -4431,7 +4497,7 @@ Connectseg(Pdata):=(
);
);
if(flg==0,
- PlotL=concat(PlotL,Pdata_(vL_1));
+ PlotL=concat(PlotL,[Pdata_(vL_1)]); //181112
vL=remove(vL,[vL_1]);
);
);
@@ -4441,14 +4507,15 @@ Connectseg(Pdata):=(
////%Implicitplot start////
Implicitplot(name1,func,xrng,yrng):=Implicitplot(name1,func,xrng,yrng,[]);
-Implicitplot(name1,func,xrng,yrng,options):=(
+Implicitplot(name1,func,xrng,yrng,optionsorg):=(
//help:Implicitplot("1","x^2+x*y+y^2=1","x=[-3,3]","y=[-3,3]");
-//help:Implicitplot(options=["Num=[50,50]"]);
- regional(name,Fn,varx,vary,rngx,rngy,Mdv,Ndv,tmp,tmp1,tmp2,
- Eps,Ltype,Noflg,eqL,color,opsr,opcindy,dx,dy,out,jj,ii,kk,
+//help:Implicitplot(options=["Num=[50,50]","Msg=y(n)"]);
+ regional(name,options,Fn,varx,vary,rngx,rngy,Mdv,Ndv,tmp,tmp1,tmp2,
+ Eps,Ltype,Noflg,eqL,color,opsr,opcindy,dx,dy,out,jj,ii,kk,msg,
yval1,yval2,xval1,xval2,eval11,eva12,eval21,eval22,pL,vL,qL);
name="imp"+name1;
Eps=10^(-4);
+ options=optionsorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -4457,10 +4524,11 @@ Implicitplot(name1,func,xrng,yrng,options):=(
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
Mdv=50;Ndv=50;
+ msg="Y";
forall(eqL,
- tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,tmp-1));
- tmp2=substring(#,tmp,length(#));
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
opstr=opstr+",'"+#+"'";
if(substring(#,0,1)=="N",
Mdv=parse(tmp2);
@@ -4471,6 +4539,10 @@ Implicitplot(name1,func,xrng,yrng,options):=(
Mdv=Mdv_1;
);
);
+ if(substring(#,0,1)=="M", //181112from
+ msg=Toupper(substring(tmp2,0,1));
+ options=remove(options,[#]);
+ ); //181112to
);
tmp=indexof(func,"=");
if(tmp==0,
@@ -4541,7 +4613,9 @@ Implicitplot(name1,func,xrng,yrng,options):=(
out=out_1;
);
if(Noflg<3,
- println("generate Implicitplotdata "+name);
+ if(msg=="Y", //181112
+ println("generate Implicitplotdata "+name);
+ );
if(MeasureDepth(out)==1,
tmp1=apply(out,Pcrd(#));
,
@@ -4922,14 +4996,14 @@ Drawsegmark(nm,ptlist,options):=(
tmp=indexof(#,"=");
tmp1=substring(#,tmp,length(#));
tmp1=parse(tmp1);
- tmp=substring(#,0,1);
- if(tmp=="S" % tmp=="s",
+ tmp=Toupper(substring(#,0,1));
+ if(tmp=="S",
size=size*tmp1;
);
- if(tmp=="W" % tmp=="w",
+ if(tmp=="W",
wid=wid*tmp1;
);
- if(tmp=="T" % tmp=="t",
+ if(tmp=="T",
tp=tmp1;
);
);
@@ -5209,13 +5283,15 @@ Putintersect(nm,pdata1,pdata2,ptno):=(
Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
Arrowheaddata(point,direction,options):=(
// help:Arrowheaddata(A,B);
-// help:Arrowheaddata(options=[1,18,"Coord=phy"]);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,Ev,Nv,pA,pB,
+// help:Arrowheaddata(options=[size(1),angle(18), "Coord=phy"]);
+ regional(list,ookisa,hiraki,Houkou,Str,Flg,Ev,Nv,pA,pB,
reL,eqL,coord,pP,rF,gG,Flg,Nj,Eps,scx,scy,tmp,tmp1,tmp2);
Eps=10^(-3);
coord="P";
- Ookisa=0.2*YaSize;
- Hiraki=YaAngle;
+ ookisa=0.2*YaSize;
+ hiraki=YaAngle;
+ iti=1;
+ kiri=0;
Futosa=0;
Str=YaStyle;
tmp=Divoptions(options);
@@ -5229,17 +5305,19 @@ Arrowheaddata(point,direction,options):=(
coord=Touppera(tmp2);
);
); //181018to
- if(length(reL)>0,Ookisa=Ookisa*reL_1);
- if(length(reL)>1,
- tmp=reL_2;
- if(tmp<5,
- Hiraki=Hiraki*tmp;
- ,
- Hiraki=tmp;
+ forall(1..(length(reL)), //181110from
+ tmp=reL_#;
+ if(#==1,ookisa=ookisa*tmp);
+ if(#==2,
+ if(tmp<5,
+ hiraki=hiraki*tmp;
+ ,
+ hiraki=tmp;
+ );
);
- );
+ ); //181110to
Flg=0;
- Hiraki=Hiraki*pi/180;
+ hiraki=hiraki*pi/180;
if(ispoint(direction),Houkou=direction.xy); //181018
if(isstring(direction),Houkou=parse(direction),Houkou=direction);
if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
@@ -5262,7 +5340,7 @@ Arrowheaddata(point,direction,options):=(
rF=Numptcrv(Houkou);
);
);
- gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
+ gG=apply(0..10,pP+ookisa*cos(hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]);
Flg=0;
forall(1..rF,Nj,
if(Flg==0,
@@ -5285,13 +5363,13 @@ Arrowheaddata(point,direction,options):=(
Ev=-1/|Houkou|*Houkou;
Nv=[-Ev_2, Ev_1];
if(indexof(Str,"c")>0,
- pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
+ pP=pP-0.5*ookisa*cos(hiraki)*Ev;
);
if(indexof(Str,"b")>0,
- pP=pP-Ookisa*cos(Hiraki)*Ev;
+ pP=pP-ookisa*cos(hiraki)*Ev;
);
- pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
- pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
+ pA=pP+ookisa*cos(hiraki)*Ev+ookisa*sin(hiraki)*Nv;
+ pB=pP+ookisa*cos(hiraki)*Ev-ookisa*sin(hiraki)*Nv;
list=[pA,pP,pB];
list;
);
@@ -5309,10 +5387,10 @@ Arrowhead(Arg1,Arg2,Arg3):=(
);
Arrowhead(nm,point,direction,optionsorg):=(//181018from
//help:Arrowhead("1",B,B-A);
-//help:Arrowhead(options=[1.5,30,"Coor=P(L)"]);
+//help:Arrowhead(options=[size(1),angle(18),position(1),cut(0),"Coor=P(L)"]);
//help:Arrowhead(A,"gr1");
regional(name,Ltype,Noflg,reL,opstr,opcindy,color,eqL,coord,
- options,pP,Houkou,ptstr,hostr,tmp,tmp1,tmp2,list);
+ options,cut,pP,Houkou,ptstr,hostr,tmp,tmp1,tmp2,list);
name="arh"+nm; //181018
ArrowheadNumber=ArrowheadNumber+1;
options=optionsorg;
@@ -5328,10 +5406,17 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from
tmp1=substring(tmp_1,0,1);
tmp2=substring(tmp_2,0,1);
if(Toupper(tmp1)=="C",
- coord=Touppera(tmp2);
+ coord=Toupper(tmp2);
options=remove(options,[#]);
);
); //181018to
+ cut=0; //181110from
+ if(length(reL)>3,
+ cut=reL_4;
+ tmp=reL_(1..3);
+ options=remove(options,reL);
+ options=concat(options,tmp);
+ ); //181110from
if(ispoint(direction),Houkou=direction.xy); //181018
if(isstring(direction),Houkou=parse(direction),Houkou=direction);
if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
@@ -5360,6 +5445,7 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from
if(Noflg==0,
tmp=Divoptions(options);
opstr=tmp_(length(tmp)-1);
+ opstr=opstr+","+Dqq("Cut="+format(cut,5));
ptstr=Textformat(LLcrd(pP),5);
if(isstring(direction), //181019
hostr=direction;
@@ -5382,13 +5468,27 @@ Arrowhead(nm,point,direction,optionsorg):=(//181018from
////%Arrowhead end////
////%Arrowdata start////
-Arrowdata(nm,ptlist):=Arrowdata(nm,ptlist,[]);
+Arrowdata(ptlist):=Arrowdata(ptlist,[]); //181110from
+Arrowdata(Arg1,Arg2):=(
+ regional(name);
+ if(isstring(Arg1),
+ Arrowdata(Arg1,Arg2,[]);
+ ,
+ name="";
+ forall(Arg1,
+ if(ispoint(#),
+ name=name+text(#);
+ );
+ );
+ Arrowdata(name,Arg1,Arg2);
+ );
+); //181110from
Arrowdata(nm,ptlist,optionsorg):=(
//help:Arrowdata("1",[A,B]);
//help:Arrowdata("1",[pt1,pt2]);
-//help:Arrowdata(options=[1,18,pos(1),cut(0),"Cutend=0,0","Coord=p/n"]);
+//help:Arrowdata(options=[size(1),angle(18),pos(1),cut(0),"Cutend=0,0","Coord=p/l"]);
regional(options,Ltype,Noflg,name,opstr,opcindy,eqL,reL,strL,color,size,coord,
- flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos);
+ flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos,cut);
name="ar"+nm;
options=optionsorg;
tmp=Divoptions(options);
@@ -5403,15 +5503,16 @@ Arrowdata(nm,ptlist,optionsorg):=(
size=1; // 15.06.11
angle=18;
segpos=1;
- if(length(reL)>0,
- size=relL_1;
- if(length(reL)>1, //180719from
- angle=reL_2;
- if(length(reL)>2,
- segpos=reL_3;
- );
- );//180719to
- );
+ cut=0; //181110from
+ forall(1..(length(reL)),
+ tmp=reL_#;
+ if(#==1,size=tmp);
+ if(#==2,angle=tmp);
+ if(#==3,
+ segpos=tmp;
+ );
+ if(#==4,cut=tmp);
+ ); //181110to
lineflg=0;
if(contains(strL,"l")%contains(strL,"L"),
lineflg=1;
@@ -5435,6 +5536,12 @@ Arrowdata(nm,ptlist,optionsorg):=(
options=remove(options,[#]);
);
);
+ if(|cutend|>0,//181110from
+ tmp=ptlist_2-ptlist_1;
+ tmp=tmp/|tmp|;
+ ptlist_1=ptlist_1+tmp*cutend_1;
+ ptlist_2=ptlist_2-tmp*cutend_2;
+ );//181110to
if(coord=="P",
pA=ptlist_1; pB=ptlist_2;
if(ispoint(pA),pA=pA.xy);
@@ -5444,12 +5551,6 @@ Arrowdata(nm,ptlist,optionsorg):=(
);//181018to
if(Noflg<3,
println("generate Arrowdata "+name);
- if(|cutend|>0,//180719from
- tmp=ptlist_2-ptlist_1;
- tmp=tmp/|tmp|;
- ptlist_1=ptlist_1+tmp*cutend_1;
- ptlist_2=ptlist_2-tmp*cutend_2;
- );//180719to
tmp=name+"="+Textformat([pA,pB],5);
parse(tmp);
if(lineflg==0, // 16.04.09 from
@@ -5461,15 +5562,8 @@ Arrowdata(nm,ptlist,optionsorg):=(
);
if(Noflg<2,
if(isstring(Ltype),
-// if((Noflg==0)&(color!=KCOLOR), //180904
-// Texcom("{");Com2nd("Setcolor("+color+")");//180722
-// );
Listplot("-ar"+nm,[LLcrd(pA),LLcrd(pB)],append(options,"Msg=n"));
- Arrowhead(nm,pB,pB-pA,options);
-// Ltype=GetLinestyle(text(Noflg)+Ltype,name);
-// if((Noflg==0)&(color!=KCOLOR), //180904
-// Texcom("}");//180722
-// );
+ Arrowhead(nm,pA+segpos*(pB-pA),pB-pA,options); //181110
,
if(Noflg==1,Ltype=0);
);
@@ -6524,10 +6618,22 @@ Makehatch(iolistorg,pt,vec,bdylist):=(
);
////%Makehatch end////
+////%Anyselected start////
+Anyselected(ptL):=(
+ regional(tmp,out);
+ out=false;
+ forall(ptL,
+ if(isstring(#),tmp=parse(#),tmp=#);
+ out=(out)%(isselected(tmp));
+ );
+ out;
+);
+////%Anyselected end////
+
////%Hatchdata start////
Hatchdata(nm,iostr,bdylist):=Hatchdatacindy(nm,iostr,bdylist,[]);//180619
Hatchdata(nm,iostr,bdylist,optionsorg):=( //181003from
- regional(options,tmp,tmp1,tmp2,eqL,strL,outflg);
+ regional(options,tmp,tmp1,tmp2,eqL,strL,chkL,outflg);
options=optionsorg;
tmp=Divoptions(options);
eqL=tmp_5;
@@ -6555,13 +6661,15 @@ Hatchdata(nm,iostr,bdylist,optionsorg):=( //181003from
);
); //181003to
Hatchdatacindy(nm,iostr,bdylist):=Hatchdata(nm,iostr,bdylist,[]);
-Hatchdatacindy(nm,iostr,bdylistorg,options):=(
+Hatchdatacindy(nm,iostr,bdylistorg,optionsorg):=(
//help:Hatchdata("1",["ii"],[["ln1","Invert(gr1)"],["gr2","n"]]);
-//help:Hatchdata(options=["Out=n(//m/r)","Maxnum=20",angle,width]);
+//help:Hatchdata(options=["Not=pointlist","File=y(/m/n)","Max=50","Check=",angle,width]);
regional(name,bdylist,bdynameL,bname,Ltype,Noflg,opstr,opcindy,reL,
- eqL,maxnum,startP,angle,interval,vec,nvec,ctr,pt,kk,delta,sha,AnsL,
- color,tmp,tmp1,tmp2,tmp3,namep,x1,y1,x2,y2,p1,p2); //180717
+ options,eqL,maxnum,startP,angle,interval,vec,nvec,ctr,pt,kk,delta,sha,AnsL,
+ color,tmp,tmp1,tmp2,tmp3,namep,x1,y1,x2,y2,p1,p2, //180717
+ fname,fileflg,mkflg,vaL,pL,nL,nn,str,is,ie); //181102
name="ha"+nm;
+ fname=Fhead+name+".txt";
bdylist=[];
bdynameL=[];
forall(1..(length(bdylistorg)),kk,
@@ -6625,6 +6733,7 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
bdylist=append(bdylist,parse(bname));
bdynameL=append(bdynameL,bname);
);
+ options=optionsorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -6637,17 +6746,36 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
// interval=0.125*1000/2.54/MilliIn;
interval=0.25*1000/2.54/MilliIn; //180706
startP=[(XMIN+XMAX)/2, (YMIN+YMAX)/2];
- maxnum=[30,0]; //181005 [first,second]
+ maxnum=[50,0]; //181109changed [first,second]
+ fileflg="N";//181102from
+ mkflg=1;
+ chkL=[]; //181109
forall(eqL,
tmp=Strsplit(#,"=");
- tmp1=Toupper(tmp_1);
- if(substring(tmp1,0,1)=="M",
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
maxnum=parse(tmp_2);
if(!islist(maxnum),
maxnum=[maxnum,0];
);
+ options=remove(options,[#]);
);
- );//181003to
+ if(tmp1=="F", //181102from
+ fileflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ ); //181102to
+ if(tmp1=="N", //181103from
+ tmp=parse(tmp_2);
+ if(Anyselected(tmp),
+ mkflg=-1;
+ );
+ options=remove(options,[#]);
+ );
+ if(tmp1=="C",
+ chkL=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ );//181102,03to
tmp1=1;
forall(reL,
if(islist(#),
@@ -6661,45 +6789,114 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
);
);
);
- angle=angle*pi/180;
- vec=[cos(angle),sin(angle)];
- nvec=[-sin(angle),cos(angle)];
- AnsL=[];
- ctr=0;//181005(2lines)
- forall(0..(maxnum_1), kk,
- pt=startP+kk*interval*nvec;
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha!=-1)&(length(sha)>0),
- AnsL=concat(AnsL,sha);
- ctr=ctr+1; //181005
+ if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), //181102from
+ wflg=1;
+ varL=flatten(bdylistorg);
+ varL=select(varL,length(#)>1);
+ varL=sort(varL);
+ pL=[];
+ forall(1..(length(varL)),nn,
+ tmp1=varL_nn;
+ tmp=select(GLIST,substring(#,0,length(tmp1))==tmp1);
+ str=tmp_1;
+ varL_nn=str;
+ tmp1=Bracket(str,"()");
+ tmp2=max(apply(tmp1,#_2));
+ nL=select(1..(length(tmp1)),tmp1_#_2==tmp2);
+ forall(nL,nn,
+ is=tmp1_nn_1; ie=tmp1_(nn+1)_1;
+ tmp=substring(str,is,ie-1);
+ tmp=replace(tmp,"'",Dq);
+ tmp=parse("["+tmp+"]");
+ tmp2=flatten(tmp);
+ tmp2=flatten(tmp2);
+ tmp2=flatten(tmp2);
+ forall(tmp2,
+ if(ispoint(#),
+ if(!contains(pL,text(#)),
+ pL=append(pL,text(#));
+ );
+ );
+ );
+ );
);
- );
- maxnum_2=maxnum_2+(maxnum_1-ctr); //181005
- forall(1..(maxnum_2),kk, //181005
- pt=startP-kk*interval*nvec;
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha!=-1)&(length(sha)>0),
- AnsL=concat(AnsL,sha);
+ forall(chkL,
+ if(!contains(pL,#),pL=append(pL,#));
+ );
+ forall(pL,
+ tmp=#+"="+Textformat(parse(#+".xy"),5);
+ varL=append(varL,tmp);
+ );
+ tmp="reL="+Textformat(reL,5);
+ varL=append(varL,tmp);
+ if(fileflg=="M",
+ fileflg="Y";
+ ,
+ tmp1="hatch"+nm+".txt";
+ if(isexists(Dirwork,tmp1),
+ tmp2=load(tmp1);
+ tmp2=tokenize(tmp2,"//");
+ tmp2=tmp2_(1..(length(tmp2)-1));
+ if(tmp2==varL,
+ wflg=0;
+ if(isexists(Dirwork,fname),
+ mkflg=0;
+ ReadOutData(fname);
+ tmp=name+"="+Textformat(parse(name),5);
+ parse(tmp);
+ );
+ );
+ );
);
);
- if(Noflg<3,
- println("generate Hatchdata "+name);
- tmp=name+"="+textformat(AnsL,5);
- parse(tmp);
- if(!islist(iostr),tmp1=[iostr],tmp1=iostr);
- tmp="c(";
- forall(tmp1,
- tmp=tmp+Dq+#+Dq+",";
+ if(mkflg==1, //181102to
+ angle=angle*pi/180;
+ vec=[cos(angle),sin(angle)];
+ nvec=[-sin(angle),cos(angle)];
+ AnsL=[];
+ ctr=0;//181005(2lines)
+ forall(0..(maxnum_1), kk,
+ pt=startP+kk*interval*nvec;
+ sha=Makehatch(iostr,pt,vec,bdylist);
+ if((sha!=-1)&(length(sha)>0),
+ AnsL=concat(AnsL,sha);
+ ctr=ctr+1; //181005
+ );
+ );
+ maxnum_2=maxnum_2+(maxnum_1-ctr); //181005
+ forall(1..(maxnum_2),kk, //181005
+ pt=startP-kk*interval*nvec;
+ sha=Makehatch(iostr,pt,vec,bdylist);
+ if((sha!=-1)&(length(sha)>0),
+ AnsL=concat(AnsL,sha);
+ );
);
- tmp=substring(tmp,0,length(tmp)-1)+")";
- tmp2=name+"=Hatchdata("+tmp;
- forall(bdynameL,
- tmp2=tmp2+",list("+#+")";
+ tmp1=apply(AnsL,textformat(#,5));
+ tmp=name+"="+tmp1;
+ parse(tmp);
+ );
+ if((Noflg<3)&(mkflg>-1),
+ if(fileflg!="Y", //181102
+ println("generate Hatchdata "+name);
+ tmp=name+"="+textformat(AnsL,5);
+ parse(tmp);
+ if(!islist(iostr),tmp1=[iostr],tmp1=iostr);
+ tmp="c(";
+ forall(tmp1,
+ tmp=tmp+Dq+#+Dq+",";
+ );
+ tmp=substring(tmp,0,length(tmp)-1)+")";
+ tmp2=name+"=Hatchdata("+tmp;
+ forall(bdynameL,
+ tmp2=tmp2+",list("+#+")";
+ );
+ tmp2=tmp2+opstr+")";
+ GLIST=append(GLIST,tmp2);
+ ,
+ GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102
);
- tmp2=tmp2+opstr+")";
- GLIST=append(GLIST,tmp2);
);
- if(Noflg<2,
+ if((Noflg<2)&(mkflg>-1),
if(isstring(Ltype),
if((Noflg==0)&(color!=KCOLOR), //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
@@ -6713,12 +6910,23 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
- tmp2=[];
- forall(AnsL,tmp1,
- tmp=apply(tmp1,LLcrd(#));
- tmp2=append(tmp2,tmp);
+ if(mkflg>-1,
+ if((fileflg=="Y")&(wflg==1), //181102from
+ tmp1="hatch"+nm+".txt";
+ SCEOUTPUT = openfile(tmp1);
+ forall(varL,
+ println(SCEOUTPUT,#+"//");
+ );
+ closefile(SCEOUTPUT);
+ WriteOutData(fname,[name,parse(name)]);
+ ); //181102to
+ tmp2=[];
+ forall(AnsL,tmp1,
+ tmp=apply(tmp1,LLcrd(#));
+ tmp2=append(tmp2,tmp);
+ );
+ tmp2;
);
- tmp2;
);
////%Hatchdata end////
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
index aec118d8bfa..ab1ae5703e7 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
@@ -1,3 +1,10 @@
+// 20181125
+// Mkslides, Mksldesummary chanded (Fillblack added )
+// Presentation changed ( load => readfile2str )
+// 20181106
+// WritetoRS changed ( Abnormal point ignored )
+// 20181030
+// ReadOutData debugged (option Disp= )
// 20181024
// ReadOutData changed (option Disp= )
// 20181021
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
index db5421162a5..e96e1d36cce 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindybasic2(20181024) loaded");
+println("ketcindybasic2(20181125) loaded");
//help:start();
@@ -1775,7 +1775,6 @@ Periodfun(defL,reporg,optionorg):=( // 16.11.24
tmp=indexof(#,"=");//180725from
tmp=[substring(#,0,tmp-1),substring(#,tmp,length(#))];
if(Toupper(substring(tmp_1,0,3))=="CON",
- println([1658,tmp_2]);
tmp1=Toupper(Op(1,tmp_2));
if(tmp1=="N",
connect=[];
@@ -1891,9 +1890,9 @@ Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
rng="Y";
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
+ tmp1=Toupper(substring(#,0,1)); //181111
tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="RN",
+ if(tmp1=="R",
rng=tmp2;
options=remove(options,[#]);
);
@@ -1987,9 +1986,9 @@ Tabledata(nm,xLst,yLst,rmvL,optionorg):=(
rng="Y";
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
+ tmp1=Toupper(substring(#,0,1)); //181111
tmp2=Toupper(substring(#,tmp,tmp+1));
- if(tmp1=="RN",
+ if(tmp1=="R",
rng=tmp2;
options=remove(options,[#]);
);
@@ -2743,12 +2742,16 @@ WritetoRS(filename,shchoice):=(
Plist=[];
Pnamelist=[];
forall(remove(allpoints(),[SW,NE]),
- tmp=Lcrd(#);
- tmp1=format(re(tmp_1),6);// 15.02.05
- tmp2=format(re(tmp_2),6);
- tmp=#.name+"="+"c("+tmp1+","+tmp2+");";
- tmp=tmp+"Assignadd('"+#.name+"',"+#.name+")";
- Plist=append(Plist,tmp);
+ if(indexof(#.name,"[")==0, //181106
+ tmp=Lcrd(#);
+ tmp1=format(re(tmp_1),6);// 15.02.05
+ tmp2=format(re(tmp_2),6);
+ tmp=#.name+"="+"c("+tmp1+","+tmp2+");";
+ tmp=tmp+"Assignadd('"+#.name+"',"+#.name+")";
+ Plist=append(Plist,tmp);
+ ,
+ println("Remove the abnormal poiint "+#.name); //181106
+ );
);
SCEOUTPUT = openfile(filename);
tmp=Datetime();
@@ -2808,6 +2811,7 @@ WritetoRS(filename,shchoice):=(
forall(Plist,
println(SCEOUTPUT,#);
);
+ VLIST=select(VLIST,substring(#_1,0,1)!="["); //181107
forall(VLIST,
tmp=#_1;
tmp1=#_2;
@@ -2827,7 +2831,7 @@ WritetoRS(filename,shchoice):=(
// tmp=substring(tmp,0,length(tmp)-1);
println(SCEOUTPUT,"Assignadd('"+tmp+"',"+tmp+")");
);
- forall(FUNLIST,
+ forall(FUNLIST,
println(SCEOUTPUT,#);
);
forall(GLIST,
@@ -3011,14 +3015,21 @@ RemoveOut(pltlist):=(
////%ReadOutData start////
ReadOutData():=ReadOutData(Fnameout);
ReadOutData(filename):=ReadOutData("",filename); //16.03.07
-ReadOutData(path,filename):=ReadOutData(path,filename,[]);//181024(2lines)
-ReadOutData(pathorg,filenameorg,options):=(
+ReadOutData(Arg1,Arg2):=( //181030from
+ if(islist(Arg2),
+ ReadOutData("",Arg1,Arg2);
+ ,
+ ReadOutData(Arg1,Arg2,[]);
+ );
+); //181030to
+ReadOutData(pathorg,filenameorg,optionsorg):=(
//help:ReadOutData();
//help:ReadOutData("file.txt");
//help:ReadOutData("/datafolder","file.txt");
//help:ReadOutdata(options=["Disp=n(/y)]");
- regional(path,filename,varname,varL,ptL,pts,tmp,tmp1,tmp2,tmp3,tmp4,
+ regional(options,path,filename,varname,varL,ptL,pts,tmp,tmp1,tmp2,tmp3,tmp4,
nmbr,cmdall,cmd,cmdorg,outdt,goutdt,eqL,dispflg);
+ options=optionsorg;
dispflg=1;
tmp=Divoptions(options); //181024from
eqL=tmp_5;
@@ -3028,6 +3039,7 @@ ReadOutData(pathorg,filenameorg,options):=(
tmp2=substring(tmp_2,0,1); tmp2=Toupper(tmp2);
if(tmp1=="D",
if(tmp2=="N",dispflg=0);
+ options=remove(options,[#]); //181030
);
); //181024to
path=pathorg; //16.03.07 from
@@ -3036,8 +3048,8 @@ ReadOutData(pathorg,filenameorg,options):=(
if(indexof(path,"\")>0,tmp1="\",tmp1="/");
tmp=substring(path,length(path)-1,length(path));
if(tmp!=tmp1,path=path+tmp1);
- ); //16.03.07 until
- filename=filenameorg; // 16.04.17
+ ); //16.03.07to
+ filename=filenameorg; // 16.04.17
if(indexof(filename,".")==0,filename=filename+".txt");
tmp=load(filename);
cmdall=tokenize(tmp,"//");
@@ -3110,6 +3122,8 @@ ReadOutData(pathorg,filenameorg,options):=(
print("readoutdata from "+tmp+" : ");
if(dispflg==1, //181024from
println(varL);
+ ,
+ println("");
); //181024to
varL;
);
@@ -4563,9 +4577,12 @@ Presentation(texfile,txtfile):=(
paractr=0; //16.12.31
if(indexof(texfile,".")==0,file=texfile+".tex",file=texfile);
if(indexof(txtfile,".")==0,tmp1=txtfile+".txt",tmp1=txtfile);
- tmp=load(tmp1);
- tmp=replace(tmp,"////","||||");// 16.05.11, 06.24(reactivated)
- slideL=tokenize(tmp,"//");
+// tmp=load(tmp1); //181125from
+ tmp=readfile2str(Dirwork,tmp1);
+ tmp=replace(tmp,"////","||||");
+ tmp=replace(tmp,"/LF/::","::");
+ tmp=replace(tmp,"///LF/","/LF/");
+ slideL=tokenize(tmp,"/LF/"); //181125to
slideorgL=slideL; // 16.07.11
slideL=apply(slideL,Removespace(#));
tmp=select(1..length(slideL),length(slideL_#)>0); // 16.07.11from
@@ -5210,7 +5227,8 @@ Presentation(texfile,txtfile):=(
////%Mkslides start////
Mkslides():=(
- regional(sep,parent,texparentorg,tmp,tmp1,tmp2,tmp3,tmp4,flg);
+ regional(store,sep,parent,texparentorg,tmp,tmp1,tmp2,tmp3,tmp4,flg);
+ store=Fillblack();//181125
tmp4=Fhead;
Fhead="";
if(!iswindows(), //17.10.13
@@ -5271,6 +5289,7 @@ Mkslides():=(
setdirectory(Dirwork);
Fhead=tmp4;
Texparent=texparentorg;//17.04.10
+ Fillrestore(store);//181125
);
////%Mkslides end////
@@ -5288,7 +5307,8 @@ Mkslidesummary(fin,fout):=
Mkslidesummary(fin,fout,["m","Wait=3"]);
Mkslidesummary(inputfile,outputfile,options):=(
//help:Mkslidesummary(fin,fout,options);
- regional(fin,fout,out,figflg,dirworkorg,dirtop,tmp);
+ regional(store,fin,fout,out,figflg,dirworkorg,dirtop,tmp);
+ store=Fillblack();//181125
dirworkorg=Dirwork;//17.04.10from
dirtop=replace(Dirwork,pathsep()+"fig","");
Changework(dirtop);//17.04.10uptp
@@ -5338,6 +5358,7 @@ Mkslidesummary(inputfile,outputfile,options):=(
);
kc();
Changework(dirworkorg);//17.04.10
+ Fillstore(store);//181125
);
////%Mkslidesummary end////
@@ -5410,13 +5431,13 @@ BBdata(fname,optionorg):=(
);
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
+ tmp1=Toupper(substring(#,0,1)); //181111
tmp2=substring(#,tmp,length(#));
- if(tmp1=="W=",
+ if(tmp1=="W",
addop=addop+",width="+tmp2;
options=remove(options,[#]);
);
- if(tmp1=="H=",
+ if(tmp1=="H",
addop=addop+",height="+tmp2;
options=remove(options,[#]);
);
@@ -5427,7 +5448,11 @@ BBdata(fname,optionorg):=(
if(iswindows(),
kcfile="kc.bat";
,
- kcfile="kc.sh";
+ if(macosx(),
+ kcfile="kc.command";
+ ,
+ kcfile="kc.sh";
+ );
);
if(flg==0,
tmp=load(fout); //
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
index 3b86853918f..5a8170e32c5 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
@@ -1,3 +1,7 @@
+// 20181128
+// Mkviewobj changed (Fillblack added)
+// 20181125
+// Mkflipanime,Mkanimation,Parafolder changed (Fillblack added)
// 20180711
// Setpara changed ("Mag" removed )
// 20180617
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
index 96e79b3f532..2c297051bf2 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
@@ -14,10 +14,11 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindymv(20180711) loaded");
+println("ketcindymv(20181125) loaded");
//help:start();
+////%Setpara start////
Setpara(path,fstr,sL):=Setpara(path,fstr,sL,[],[]);
Setpara(pathorg,fstr,sL,options):=
Setpara(pathorg,fstr,sL,options,[]);
@@ -98,7 +99,9 @@ Setpara(pathorg,fstr,sL,options,optionsanim):=(
);
COM2ndlistback=ctmp;
);
+////%Setpara end////
+////%Parafolder start////
Parafolder():=Parafolder(ParaFstr,ParaSL,ParaOp);
Parafolder(fstr,sL):=Parafolder(fstr,sL,[]);
Parafolder(fstr,sL,optionorg):=(
@@ -109,8 +112,9 @@ Parafolder(fstr,sL,optionorg):=(
//help:Parafolder(optionsadd=[""Outfile=n",Pause=10(ms)"]);
//help:Paraslide(para=folder:layery:pos:input,scale);
//help:Paraslide(para=folder:layery:pos:include:[width=100]);
- regional(nn,tmp,tmp1,tmp2,strL,eqL,waiting,outflg,pause,
+ regional(store,nn,tmp,tmp1,tmp2,strL,eqL,waiting,outflg,pause,
mkr,mktex,options,sfL,dirbkup,pfile,ctr,flg,varL,waitingR,timeC,timeR);
+ store=Fillblack(); //181125
tmp=indexof(fstr,"(");
tmp1=substring(fstr,tmp,length(fstr));
tmp=indexof(tmp1,")");
@@ -258,8 +262,11 @@ Parafolder(fstr,sL,optionorg):=(
); //180617to
Changework(Dirworkbkup);
Setfiles(Fheadbkup);
+ Fillrestore(store); //181125
);
+////%Parafolder end////
+////%Animatefile start////
Animatefile():=Animatefile(Dirwork,ParaPath);
Animatefile(path,folder):=(
//help:Animatefile();
@@ -272,16 +279,16 @@ Animatefile(path,folder):=(
OpA="loop,controls,buttonsize=3mm";
remflg=0;
forall(eqL,
- tmp1=Toupper(substring(#,0,2));
+ tmp1=Toupper(substring(#,0,1)); //181111
tmp=indexof(#,"=");
tmp2=substring(#,tmp,length(#));
- if(tmp1=="FR",
+ if(tmp1=="F",
FRate=tmp2;
);
- if(tmp1=="SC",
+ if(tmp1=="S",
Scale=tmp2;
);
- if(tmp1=="OP", // 17.12.07from
+ if(tmp1=="O", // 17.12.07from
if(length(tmp2)>0,
tmp2=replace(tmp2,"[","");
tmp2=replace(tmp2,"]","");
@@ -333,7 +340,9 @@ Animatefile(path,folder):=(
closefile(SCEOUTPUT);
println(fname+" has been generated");
);
+////%Animatefile end////
+////%Mkanimation start////
Mkanimation():=(
regional(remflg,tmp,eqL,tmp1,tmp2);
if(!isexists(Dirwork,ParaPath), //17.10.14from
@@ -346,8 +355,9 @@ Mkanimation(folder):=Mkanimation(Dirwork,folder);
Mkanimation(path,folder):=(
//help:Mkanimation();
//help:Mkanimation(path,folder);
- regional(Fheadbkup,Pathpdfbkup,tex,article,parent,
+ regional(store,Fheadbkup,Pathpdfbkup,tex,article,parent,
eqL,mag,title,tmp,tmp1,tmp2,tmp3,flg);
+ store=Fillblack(); //181125
tmp=Divoptions(ParaOpAnim); //17.11.25from
eqL=tmp_5;
mag="1600";
@@ -479,8 +489,11 @@ Mkanimation(path,folder):=(
);
Fhead=Fheadbkup;
Pathpdf= Pathpdfbkup;
+ Fillrestore(store); //181125
);
+////%Mkanimation end////
+////%Mkflipanime start////
Mkflipanime():=(
regional(remflg,tmp,eqL,tmp1,tmp2);
if(!isexists(Dirwork,ParaPath), //17.10.14from
@@ -492,8 +505,9 @@ Mkflipanime(folder):=Mkflipanime(Dirwork,folder);
Mkflipanime(path,folder):=(
//help:Mkfilpanime();
//help:Mkflipanime(path,folder);
- regional(Fheadbkup,tex,article,parent,eqL,mag,title,
+ regional(store,Fheadbkup,tex,article,parent,eqL,mag,title,
tmp,tmp1,tmp2,tmp3,texfiles,flg);
+ store=Fillblack(); //181125
tmp=Divoptions(ParaOpAnim); //17.11.25from
eqL=tmp_5;
mag="1600";
@@ -634,7 +648,9 @@ Mkflipanime(path,folder):=(
kc();
);
Fhead=Fheadbkup;
+ Fillrestore(store); //181125
);
+////%Mkflipanime end////
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
index aa7eb97c1e9..e8d2d6fba0a 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
@@ -1,3 +1,29 @@
+// 201811230
+// Mkviewobj debugged ( Out=n )
+// CalcbyR changed ( for cat )
+// 201811225
+// Readcsv majorly changed ( readfile2str used )
+// 20181116
+// Startsurf changed ( case of 4 argments added )
+// 20181114
+// Execcmd debugged ( Changestye3d for sfcut,wire )
+// Sfbdparadata,... changed ("Color=.." copied to optionh if no color option )
+// 20181112
+// Sfcutparadatacdy added
+// Sfcutparadatacdy debugged (case of MeasureDepth==1)
+// 20181107
+// Cform debugged (integer => integer.0)
+// global StyleListC added ( to Sfbdparadata,... )
+// 20181106
+// Cform debugged (new version made)
+// ExeccmdC changed (subgraph added )
+// 20181105
+// Crvsfparadata changed ( multi surface supported )
+// 20181101
+// CalcbyC chanded (wflg retured)
+// ExeccmdC changed ( WritedataC added when necessary )
+// Contsurf added
+// ExeccmdC changed ( for Contsurf )
// 20181029
// in ReadOutData C callings, option=["Disp=n"] added
// 20181020
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
index 8f6a399f617..904f5dfd369 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibout(20181029 loaded");
+println("ketcindylibout(20181130 loaded");
//help:start();
@@ -48,6 +48,7 @@ WritetoS(fname,cmdL):=(
closefile(SCEOUTPUT);
);
+////%kcS start////
kcS(path,fname):=kcS(path,fname,[]);
kcS(path,fname,optionorg):=(
//help:kcS(PathS,"boxdata");
@@ -114,7 +115,11 @@ kcS(path,fname,optionorg):=(
closefile(SCEOUTPUT);
println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29, 0605
,
- SCEOUTPUT = openfile("kc.sh");
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
tmp=Dq+path+Dq+" -nwni -f "+filename;
@@ -127,6 +132,7 @@ kcS(path,fname,optionorg):=(
setdirectory(Dirwork);
);
);
+////%kcS end////
SetpathS():=(
regional(tmp,tmp1);
@@ -209,29 +215,29 @@ CalcbyS(name,path,cmd,optionorg):=(
wfile="";
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,2));
+ tmp1=Toupper(substring(#,0,1));
tmp2=substring(#,tmp,length(#));
- if(tmp1=="CA",
+ if(tmp1=="C",
cat=Toupper(substring(tmp2,0,1));// 16.11.24
options=remove(options,[#]);
);
- if(tmp1=="NC",
+ if(tmp1=="N",
ncoL=parse(tmp2);
options=remove(options,[#]);
);
- if(tmp1=="EX",
+ if(tmp1=="E",
if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2);
options=remove(options,[#]);
);
- if(tmp1=="WA",
+ if(tmp1=="W",
waiting=parse(tmp2);
options=remove(options,[#]);
);
- if(tmp1=="DI",
+ if(tmp1=="D",
dig=parse(tmp2);
options=remove(options,[#]);
);
- if(tmp1=="FI", // 16.06.26from
+ if(tmp1=="F", // 16.06.26from
wfile=tmp2;
options=remove(options,[#]);
); // 16.06.26until
@@ -442,9 +448,9 @@ Scifun(name,fun,argL,optionorg):=(
eqL=tmp_5;
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
+ tmp1=Toupper(substring(#,0,1)); //181111
tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
+ if(tmp1=="D" ,
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="F") % (tmp=="N"),
disp=0;
@@ -602,7 +608,11 @@ kcR(path,fname,optionorg):=(
closefile(SCEOUTPUT);
println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05
,
- SCEOUTPUT = openfile("kc.sh");
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
if(PathR=="",tmp="R",tmp=PathR);//16.10.20
@@ -730,6 +740,7 @@ MkprecommandR(prec,chstr):=(
cmdL;
);
+////%CalcbyR start////
CalcbyR(name,cmd):=CalcbyR(name,PathR,cmd,[]);
CalcbyR(name,Arg1,Arg2):=(
if(isstring(Arg1),
@@ -740,7 +751,7 @@ CalcbyR(name,Arg1,Arg2):=(
);
CalcbyR(name,path,cmd,optionorg):=(
//help:CalcbyR(name,cmd);
-//help:CalcbyR(options=["m/r","Wait=2","Out=yes","Pre=PVOFG","Res=" ]);
+//help:CalcbyR(options=["m/r","Wait=2","Out=y/n","Pre=PVOFG"]);
//help:CalcbyR(options2=["Pre=!G" ]);
regional(options,tmp,tmp1,tmp2,tmp3,realL,strL,eqL,
cat,dig,prestr,flg,wflg,file,nc,arg,cmdR,cmdlist,wfile,waiting);
@@ -750,7 +761,17 @@ CalcbyR(name,path,cmd,optionorg):=(
realL=tmp_6;
strL=tmp_7;
dig=5;
- cat="Y";
+ tmp=cmd_(length(cmd)-1); //181130from
+ if(indexof(tmp,"=")+indexof(tmp,"::")>0,
+ cat="Y";
+ ,
+ tmp=cmd_(length(cmd));
+ if(length(tmp)>0,
+ cat="Y";
+ ,
+ cat="N";
+ );
+ ); //181130to
wfile="";
prestr="PVOFG"; //180508
waiting=30; //180608
@@ -1056,6 +1077,7 @@ CalcbyR(name,path,cmd,optionorg):=(
);
);
);
+////%CalcbyR end////
Rfun(name,fun,argL):=Rfun(name,fun,argL,[]);//16.10.22
Rfun(name,fun,argL,optionorg):=(
@@ -1074,9 +1096,9 @@ Rfun(name,fun,argL,optionorg):=(
eqL=tmp_5;
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
+ tmp1=Toupper(substring(#,0,1)); //181111
tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
+ if(tmp1=="D",
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="F") % (tmp=="N"),
disp=0;
@@ -1099,6 +1121,7 @@ Rfun(name,fun,argL,optionorg):=(
parse(nm);
);
+////%Readcsv start////
Readcsv(file):=Readcsv(Dirwork,file,[]);
Readcsv(Arg1,Arg2):=(
if(isstring(Arg2),
@@ -1108,9 +1131,9 @@ Readcsv(Arg1,Arg2):=(
);
);
Readcsv(pathorg,file,optionorg):=(
-//help:Readcsv("ex.csv");
-//help:Readcsv(directory,"ex.csv");
-//help:Readcsv(options=["Head=yes","Sep=-999","Flat=no","Use=R"]);
+// help:Readcsv("ex.csv");
+// help:Readcsv(directory,"ex.csv");
+// help:Readcsv(options=["Head=yes","Sep=-999","Flat=no","Use=R"]);
regional(path,fname,fout,options,eqL,header,cmdL,sep,
dt,nrow,tmp,tmp1,tmp2,csv,use,flat);
options=optionorg;
@@ -1125,31 +1148,31 @@ Readcsv(pathorg,file,optionorg):=(
tmp=indexof(#,"=");
tmp1=substring(#,0,tmp-1);
tmp2=substring(#,tmp,length(#));
- tmp=Toupper(substring(tmp1,0,2));
- if(tmp=="HE",
+ tmp=Toupper(substring(tmp1,0,1)); //181111
+ if(tmp=="H",
tmp=Toupper(substring(tmp2,0,1));
if(tmp=="F" % tmp=="N",
header=0;
options=remove(options,[#]);
);
);
-// if(tmp=="WA", // removed:17.02.19
+// if(tmp=="W", // removed:17.02.19
// waiting=parse(tmp2);
// options=remove(options,[#]);
// );
- if(tmp=="SE",
+ if(tmp=="S",
sep=tmp2;
options=remove(options,[#]);
);
- if(tmp=="CS",
+ if(tmp=="C",
csv=Toupper(substring(tmp2,0,1));
options=remove(options,[#]);
);
- if(tmp=="US",
+ if(tmp=="U",
use=Toupper(substring(tmp2,0,1));
options=remove(options,[#]);
);
- if(tmp=="FL",
+ if(tmp=="F",
flat=Toupper(substring(tmp2,0,1));
options=remove(options,[#]);
);
@@ -1239,6 +1262,22 @@ Readcsv(pathorg,file,optionorg):=(
);
);
);
+// New readcsv (181125)
+Readcsv(file):=Readcsv(Dirwork,file);
+Readcsv(path,file):=(
+//help:Readcsv("ex.csv");
+//help:Readcsv(directory,"ex.csv");
+//help:Readcsv(options=["Head=yes","Sep=-999","Flat=no","Use=R"]);
+ regional(dt);
+ dt=readfile2str(path,file);
+ dt=tokenize(dt,"/LF/");
+ if(dt_(length(dt))=="",
+ dt=dt_(1..(length(dt)-1));
+ );
+ dt=apply(dt,tokenize(#,","));
+ dt;
+);
+////%Readcsv end////
Writecsv(nmL,data,file):=Writecsv(nmL,data,file,[]);
Writecsv(nmL,dataorg,file,optionorg):=(
@@ -1459,6 +1498,7 @@ PlotdataR(name1,path,func,variable,optionorg):=(
);
////%PlotdataR end////
+////%PlotdiscR start////
PlotdiscR(nm,fun,varrng):=PlotdiscR(nm,fun,varrng,[]);
PlotdiscR(nm,fun,varrng,options):=(
//help:PlotdiscR("1","dbinom(k,10,0.4)","k=[0,10]");
@@ -1489,7 +1529,9 @@ PlotdiscR(nm,fun,varrng,options):=(
Listplot(name,tmp,options);
);
);
+////%PlotdiscR end////
+////%Boxplot start////
Boxplot(nm,dataorg,ypos,dy):=Boxplot(nm,dataorg,ypos,dy,[]);
Boxplot(nm,dataorg,ypos,dy,optionorg):=(
//help:Boxplot("1",dt,2,1/2,[""]);
@@ -1648,7 +1690,9 @@ Boxplot(nm,dataorg,ypos,dy,optionorg):=(
[bp_(1..5),out];
);
);
+////%Boxplot end////
+////%Histplot start//
Histplot(nm,dataorg):=Histplot(nm,dataorg,[]);
Histplot(nm,dataorg,optionorg):=(
//help:Histplot("1",data(fillename));
@@ -1665,11 +1709,11 @@ Histplot(nm,dataorg,optionorg):=(
relative=0;
waiting=3;
forall(eqL,
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,length(#));
- if(Toupper(substring(#,0,1))=="B",
- if(substring(tmp1,0,1)=="[",
- tmp1="c("+substring(tmp1,1,length(tmp1)-1)+")";
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="B",
+ if(substring(tmp_2,0,1)=="[",
+ tmp1="c("+substring(tmp_2,1,length(tmp_2)-1)+")"; //181104
);
breaks="breaks="+tmp1;
options=remove(options,[#]);
@@ -1827,6 +1871,7 @@ Histplot(nm,dataorg,optionorg):=(
[bdata,cdata];
);
);
+////%Histplot end//
////%Scatterplot start////
Scatterplot(nm,file):=Scatterplot(nm,file,[],[]);
@@ -2338,6 +2383,7 @@ WritetoA(fname,cmdL):=(
closefile(SCEOUTPUT);
);
+////%kcA start////
kcA(fname):=kcA(fname,[]);
kcA(fname,optionorg):=(
//help:kcA("boxdata");
@@ -2407,7 +2453,11 @@ kcA(fname,optionorg):=(
tmp=replace(filename,".rr",".txt");
println(kc(Dirwork+Batparent,Dirlib,tmp)); // 16.05.29,06.05
,
- SCEOUTPUT = openfile("kc.sh");
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
tmp="rm "+replace(filename,".rr",".txt");
@@ -2424,7 +2474,9 @@ kcA(fname,optionorg):=(
setdirectory(Dirwork);
);
);
+////%kcA end////
+////%CalcbyA start////
CalcbyA(name,cmd):=CalcbyA(name,cmd,[]);
CalcbyA(name,cmd,optionorg):=(
//help:CalcbyA("a",cmd);
@@ -2611,6 +2663,7 @@ CalcbyA(name,cmd,optionorg):=(
println(" CalcbyA succeeded "+name+" ("+text(tmp2)+" sec)");
);
);
+////%CalcbyA end////
AsfunO(name,fun,argL):=AsirfunO(name,fun,argL); // 16.02.03
AsfunO(name,fun,argL,options):=AsirfunO(name,fun,argL,options);
@@ -2625,9 +2678,9 @@ AsirfunO(name,fun,argLorg,options):=(
argL=argLorg;
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
+ tmp1=Toupper(substring(#,0,1));
tmp2=substring(#,tmp,length(#));
- if(tmp1=="PRO", // 16.05.26from
+ if(tmp1=="P", // 16.05.26from
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="T") % (tmp=="Y"),
tmp1=argL_(length(argL));
@@ -2654,13 +2707,13 @@ Asirfun(name,fun,argL,optionorg):=(
eqL=tmp_5;
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
+ tmp1=Toupper(substring(#,0,1)); //181111
tmp2=substring(#,tmp,length(#));
- if(tmp1=="PRE",
+ if(tmp1=="P",
precise=parse(tmp2);
options=remove(options,[#]);
);
- if((tmp1=="DIS") % (tmp1=="DSP"),
+ if(tmp1=="D",
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="F") % (tmp=="N"),
disp=0;
@@ -2772,6 +2825,7 @@ WritetoM(fname,cmdL,allflg):=(
closefile(SCEOUTPUT);
);
+////%kcM start////
kcM(fname):=kcM(fname,[]);
kcM(fname,optionorg):=(
//help:kcM("boxdata");
@@ -2852,7 +2906,11 @@ kcM(fname,optionorg):=(
tmp=replace(filename,".max",".txt");
println(kc(Dirwork+Batparent,Mackc+Dirlib,tmp));// 16.05.29,06.05
,
- SCEOUTPUT = openfile("kc.sh");
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
tmp="rm "+replace(filename,".max",".txt");
@@ -2868,7 +2926,9 @@ kcM(fname,optionorg):=(
setdirectory(Dirwork);
);
);
+////%kcM end////
+////%CalcbyM start////
CalcbyM(name,cmd):=CalcbyM(name,cmd,[]);
CalcbyM(name,cmd,optionorg):=(
//help:CalcbyM("a",cmdL);
@@ -3127,7 +3187,9 @@ CalcbyM(name,cmd,optionorg):=(
);
);
);
+////%CalcbyM end////
+////%Mxfun start////
Mxfun(name,fun,argL):=Mxfun(name,fun,argL,[]);
Mxfun(name,fun,argL,optionorg):=(
//help:Mxfun("ca1","diff",["sin(x)^3","x"],[""]);
@@ -3144,13 +3206,13 @@ Mxfun(name,fun,argL,optionorg):=(
eqL=tmp_5;
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
+ tmp1=Toupper(substring(#,0,1));
tmp2=substring(#,tmp,length(#));
- if(tmp1=="PRE",
+ if(tmp1=="P",
precise=parse(tmp2);
options=remove(options,[#]);
);
- if((tmp1=="DIS") % (tmp1=="DSP") ,
+ if(tmp1=="DIS" ,
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="F") % (tmp=="N"),
disp=0;
@@ -3195,7 +3257,9 @@ Mxfun(name,fun,argL,optionorg):=(
);
parse(nm);
);
+////%Mxfun end////
+////%Mxtex start////
Mxtex(nm,ex):=Mxtex(nm,ex,[]);
Mxtex(nm,ex,optionorg):=(
//help:Mxtex("1","sin(x)/x");
@@ -3210,9 +3274,9 @@ Mxtex(nm,ex,optionorg):=(
set=[];
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
+ tmp1=Toupper(substring(#,0,1));
tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
+ if(tmp1=="D" ,
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="F") % (tmp=="N"),
disp=0;
@@ -3257,7 +3321,9 @@ Mxtex(nm,ex,optionorg):=(
parse(tmp);
out;
);
+////%Mxtex end////
+////%MxtexL start////
MxtexL(nm,exlist):=MxtexL(nm,exlist,[]); // 16.05.27
MxtexL(nm,exlist,options):=(
regional(out,tmp,tmp1);
@@ -3287,7 +3353,9 @@ Mxbatch(file):=(
);
out;
);
+////%MxtexL end////
+////%Mxload start////
Mxload(file):=( //17.06.16
//help:Mxload(["rkfun.lispp"]);
regional(figL,out,path,tmp,tmp1,tmp2);
@@ -3302,7 +3370,9 @@ Mxload(file):=( //17.06.16
);
out;
);
+////%Mxload end////
+////%Maxima2Cindydata start////
Maxima2Cindydata(str):=( //17.10.24
regional(out,numstr,eL,nn,ne,flg,tmp);
numstr="-0123456789";
@@ -3333,7 +3403,9 @@ Maxima2Cindydata(str):=( //17.10.24
);
parse(out);
);
+////%Maxima2Cindydata end////
+////%kcV3 start////
kcV3(fname):=kcV3(Dirwork,fname);
kcV3(path,fname):=(
//help:kcV3(path,"ex.obj");
@@ -3363,7 +3435,11 @@ kcV3(path,fname):=(
closefile(SCEOUTPUT);
println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05
,
- SCEOUTPUT = openfile("kc.sh");
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
tmp=Dq+PathV3+Dq+" "+tmp1+filename;
@@ -3379,6 +3455,7 @@ kcV3(path,fname):=(
);
);
+////%Changeobjscale start////
Changeobjscale(fname):=(
regional(fout);
fout=replace(fname,".obj","");
@@ -3478,7 +3555,9 @@ Changeobjscale(unitlen,fnameorg,foutorg,optionorg):=(
CalcbyR("cs",cmdL,options);
println("Scale of "+fname+" changed");
);
+////%Changeobjscale end////
+////%Mkviewobj start////
Mkviewobj(fname,cmdL):=Mkviewobj(Dirwork,fname,cmdL,[]);
Mkviewobj(Arg1,Arg2,Arg3):=(
if(!isstring(OCNAME), //17.04.13from
@@ -3496,9 +3575,10 @@ Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=(
//help:Mkviewobj(fname,cmdlist);
//help:Mkviewobj(fname,[]);
//help:Mkviewobj(path,fname,cmdlist);
-//help:Mkviewobj(options=["M/R","V","Unit=in","Wait=5"]);
+//help:Mkviewobj(options=["M/R","V","Unit=in","Wait=(10)"]);
regional(path,cmdL,eqL,strL,flg,fname,options,make,view,cmdlist,
- vtx,face,unit,tmp,tmp1,tmp2);
+ vtx,face,unit,tmp,tmp1,tmp2,store);
+ store=Fillblack(); //181128
path=replace(pathorg,"\","/");
if(substring(path,length(path)-1,length(path))!="/",path=path+"/");
fname=fnameorg;
@@ -3569,13 +3649,12 @@ Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=(
cmdlist=MkprecommandR();
cmdlist=concat(cmdlist,["Openobj",[Dq+path+fname+Dq]]);
cmdlist=concat(cmdlist,cmdL);
- tmp=["Closeobj()",[],""+Dq+"||||"+Dq,[]];//16.12.26
+ tmp=["Closeobj()",[]];//181130
cmdlist=concat(cmdlist,tmp);
- tmp=append(options,"Cat=y");
- tmp1=apply(tmp,Toupper(substring(#,0,1))); // 16.04.23from
+ tmp1=apply(options,Toupper(substring(#,0,1))); // 16.04.23from
tmp1=select(tmp1,#=="W");
if(length(tmp1)==0,
- tmp=append(tmp,"Wait=5");
+ tmp=append(tmp,"Wait=10");
);// 16.04.23to
CalcbyR("",cmdlist,tmp); //180902
wait(WaitUnit*100); // 16.03.18
@@ -3617,8 +3696,11 @@ Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=(
ViewFile=fname;
); // 16.03.14 until
);
+ Fillrestore(store); //181128
);
+////%Mkviewobj end////
+////%Setobj start////
//Objname(str):=Objname(str,["m","v"]); //180906from
//Objname(str,options):=Setobj(str,options);
Setobj():=Setobj(Fhead,["m","v"]); //180901
@@ -3646,7 +3728,9 @@ Setobj(str,optionsorg):=( //180906to
); //17.12.23until
println("generate OBJCMD. name="+OCNAME+", option="+OCOPTION);
);
+////%Setobj end////
+////%Mkobjcmd start////
Mkobjcmd(nm,fd):=Mkobjcmd(nm,fd,[40,40,"+"]);
Mkobjcmd(nm,fd,options):=(
//help:Mkobjcmd("1",fd,[40,40,"+"]);
@@ -3698,7 +3782,9 @@ Mkobjcmd(nm,fd,options):=(
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
);
+////%Mkobjcmd end////
+////%Mkobjnrm start////
Mkobjnrm(nm,fd):=Mkobjnrm(nm,fd,[]);
Mkobjnrm(nm,fd,optionorg):=(
//help:Mkobjnrm("1",fd1,["Disp=y"]);
@@ -3792,7 +3878,9 @@ Mkobjnrm(nm,fd,optionorg):=(
); // 16.05.02until
out;
);
+////%Mkobjnrm end////
+////%Mkobjthickcmd start////
Mkobjthickcmd(nm,fd):=Mkobjthickcmd(nm,fd,"",[40,40,"+"]);
Mkobjthickcmd(nm,fd,Arg):=(
if(islist(Arg),
@@ -3898,7 +3986,10 @@ Mkobjthickcmd(nm,fd,fnrm,optionorg):=(
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
);
+////%Mkobjthickcmd end////
+
+////%Mkobjpolycmd start////
Mkobjpolycmd(nm,pd):=Mkobjpolycmd(nm,pd,[]);
Mkobjpolycmd(nm,pd,optionorg):=(
//help:Mkobjpolycmd("1",pd);
@@ -3968,7 +4059,9 @@ Mkobjpolycmd(nm,pd,optionorg):=(
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
);
+////%Mkobjpolycmd end////
+////%Mkobjplatecmd start////
Mkobjplatecmd(nm,pd):=Mkobjplatecmd(nm,pd,[]);
Mkobjplatecmd(nm,pdorg,optionorg):=( // 16.06.18
//help:Mkobjplatecmd("1",pd);
@@ -4045,7 +4138,9 @@ Mkobjplatecmd(nm,pdorg,optionorg):=( // 16.06.18
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
);
+////%Mkobjplatecmd end////
+////%Mkobjcrvcmd start////
Mkobjcrvcmd(nm,pst):=Mkobjcrvcmd(nm,pst,[]);
Mkobjcrvcmd(nm,pstorg,options):=(
//help:Mkobjcrvcmd("1","sc3d1",[0.02,6,"xy"]);
@@ -4117,7 +4212,9 @@ Mkobjcrvcmd(nm,pstorg,options):=(
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
);
+////%Mkobjcrvcmd end////
+////%Mkobjsymbcmd start////
Mkobjsymbcmd(symb,size,rot,dir,pos):=
Mkobjsymbcmd("",symb,size,rot,dir,pos,[]);
Mkobjsymbcmd(Ar1,Ar2,Ar3,Ar4,Ar5,Ar6):=(
@@ -4246,7 +4343,9 @@ Mkobjsymbcmd(path,symborg,size,rot,dir,pos,optionorg):=(
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
);
+////%Mkobjsymbcmd end////
+////%Concatcmd start////
Concatcmd(cmdlist):=(
//help:Concatcmd([cmdL1,cmdL2]);
regional(out);
@@ -4256,6 +4355,7 @@ Concatcmd(cmdlist):=(
);
out;
);
+////%Concatcmd end////
WritetoF(fname,cmdL):=(
// help:WritetoF("outdata",cmdL);
@@ -4353,7 +4453,12 @@ kcF(fname,optionorg):=(
println(SCEOUTPUT,tmp);
println(SCEOUTPUT,"exit 0");
closefile(SCEOUTPUT);
- SCEOUTPUT = openfile("kc.sh");
+ ,
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
Lf=unicode("10",base->10);
print(SCEOUTPUT,"#!/bin/sh"+Lf);
tmp1=replace(Dirwork,"\","/");
@@ -4373,7 +4478,11 @@ kcF(fname,optionorg):=(
closefile(SCEOUTPUT);
println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05
,
- SCEOUTPUT = openfile("kc.sh");
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
tmp=Dq+PathF+Dq+" -nox -eval "+Dq+")read "+filename+Dq;
@@ -4586,9 +4695,9 @@ Frifun(name,fun,argL,optionorg):=(
eqL=tmp_5;
forall(eqL,
tmp=indexof(#,"=");
- tmp1=Toupper(substring(#,0,3));
+ tmp1=Toupper(substring(#,0,1));
tmp2=substring(#,tmp,length(#));
- if((tmp1=="DIS") % (tmp1=="DSP") ,
+ if(tmp1=="D" ,
tmp=Toupper(substring(tmp2,0,1));
if((tmp=="F") % (tmp=="N"),
disp=0;
@@ -4745,13 +4854,14 @@ Mkketcindyjs(libname,options):=( //17.11.18
///////////////// C function //////////////////
-Cform(strorg):=(
+Cformold(strorg):=(
//help:Cform(str);
- regional(str,ter,out,hat,ns,ne,nn,jj,flg,
+ regional(str,ter,out,hat,pare,ns,ne,nn,jj,flg,flg2,
lv,str1,str2,tmp,tmp1,tmp2);
ter=["+","-","*","/","(",")","="]; //180517
str=replace(strorg,"pi","M_PI");
hat=Indexall(str,"^");
+ pare=Bracket(str,"()");
out="";
ns=0;
forall(hat,nn,
@@ -4841,6 +4951,104 @@ Cform(strorg):=(
out;
);
+////%Cform start////
+Cform(strorg):=( //181106
+//help:Cform(str);
+ regional(str,str2,out,ter,num,hat,pare,jj,ns,ne,nsa,nea,flg,flg2,tmp,tmp1,tmp2);
+ ter=["+","-","*","/","(",")","="]; //180517
+ str=replace(strorg,"pi","M_PI");
+ num=apply(0..9,text(#)); //181107from
+ num=append(num,".");
+ flg=0;
+ tmp1=str+"/";
+ tmp2="";
+ str="";
+ forall(1..(length(tmp1)),
+ tmp=substring(tmp1,#-1,#);
+ if(contains(num,tmp),
+ if(flg==0,
+ tmp2=tmp;
+ flg=1;
+ ,
+ tmp2=tmp2+tmp;
+ );
+ ,
+ if(flg==1,
+ if(indexof(tmp2,".")==0, tmp2=tmp2+".0");
+ str=str+tmp2+tmp;
+ flg=0;
+ ,
+ str=str+tmp;
+ );
+ );
+ );
+ str=substring(str,0,length(str)-1); //181107to
+ out="";
+ flg=0;
+ forall(1..100,jj,
+ if(flg==0,
+ hat=indexof(str,"^");
+ if(hat==0,
+ out=out+str;
+ flg=1;
+ ,
+ ne=hat-1;
+ if(substring(str,ne-1,ne)==")",
+ ne=ne-1;
+ pare=Bracket(str,"()");
+ tmp=select(pare,#_1==hat-1);
+ tmp=tmp_1_2;
+ tmp1=select(pare,(#_1<hat)&(#_2==-tmp));
+ ns=tmp1_(length(tmp1))_1+1;
+ nsa=ns-1;
+ ,
+ flg2=0;
+ forall(reverse(1..ne),
+ if(flg2==0,
+ if(contains(ter,substring(str,#-1,#)),
+ ns=#+1;
+ flg2=1;
+ );
+ );
+ );
+ if(flg2==0,ns=1);
+ nsa=ns;
+ );
+ str2="pow("+substring(str,ns-1,ne)+",";
+ ns=hat;
+ if(substring(str,ns,ns+1)=="(",
+ ns=ns+2;
+ pare=Bracket(str,"()");
+ tmp=select(pare,#_1==hat+1);
+ tmp=tmp_1_2;
+ tmp1=select(pare,(#_1>hat)&(#_2==-tmp));
+ ne=tmp1_1_1-1;
+ nea=ne+1;
+ ,
+ ns=ns+1;
+ flg2=0;
+ forall(ns..(length(str)),
+ if(flg2==0,
+ if(contains(ter,substring(str,#-1,#)),
+ ne=#-1;
+ flg2=1;
+ );
+ );
+ );
+ if(flg2==0,ne=length(str));
+ nea=ne;
+ );
+ str2=str2+substring(str,ns-1,ne)+")";
+ out=out+substring(str,0,nsa-1)+str2;
+ str=substring(str,nea,length(str));
+ );
+ );
+ );
+ out;
+);
+////%Cform end////
+
+////%ConvertFdtoC start////
ConvertFdtoC(Fd):=ConvertFdtoC(Fd,["x","y","z"]);
ConvertFdtoC(Fd,name):=(
//help:ConvertFd(Fd);
@@ -4857,9 +5065,12 @@ ConvertFdtoC(Fd,name):=(
FdC=concat(FdC,[Cform(tmp1_4),Cform(tmp1_5)]);
FdC=concat(FdC,[tmp1_6]);
);
+////%ConvertFdtoC end////
+////%Startsurf start////
Startsurf():=StartsurfC();
Startsurf(Arg):=StartsurfC(Arg);
+Startsurf(Nplist,Dsizelist,Epslist):=StartsurfC("",Nplist,Dsizelist,Epslist); //181116
Startsurf(restr,Nplist,Dsizelist,Epslist):=StartsurfC(restr,Nplist,Dsizelist,Epslist);
StartsurfC():=StartsurfC("",[50,50],[1500,500,200],[0.01,0.1]);//180611renewed
StartsurfC(Arg):=(
@@ -4886,6 +5097,7 @@ StartsurfC(restr,Nplist,Dsizelist,Epslist):=(//180501
//help:Startsurf([50,50],[1500,500,200],[0.01,0.1]);
//help:Startsurf([50],[1500,500],[0.01,0.1]);
regional(divL,sizeL,epsL);
+ StyleListC=[]; //181107
CommandListC=[];//180608(2lines)
FuncListC=[];
if(substring(restr,0,1)=="R", //180611(3lines)
@@ -4903,511 +5115,24 @@ StartsurfC(restr,Nplist,Dsizelist,Epslist):=(//180501
epsL=prepend(0.00001,epsL);
ConstantListC=[divL,sizeL,epsL];
);
+////%Startsurf end////
-Cheader():=Cheader(FdC,FheadC+"header.h");
-Cheader(fdc,fname):=(
- regional(tmp,tmp1,tmp2,j, dW,dE,dS,dN,dstr,
- DsizeLL,DsizeL,DsizeM,DsizeS,Eps,Eps1,Eps2,Eps3);
- Mdv=50; Ndv=50;
- DsizeLL=15000; DsizeL=1500; DsizeM=500; DsizeS=200;
- Eps=0.00001; Eps1=0.05; Eps2=0.2; Eps3=1;
- SCEOUTPUT = openfile(fname);
- tmp=indexof(fdc_2,"=");
- tmp1=substring(fdc_2,tmp,length(fdc_2));
- tmp1=replace(tmp1,"[","{");
- tmp1=replace(tmp1,"]","}");
- tmp=indexof(fdc_3,"=");
- tmp2=substring(fdc_3,tmp,length(fdc_3));
- tmp2=replace(tmp2,"[","{");
- tmp2=replace(tmp2,"]","}");
- tmp="const double Urng[2]="+tmp1+", Vrng[2]="+tmp2;
- println(SCEOUTPUT,tmp+";");
- tmp="const double XMIN="+Sprintf(XMIN,6);
- tmp=tmp+",XMAX="+Sprintf(XMAX,6);
- println(SCEOUTPUT,tmp+";");
- tmp="const double THETA="+Sprintf(THETA,6);
- tmp=tmp+",PHI="+Sprintf(PHI,6);
- println(SCEOUTPUT,tmp+";");
- tmp=" //THETA:"+Sprintf(THETA*180/pi,2);
- tmp=tmp+", PHI:"+Sprintf(PHI*180/pi,2);
- println(SCEOUTPUT,tmp+";");
- dstr=fdc_4;
- if(indexof(dstr,"w")>0,dW=1,dW=0);
- if(indexof(dstr,"e")>0,dE=1,dE=0);
- if(indexof(dstr,"s")>0,dS=1,dS=0);
- if(indexof(dstr,"n")>0,dN=1,dN=0);
- tmp="const int DrawW="+text(dW)+", DrawE="+text(dE);
- tmp=tmp+", DrawS="+text(dS)+", DrawN="+text(dN);
- println(SCEOUTPUT,tmp+";");
- forall(j=5..(length(fdc)),
- tmp=fdc_#; //17.05.21from
- if(length(tmp)==2,
- if(tmp_1>1, //17.05.24from
- Mdv=tmp_1; Ndv=tmp_2;
- ,
- if(length(tmp_1)>0, Eps1=tmp_1);
- if(length(tmp_1)>0, Eps2=tmp_2);
- ); //17.05.24until
- );
- if(length(tmp)==3,
- if(length(tmp_1)>0, DsizeLL=tmp_1);//17.06.09(3lines)
- if(length(tmp_2)>0, DsizeL=tmp_2);
- if(length(tmp_3)>0, DsizeM=tmp_3);
- );
- if(length(tmp)==4,
- if(min(tmp)<1,
- if(length(tmp_1)>0, Eps=tmp_1);
- if(length(tmp_2)>0, Eps1=tmp_2);
- if(length(tmp_3)>0, Eps2=tmp_3);
- if(length(tmp_4)>0, Eps3=tmp_4);
- ,
- if(length(tmp_1)>0, DsizeLL=tmp_1);
- if(length(tmp_2)>0, DsizeL=tmp_2);
- if(length(tmp_3)>0, DsizeM=tmp_3);
- if(length(tmp_4)>0, DsizeS=tmp_4);
- )
- );//17.05.21until
- );
- tmp1=text(fdc_5_1);
- tmp2=text(fdc_5_2);
- tmp="const int Mdv="+text(Mdv)+", Ndv="+text(Ndv);
- println(SCEOUTPUT,tmp+";");
- tmp="#define DsizeLL "+text(DsizeLL);//17.05.21
- println(SCEOUTPUT,tmp);
- tmp="#define DsizeL "+text(DsizeL);
- println(SCEOUTPUT,tmp);
- tmp="#define DsizeM "+text(DsizeM);
- println(SCEOUTPUT,tmp);
- tmp="#define DsizeS "+text(DsizeS);
- println(SCEOUTPUT,tmp);
- tmp="const double Eps="+format(Eps,7);
- tmp=tmp+", Eps1="+format(Eps1,7);
- tmp=tmp+", Eps2="+format(Eps2,7);
- tmp=tmp+", Eps3= "+format(Eps3,7);
- println(SCEOUTPUT,tmp+";");
- tmp="void surffun(double u, double v, double pt[3]){";
- println(SCEOUTPUT,tmp);
- forall(fdc_1,
- tmp1=replace(#,"x=","pt[0]=");
- tmp1=replace(tmp1,"y=","pt[1]=");
- tmp1=replace(tmp1,"z=","pt[2]=");
- println(SCEOUTPUT," "+tmp1+";");
- );
- println(SCEOUTPUT,"}");
- closefile(SCEOUTPUT);
-);
-
-Cmain():=Cmain(FheadC+".c",MainC);
-Cmain(fname,cmdLorg):=(
-//help:MainC(writesfbd("sfbd");)
-//help:MainC(writeax("ax");)
-//help:MainC(writewire("wire" (,2), [10,10]);)
-//help:MainC(writewire("wire", [[0.5,1],[0,1,2]]]);)
-//help:MainC(writecut("sfcut","x+y+2*z-4");)
-//help:MainC(writesc("sl3d1");)
-//help:MainC(skeleton("sk",[objlist],[pltlist] (,width));)
-//help:MainC(writewire ptincrease (=2) are optional);)
- regional(cmdL, tmp,tmp1,tmp2,tmp3,tmp4,nL, nn,kk,jj, num, en,cmd,
- ax1,ax2,ax3,path, var,varh,file,fileh, flg, cutctr);
- path=Dirwork+"/"; //17.05.29from
- path=replace(path,"\","/");
- cmdL=cmdLorg;// 17.05.26from
- nL=select(1..(length(cmdL)),cmdL_#=="writeax");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- tmp=tmp2_1; // 17.06.08(5lines)
- if(substring(tmp,length(tmp)-2,length(tmp))!="3d",
- tmp=tmp+"3d";
- );
- tmp1=parse(tmp);
- tmp="axx="+textformat(tmp1_1,5);
- parse(tmp);
- tmp="axy="+textformat(tmp1_2,5);
- parse(tmp);
- tmp="axz="+textformat(tmp1_3,5);
- parse(tmp);
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[], //17.06.07(2lines)
- "double axx[3][3], axy[3][3], axz[3][3];",[],
- "spaceline",["axx"],
- "spaceline",["axy"],
- "spaceline",["axz"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3(2,1,2,axx,"+tmp2_1+");",[],
- "appendd3(2,1,2,axy,"+tmp2_1+");",[],
- "appendd3(2,1,2,axz,"+tmp2_1+");",[],
- "writecrv",[tmp2_1,tmp2_2] //17.06.07
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writesc");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,
- tmp2=[tmp2_1,"Surf"];
- );
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[], //17.06.07(2lines)
- "double "+tmp2_1+"h[DsizeL][3];",[],
- "spaceline",[tmp2_1],
- "writecrv",[tmp2_1,tmp2_2] //17.06.07
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writesfbd");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq;
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- fileh=Dq+path+FheadC+tmp2_1+"h.txt"+Dq;
- tmp="Borderhiddendata";
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[], //17.06.09(6lines)
- "sfbdparadata",[tmp2_1],
- "output3h",["w",var, varh,file,tmp2_1],
- "dataindexd3",[3,tmp2_1,"din"],
- tmp2_2+"[0][0]=0;",[],
- "appendd3",[2,"din[1][0]","din[1][1]",tmp2_1,tmp2_2]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writecrv");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq;
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[
- "crvsfparadata",[tmp2_1,tmp2_2,1,"Crvdata"],
- tmp2_1+"[0][0]=0;",[], //17.06.09(3lines)
- "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1],
- "output3h",["w",var, varh, file,tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writescrvonsf");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==1,tmp2=append(tmp2,"Surf"));
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09(8lines)
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeL][3];",[],
- " crv3onsfparadata",[tmp2_1,tmp2_2,1,"Crvdata"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1],
- "output3h",["w",var,varh, file ,tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writecut");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- cutctr=0;
- forall(1..(length(nL)),
- cutctr=#;
- tmp2=cmdL_(nL_#+1);
- if(length(tmp2)==2,
- tmp2=[tmp2_1,"Surf",tmp2_2];
- );
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09(10lines)
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[
- "cutfun",[tmp2_3],
- "double "+tmp2_1+"[DsizeL][3];",[],
- "sfcutdata",[text(cutctr),"out"], //17.06.02
- "crv3onsfparadata",["out",tmp2_2,"Crvdata"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1],
- "output3h",["w",var, varh, file, tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );
- nL=select(1..(length(cmdL)),cmdL_#=="writewire");
- cmd=[];
- if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]);
- forall(1..(length(nL)),
- tmp2=cmdL_(nL_#+1);
- if(!isstring(tmp2_2),
- tmp2=[tmp2_1,"Surf",tmp2_2,tmp2_3];
- );
- var=Dq+tmp2_1+"3d"+Dq;
- varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp4=tmp2_(length(tmp2)); num=2;
- if(!islist(tmp4),
- num=tmp4; tmp4=tmp2_(length(tmp2)-1);
- );
- if(!islist(tmp4_1),
- tmp3=concat(tmp3,[
- "double udv[2]={-1,"+text(tmp4_1)+"};",[]
- ]);
- ,
- len=length(tmp4_1);
- tmp="double udv["+text(len+1)+"]={"+text(len)+",";
- forall(tmp4_1,
- tmp=tmp+format(#,5)+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"};";
- tmp3=concat(tmp3,[tmp,[]]);
- );
- if(!islist(tmp4_2),
- tmp3=concat(tmp3,[
- "double vdv[2]={-1,"+text(tmp4_2)+"};",[]
- ]);
- ,
- len=length(tmp4_2);
- tmp="double vdv["+text(len+1)+"]={"+text(len)+",";
- forall(tmp4_2,
- tmp=tmp+format(#,5)+",";
- );
- tmp=substring(tmp,0,length(tmp)-1)+"};";
- tmp3=concat(tmp3,[tmp,[]]);
- );
- tmp3=concat(tmp3,[
- "double "+tmp2_1+"[DsizeLL][3];",[], //17.06.09(5lines)
- "wireparadata",["Surf", "udv","vdv", num, "Wiredata"],
- tmp2_1+"[0][0]=0;",[],
- "appendd3",[0,1,"length3(Wiredata)","Wiredata",tmp2_1],
- "output3h",["w",var, varh, file, tmp2_1]
- ]);
- cmd=concat(cmd,tmp3);
- if(#<length(nL),
- tmp3=cmdL_((nL_#+2)..(tmp_(#+1)-1));
- ,
- tmp3=cmdL_((nL_#+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );
- );// 17.05.29until
- nL=select(1..(length(cmdL)),cmdL_#=="skeleton");// 17.06.05from
- cmd=[];
- if(length(nL)>0,
- tmp3=cmdL_(1..(nL_1-1));
- tmp3=concat(tmp3,["double sk[DsizeLL][3];",[]]);//17.06.13
- ,
- tmp3=[];
- );
- forall(1..(length(nL)),nn,
- tmp2=cmdL_(nL_nn+1);
- var=Dq+tmp2_1+"3d"+Dq;
- file=Dq+path+FheadC+tmp2_1+".txt"+Dq;
- tmp3=concat(tmp3,[ //17.06.08from
- "data[0][0]=0;",[]
- ]);
- forall(tmp2_2,
- if(substring(#,length(#)-1,length(#))!="h",
- tmp1=#;
- tmp=[0,"din[1][0]","din[1][1]",tmp1,"data"];
- ,
- tmp1=substring(#,0,length(#)-1);
- tmp=[0,"din[2][0]","din[2][1]",tmp1,"data"];
- );
- tmp3=concat(tmp3,[
- "dataindexd3",[3,tmp1,"din"],
- "appendd3",tmp
- ]);
- );
- forall(1..(length(tmp2_3)),
- if(substring(tmp2_3_#,length(tmp2_3_#)-1,length(tmp2_3_#))!="h",
- tmp1=tmp2_3_#;
- tmp=[0,"din[1][0]","din[1][1]",tmp1,"data"];
- ,
- tmp1=substring(tmp2_3_#,0,length(tmp2_3_#)-1);
- tmp=[0,"din[2][0]","din[2][1]",tmp1,"data"];
- );
- tmp3=concat(tmp3,[
- "push3",["Inf",3,0,"data"],
- "dataindexd3",[3,tmp1,"din"],
- "appendd3",tmp
- ]);
- );
- if(length(tmp2)<=3,tmp=1,tmp=tmp2_4);
- tmp3=concat(tmp3,[
- "skeletondata3",["data", tmp, "Eps1","Eps2","sk"],//17.06.13
- "output3",["w",var, file, 2, "sk"]
- ]);
- cmd=concat(cmd,tmp3);
- if(nn<length(nL),
- tmp3=cmdL_((nL_nn+2)..(nL_(nn+1)-1));
- ,
- tmp3=cmdL_((nL_nn+2)..(length(cmdL)));
- cmdL=concat(cmd,tmp3);
- );//17.06.08until
- );// 17.06.05until
- path=DirlibC+"/";
- path=replace(path,"\","/");
- cmd=[
- "#include <stdio.h>", "#include <math.h>",
- "#include "+Dq+FheadC+"header.h"+Dq,
- "#include "+Dq+path+"ketcommon.h"+Dq,
- "#include "+Dq+path+"surflibhead.h"+Dq,
- "#include "+Dq+path+"surflib.h"+Dq,
- "int main(void){",
- " double out[DsizeL][3], data[DsizeLL][3];", //17.06.10
- " int i, j, nall, din[DsizeS][2];" //17.06.09
- ];
-// tmp=select(cmdL,#=="cutfun");
-// if(length(tmp)==0,
- if(cutctr==0, //17.06.02
- cmdL=prepend(["1"],cmdL);
- cmdL=prepend("cutfun",cmdL);
- );// 17.05.26until
- cutctr=0;
- forall(1..(floor(length(cmdL))/2),nn,
- tmp1=cmdL_(2*nn-1); tmp2=cmdL_(2*nn);
- flg=0; // 17.05.26from
- if(tmp1=="cutfun",
- cutctr=cutctr+1;
- tmp=select(1..(length(cmd)), indexof(cmd_#,"main")>0);
- tmp3=cmd_((tmp_1)..(length(cmd)));
- cmd=cmd_(1..(tmp_1-1));
- cmd=append(cmd,"double cutfun"+text(cutctr)+"(double u, double v){");
- cmd=append(cmd," double p[3],val;");
- cmd=append(cmd," surffun(u,v,p);");
- tmp=" val="+assign(tmp2_1,["x","p[0]","y","p[1]","z","p[2]"])+";";
- cmd=concat(cmd, [tmp," return val;", "}"]);
- cmd=concat(cmd, tmp3);
- flg=1;
- );
- if(tmp1=="xyzax3data",
- tmp=" "+tmp1+"(";
- tmp=tmp+textformat(tmp2_1_1_1_1,5)+",";
- tmp=tmp+textformat(tmp2_1_1_2_1,5)+",";
- tmp=tmp+textformat(tmp2_1_2_1_2,5)+",";
- tmp=tmp+textformat(tmp2_1_2_2_2,5)+",";
- tmp=tmp+textformat(tmp2_1_3_1_3,5)+",";
- tmp=tmp+textformat(tmp2_1_3_2_3,5)+",";
- tmp=tmp+tmp2_2+");";
- cmd=append(cmd,tmp);
- flg=1;
- );
- if(tmp1=="spaceline",
- if(!isstring(tmp2_1),
- println(tmp2_1+" should be assgined as a string");
- ,
- tmp3=parse(tmp2_1);
- tmp=text(length(tmp3)+1);
-// cmd=append(cmd, " double "+tmp2_1+"["+tmp+"][3];");
- tmp=text(length(tmp3));
- cmd=append(cmd, " "+tmp2_1+"[0][0]="+tmp+";");
- forall(1..(length(tmp3)),
- tmp=" "+tmp2_1+"["+text(#)+"][0]="+textformat(tmp3_#_1,5)+",";
- tmp=tmp+tmp2_1+"["+text(#)+"][1]="+textformat(tmp3_#_2,5)+",";
- tmp=tmp+tmp2_1+"["+text(#)+"][2]="+textformat(tmp3_#_3,5)+";";
- cmd=append(cmd,tmp);
- );
- );
- flg=1;
- );
- if(flg==0,
- tmp=" "+tmp1;
- if(length(tmp2)>0,
- tmp=tmp+"(";
- forall(1..length(tmp2),kk,
- if(isstring(tmp2_kk),
- if((kk==1)&(substring(tmp1,0,5)=="write"),
- file=path+FheadC+tmp2_kk+".txt";
- fileh=path+FheadC+tmp2_kk+"h.txt";
- tmp=tmp+Dq+tmp2_kk+Dq+","+Dq+file+Dq+","+Dq+fileh+Dq;
- ,
- tmp=tmp+tmp2_kk;
- );
- ,
- if(!islist(tmp2_kk),
- tmp=tmp+textformat(tmp2_kk,5);
- ,
- );
- );
- if(kk<length(tmp2),
- tmp=tmp+",";
- ,
- tmp=tmp+");";
- );
- );
- );
- cmd=append(cmd, tmp);// 17.05.26until
- );
- );
- tmp=select(1..(length(cmd)), indexof(cmd_#,"main")>0);//17.06.02from
- tmp3=cmd_((tmp_1)..(length(cmd)));
- cmd=cmd_(1..(tmp_1-1));
- cmd=append(cmd,"double cutfun(int ch, double u, double v){");
- cmd=append(cmd," double val;");
- forall(1..cutctr,
- tmp=text(#);
- cmd=append(cmd," if(ch=="+tmp+"){val=cutfun"+tmp+"(u,v);}");
- );
- cmd=concat(cmd,[" return val;", "}"]);
- cmd=concat(cmd, tmp3);//17.06.02until
- cmd=concat(cmd, [" return 0;", "}"]);
- SCEOUTPUT = openfile(fname);
- forall(cmd,
- println(SCEOUTPUT,#);
+////%Contsurf start////
+Contsurf():=ContsurfC("");
+Contsurf(restr):=ContsurfC(restr);
+ContsurfC(restr):=(//181101
+//help:Contsurf();
+ regional(cL,tmp,tmp1,tmp2);
+ if(substring(restr,0,1)=="R",
+ GLIST=[];
);
- closefile(SCEOUTPUT);
- tmp=fileslist(Dirwork); // 17.05.20from
- tmp=tokenize(tmp,",");
- tmp=select(tmp,indexof(#,".txt")>0);
- tmp=select(tmp,indexof(#,FheadC)>0);
- forall(tmp,
- SCEOUTPUT = openfile(#);
- println(SCEOUTPUT,"");
- closefile(SCEOUTPUT);
- ); // 17.05.20until
+ cL=CommandListC;
+ cL=cL_(1..(length(cL)-1));
+ CommandListC=cL;
);
+////%Contsurf end////
+////%kcC start////
kcC():=kcC(FheadC);
kcC(cname):=(
regional(tmp, tmp1,flg,rfile);
@@ -5430,7 +5155,11 @@ kcC(cname):=(
tmp=cname+".txt";
println(kc(Dirwork+Batparent,Mackc+Dirlib,tmp));
,
- SCEOUTPUT = openfile("kc.sh");
+ if(ismacosx(), //181125from
+ SCEOUTPUT = openfile("kc.command");
+ ,
+ SCEOUTPUT = openfile("kc.sh");
+ ); //181125to
println(SCEOUTPUT,"#!/bin/sh");
println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq);
tmp=PathC+" -lm "+cname+".c -o main.out"; //180612
@@ -5461,6 +5190,7 @@ kcC(cname):=(
println("kcC succeeded");
);
);
+////%kcC end////
ReaddataCold(var, fname):=ReaddataC(var, fname,[]);
ReaddataC(var, fname,options):=(
@@ -5488,6 +5218,7 @@ ReaddataC(var, fname,options):=(
);//17.06.16until
);
+////%ReaddataC start////
ReaddataC(fnameorg):=(
regional(tmp,tmp1,fname,data,out);
fname=fnameorg;
@@ -5510,7 +5241,9 @@ ReaddataC(fnameorg):=(
if(length(tmp1)>0,out=append(out,tmp1));
out;
);
+////%ReaddataC end////
+////%WritedataC start////
WritedataC(fnameorg,dataorg):=(
//help:WritedataC(filename, 3ddata);
regional(tmp,fname,data,kk,nn,pt);
@@ -5536,6 +5269,7 @@ WritedataC(fnameorg,dataorg):=(
);
closefile(SCEOUTPUT);
);
+////%WritedataC end////
DisplayC():=DisplayC(DispC);
DisplayC(name,options):=DisplayC([name,options]);
@@ -5556,7 +5290,7 @@ DisplayC(dispc):=(
eqL=tmp_5;
opcindy=tmp_(length(tmp));
forall(eqL,
- if(Toupper(substring(#,0,2))=="CO",
+ if(Toupper(substring(#,0,1))=="C",
tmp=indexof(#,"=");
color=substring(#,tmp,length(#));
if(substring(color,0,1)=="[",
@@ -5584,6 +5318,7 @@ DisplayC(dispc):=(
);
);
+////%Cheadsurf start////
Cheadsurf():=(
regional(cmd,jj,divL,sizeL,epsL,nf,var1,var2,tmp,tmp1,tmp2);
divL=ConstantListC_1;
@@ -5672,7 +5407,9 @@ Cheadsurf():=(
cmd=append(cmd,"}");
cmd;
);
+////%Cheadsurf end////
+////%Ctopsurf start////
Ctopsurf(name):=Ctopsurf(name,CutFunList);
Ctopsurf(name,cutfunLorg):=(
regional(cutfunL,path,cmd,tmp,tmp1,tmp2);
@@ -5716,7 +5453,9 @@ Ctopsurf(name,cutfunLorg):=(
]);
cmd;
);
+////%Ctopsurf end////
+////%WritetoC start////
WritetoC(nm,header,main):=(
regional(hfile,mfile,top,body,tmp,tmp1,tmp2);
hfile=Fhead+nm+"header.h";
@@ -5740,7 +5479,9 @@ WritetoC(nm,header,main):=(
println(SCEOUTPUT,"}");
closefile(SCEOUTPUT);
);
+////%WritetoC end////
+////%CalcbyC start////
CalcbyC(name,cmd):=CalcbyC(name,PathC,cmd,[]);
CalcbyC(name,Arg1,Arg2):=(
if(isstring(Arg1),
@@ -5849,8 +5590,11 @@ CalcbyC(name,path,cmd,optionorg):=(
);
);
);//180615to
+ wflg; //181101
);
+////%CalcbyC end////
+////%ExeccmdC start////
ExeccmdC(nm):=ExeccmdC(nm,[],["do"]); //180531
ExeccmdC(nm,options):=ExeccmdC(nm,options,["do"]);
ExeccmdC(nm,optionorg,optionhorg):=(
@@ -5858,7 +5602,7 @@ ExeccmdC(nm,optionorg,optionhorg):=(
//help:ExeccmdC(options1=["dr(/da/do)","m/r","Wait=30"]);
//help:ExeccmdC(options2=["do(/nodisp/da/do)"]);
regional(options,optionsh,name2,name3,waiting,dirbkup,
- eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,varL);
+ eqL,reL,strL,fname,cL,tmp,tmp1,tmp2,flg,wflg,varL);
fname=Fhead+nm+".txt";
options=optionorg;
optionsh=optionhorg;
@@ -5884,7 +5628,8 @@ ExeccmdC(nm,optionorg,optionhorg):=(
);
forall(eqL,
tmp=Strsplit(#,"=");
- if(Toupper(tmp_1)=="WAIT",
+ tmp1=Toupper(substring(tmp_1,0,1)); //181111
+ if(tmp1=="W",
waiting=parse(tmp_2);
options=remove(options,[#]);
);
@@ -5903,8 +5648,24 @@ ExeccmdC(nm,optionorg,optionhorg):=(
if(wflg==-1,tmp1=append(options,"r"));
tmp1=append(tmp1,"Wait="+text(waiting));
tmp1=append(tmp1,"Disp=n"); //181024
- CommandListC=prepend(" char fnameall[]="+Dqq(fname)+";",CommandListC);
- CommandListC=prepend(" printf("+Dqq("%s\n")+","+Dqq(Fhead)+");",CommandListC); //180608
+ cL=CommandListC; //181101from
+ tmp2=" char fnameall[]="+Dqq(fname)+";";
+ tmp=select(1..(length(cL)),indexof(cL_#,"char fnameall[]=")>0);
+ if(length(tmp)==0,
+ CommandListC=prepend(tmp2,CommandListC);
+ ,
+ tmp=tmp_1;
+ CommandListC_tmp=tmp2;
+ );
+ cL=CommandListC;
+ tmp2=" printf("+Dqq("%s\n")+","+Dqq("Execcmd "+nm)+");";
+ tmp=select(1..(length(cL)),indexof(cL_#,"printf("+Dqq("%s\n")+","+Dq+"Execcmd ")>0);
+ if(length(tmp)==0,
+ CommandListC=prepend(tmp2,CommandListC);
+ ,
+ tmp=tmp_1;
+ CommandListC_tmp=tmp2;
+ ); //181101to
tmp=select(CommandListC,indexof(#,"outputend")>0);
if(length(tmp)==0,
CommandListC=append(CommandListC," outputend(dirfname);");
@@ -5945,19 +5706,37 @@ ExeccmdC(nm,optionorg,optionhorg):=(
);
varL=select(varL,length(parse(#))>0);
if(length(addpath)>0,Changework(dirbkup,["Sub=n"])); //180605
+ if(SUBSCR==1, // 15.02.11
+ forall(varL, //181106from
+ Subgraph(#,"");
+ );
+ ); //181106to
+ tmp=StyleListC; //181107from
+ tmp1=apply(1..(length(tmp)/2),[tmp_(2*#-1),tmp_(2*#)]);
+ forall(tmp1,tmp2,
+ strL=select(varL,indexof(#,tmp2_1)>0); //181114from
+ forall(strL,
+ if((length(parse(#))>0)&(length(tmp2_2))>0,
+ Changestyle3d(#,tmp2_2);
+ );
+ ); //181114to
+ ); //181107to
varL;
);
+////%ExeccmdC end////
+////%Sfbdparadata start////
Sfbdparadata(nm,fd):=SfbdparadataC(nm,fd);
Sfbdparadata(nm,fd,options):=SfbdparadataC(nm,fd,options);
Sfbdparadata(nm,fdorg,optionorg,optionsh):=SfbdparadataC(nm,fdorg,optionorg,optionsh);
-SfbdparadataC(nm,fd):=
- SfbdparadataC(nm,fd,[],["nodisp"]);
+SfbdparadataC(nm,fd):=(
+ SfbdparadataC(nm,fd,[],["do"]);
+);
SfbdparadataC(nm,fd,options):=
- SfbdparadataC(nm,fd,options,["nodisp"]);
-SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
+ SfbdparadataC(nm,fd,options,["do"]);
+SfbdparadataC(nm,fdorg,optionorg,optionshorg):=(
//help:Sfbdparadata("1",Fd);
- regional(funnm,fd,options,name2,name3,name2h,name3h,waiting,
+ regional(funnm,fd,options,optionsh,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,cmdflg);
if(ChNumber==0,ChNumber=Ch);
fd=ConvertFdtoC(fdorg);
@@ -5978,6 +5757,7 @@ SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
name3h="sfbdh3d"+nm;
fname=Fhead+"sfbd"+nm+".txt";
options=optionorg;
+ optionsh=select(optionshorg,length(#)>0); //181107
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -6002,9 +5782,24 @@ SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
options=remove(options,[#]);
);
);
- options=remove(options,eqL);
options=remove(options,reL);
options=select(options,length(#)>0);
+ tmp1=select(options,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C")); //181114from
+ if(length(tmp1)>0,
+ tmp1=tmp1_1;
+ tmp2=select(optionsh,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C"));
+ if(length(tmp2)==0,
+ if(length(optionsh)==0,
+ optionsh=["do",tmp1];
+ ,
+ optionsh=append(optionsh,tmp1);
+ );
+ );
+ ); //181114to
+ StyleListC=concat(StyleListC,[name3,options,name3h,optionsh]); //181107
+ options=remove(options,eqL);
cmdL=[
" char fname"+nm+"[]="+Dqq(fname)+";",
" rangeUV("+funnm+");",
@@ -6021,7 +5816,7 @@ SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
if(length(tmp)>0,
tmp=replace(cmdL_6,Dqq("w"),Dqq("a"));cmdL_6=tmp;
); //180601from
- cmdL=remove(cmdL,[cmdL_1,cmdL_(length(cmdL))]);
+ cmdL=cmdL_(2..(length(cmdL)-1)); //181113
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6060,19 +5855,22 @@ SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
);
);
);
+////%Sfbdparadata end////
+////%Crvsfparadata start////
Crvsfparadata(nm,fk,sfbd,fd):=CrvsfparadataC(nm,fk,sfbd,fd);
Crvsfparadata(nm,fk,sfbd,fd,options):=CrvsfparadataC(nm,fk,sfbd,fd,options);
Crvsfparadata(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=
CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh);
CrvsfparadataC(nm,fk,sfbd,fd):=
- CrvsfparadataC(nm,fk,sfbd,fd,[],["nodisp"]);
+ CrvsfparadataC(nm,fk,sfbd,fd,[],["do"]);
CrvsfparadataC(nm,fk,sfbd,fd,options):=
- CrvsfparadataC(nm,fk,sfbd,fd,options,["nodisp"]);
-CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=(
+ CrvsfparadataC(nm,fk,sfbd,fd,options,["do"]);
+CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionshorg):=(
//help:Crvsfparadata("1","ax3d","sfbd3d1",Fd);
- regional(funnm,sfbd,fd,options,name2,name3,name2h,name3h,waiting,
- eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdlfg);
+//help:Crvsfparadata(options=["Use=y(/n)"];
+ regional(funnm,sfbd,fd,options,optionsh,name2,name3,name2h,name3h,waiting,
+ eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,useflg,cmdlfg,ii,jj,eps);
eps=10^(-5);
sfbd=replace(sfbdorg,"bdy","sfbd");
fd=ConvertFdtoC(fdorg);
@@ -6084,6 +5882,7 @@ CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=(
name3h="crvsfh3d"+nm;
fname=Fhead+"crvsf"+nm+".txt";
options=optionorg;
+ optionsh=select(optionshorg,length(#)>0); //181107
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -6108,50 +5907,91 @@ CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=(
options=remove(options,[#]);
);
);
- options=remove(options,eqL);
+ useflg="N"; //181105from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="U",
+ useflg=Toupper(substring(tmp_2,0,1));
+ );
+ ); //181105to
options=remove(options,reL);
options=select(options,length(#)>0);
- tmp2=parse(Fk);
- flg=0;
- tmp=Fhead+Fk+".dat";
- if(!isexists(Dirwork,tmp),flg=1);
- if(flg==0,
- tmp1=ReaddataC(tmp);
- if(length(tmp1)!=length(tmp2),flg=1);
- if(flg==0,
- forall(1..(length(tmp1)),ii,
- if(length(tmp1_ii)!=length(tmp2_ii),flg=1);
- forall(1..(length(tmp1_ii)),jj,
- if(flg==0,
- if(Norm(tmp1_ii_jj-tmp2_ii_jj)>eps,flg=1);
- );
- );
+ tmp1=select(options,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C")); //181114from
+ if(length(tmp1)>0,
+ tmp1=tmp1_1;
+ tmp2=select(optionsh,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C"));
+ if(length(tmp2)==0,
+ if(length(optionsh)==0,
+ optionsh=["do",tmp1];
+ ,
+ optionsh=append(optionsh,tmp1);
);
);
- );
- if(flg==1,WritedataC(tmp,Fk));
+ ); //181114to
+ StyleListC=concat(StyleListC,[name3,options,name3h,optionsh]); //181107
+ options=remove(options,eqL);
+ if(useflg=="N",
+// flg=0;
+// tmp=Fhead+Fk+".dat";
+// if(!isexists(Dirwork,tmp),flg=1);
+// if(flg==0,
+// tmp1=ReaddataC(tmp);
+// tmp2=parse(Fk);
+// if(length(tmp1)==length(tmp2),
+// forall(1..(length(tmp1)),ii,
+// if(length(tmp1_ii)!=length(tmp2_ii),flg=1);
+// forall(1..(length(tmp1_ii)),jj,
+// if(flg==0,
+// if(Norm(tmp1_ii_jj-tmp2_ii_jj)>eps,flg=1);
+// );
+// );
+// );
+// );
+// );
+// if(flg==1,
+ if((islist(parse(Fk))),
+ tmp=Fhead+Fk+".dat";
+ WritedataC(tmp,Fk);
+ ,
+ useflg="Y";
+ );
+// );
+ ); //181105to
if(cmdflg==1,
EraseList=append(EraseList,Fk);
,
Changestyle3d(Fk,["nodisp"]);
);
cmdL=[
- " char fname"+nm+"[]="+Dqq(fname)+";",
+ " char fname"+nm+"[]="+Dqq(fname)+";",
" rangeUV("+funnm+");",
- " boundary("+funnm+");",
- " readdataC("+Dqq(Fhead+Fk+".dat")+",data);",
- " readoutdata3("+Dqq(Fhead+replace(sfbd,"3d","")+".txt")+","+Dqq(sfbd)+",sfbd);", //180531
+ " boundary("+funnm+");"
+ ];
+ if(useflg=="N", //181105from
+ cmdL=concat(cmdL,[
+ " readdataC("+Dqq(Fhead+Fk+".dat")+",data);"
+ ]);
+ ,
+ cmdL=concat(cmdL,[
+ " readoutdata3(dirfname,"+Dqq(Fk)+",data);"
+ ]);
+ );
+ cmdL=concat(cmdL,[
+ " readoutdata3("+Dqq(Fhead+replace(sfbd,"3d","")+".txt")+","+Dqq(sfbd)+",sfbd);",
" crvsfparadata("+funnm+",data,sfbd, 0, out);",
" sprintf(dirfname,"+Dqq("%s%s")+",Dirname,fname"+nm+");",
" output3h("+Dqq("w")+","+Dqq("crvsf3d"+nm)+","+Dqq("crvsfh3d"+nm)+",dirfname,out);",
" outputend(dirfname);"
- ];
+ ]); //181105to
if(cmdflg==1,//180531from
println(" ExeccmdC will generate "+ name3+","+name3h);
- cmdL_5=" readoutdata3(fnameall,"+Dqq(sfbd)+",sfbd);";
- cmdL_7=" sprintf(dirfname,"+Dqq("%s%s")+",Dirname,fnameall);"; //180607
+ cmdL_(length(cmdL)-4)=" readoutdata3(fnameall,"+Dqq(sfbd)+",sfbd);"; //181105(2lines)
+ cmdL_(length(cmdL)-2)=" sprintf(dirfname,"+Dqq("%s%s")+",Dirname,fnameall);";
tmp=replace(cmdL_(length(cmdL)-1),Dqq("w"),Dqq("a")); cmdL_(length(cmdL)-1)=tmp;
- cmdL=remove(cmdL,[cmdL_(length(cmdL))]);
+ cmdL=cmdL_(1..(length(cmdL)-1)); //181113
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6190,18 +6030,20 @@ CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=(
);
);
);
+////%Crvsfparadata end////
+////%Crv3onsfparadata start////
Crv3onsfparadata(nm,crv3d,sfbd,fd):=Crv3onsfparadataC(nm,crv3d,sfbd,fd);
Crv3onsfparadata(nm,crv3d,sfbd,fd,options):=Crv3onsfparadataC(nm,crv3d,sfbd,fd,options);
Crv3onsfparadata(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=
Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh);
Crv3onsfparadataC(nm,crv3d,sfbd,fd):=
- Crv3onsfparadataC(nm,crv3d,sfbd,fd,[],["nodisp"]);
+ Crv3onsfparadataC(nm,crv3d,sfbd,fd,[],["do"]);
Crv3onsfparadataC(nm,crv3d,sfbd,fd,options):=
- Crv3onsfparadataC(nm,crv3d,sfbd,fd,options,["nodisp"]);
-Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
+ Crv3onsfparadataC(nm,crv3d,sfbd,fd,options,["do"]);
+Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionshorg):=(
//help:Crv3onsfparadata("1","sc3","sfbd3d1",fd);
- regional(funnm,sfbd,fd,options,name3,name3h,name2,name2h,waiting,
+ regional(funnm,sfbd,fd,options,optionsh,name3,name3h,name2,name2h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdflg);
tmp1=replace(crv3d,"3d","2d");
tmp=apply(GCLIST,#_1);
@@ -6225,6 +6067,7 @@ Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
tmp=apply(fdorg,if(isstring(#),Dqq(#),#));
tmp=text(tmp);
options=optionorg;
+ optionsh=select(optionshorg,length(#)>0); //181107
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -6249,9 +6092,24 @@ Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
options=remove(options,[#]);
);
);
- options=remove(options,eqL);
options=remove(options,reL);
options=select(options,length(#)>0);
+ tmp1=select(options,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C")); //181114from
+ if(length(tmp1)>0,
+ tmp1=tmp1_1;
+ tmp2=select(optionsh,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C"));
+ if(length(tmp2)==0,
+ if(length(optionsh)==0,
+ optionsh=["do",tmp1];
+ ,
+ optionsh=append(optionsh,tmp1);
+ );
+ );
+ ); //181114to
+ StyleListC=concat(StyleListC,[name3,options,name3h,optionsh]); //181107
+ options=remove(options,eqL);
tmp2=parse(crv3d);
flg=0;
tmp=Fhead+crv3d+".dat";
@@ -6287,7 +6145,8 @@ Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
cmdL_7=" sprintf(dirfname,"+Dqq("%s%s")+",Dirname,fnameall);"; //180607
tmp=replace(cmdL_(length(cmdL)-1),Dqq("w"),Dqq("a")); cmdL_(length(cmdL)-1)=tmp;
cmdL_5=" readoutdata3(fnameall,"+Dqq(sfbd)+",sfbd);";
- cmdL=remove(cmdL,[cmdL_1,cmdL_(length(cmdL))]);
+ cmdL=cmdL_(2..(length(cmdL)-1)); //181113
+// cmdL=remove(cmdL,[cmdL_1,cmdL_(length(cmdL))]);
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6326,7 +6185,9 @@ Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
);
);
);
+////%Crv3onsfparadata end////
+////%Crv2onsfparadata start////
Crv2onsfparadata(nm,crv2d,sfbd,fd):=Crv2onsfparadataC(nm,crv2d,sfbd,fd);
Crv2onsfparadata(nm,crv2d,sfbd,fd,options):=Crv2onsfparadataC(nm,crv2d,sfbd,fd,options);
Crv2onsfparadata(nm,crv2d,sfbd,fdorg,options,optionsh):=
@@ -6357,18 +6218,20 @@ Crv2onsfparadataC(nm,crv2d,sfbd,fdorg,options,optionsh):=(
parse(tmp);
Crv3onsfparadataC(nm,crv3d,sfbd,fdorg,options,optionsh);
);
+////%Crv2onsfparadata end////
+////%Wireparadata start////
Wireparadata(nm,sfbd,fd,wr1,wr2):=WireparadataC(nm,sfbd,fd,wr1,wr2);
Wireparadata(nm,sfbd,fd,wr1,wr2,options):=WireparadataC(nm,sfbd,fd,wr1,wr2,options);
Wireparadata(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=
WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh);
WireparadataC(nm,sfbd,fd,wr1,wr2):=
- WireparadataC(nm,sfbd,fd,wr1,wr2,[],["nodisp"]);
+ WireparadataC(nm,sfbd,fd,wr1,wr2,[],["do"]);
WireparadataC(nm,sfbd,fd,wr1,wr2,options):=
- WireparadataC(nm,sfbd,fd,wr1,wr2,options,["nodisp"]);
-WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
+ WireparadataC(nm,sfbd,fd,wr1,wr2,options,["do"]);
+WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionshorg):=(
//help:Wireparadata("1","sfbd3d1",fd,5,5);
- regional(funnm,fd,options,name2,name3,name2h,name3h,waiting,
+ regional(funnm,fd,options,optionsh,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,fnameh,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,udata,vdata,cmdflg);
eps=10^(-5);
fd=ConvertFdtoC(fdorg);
@@ -6381,6 +6244,7 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
fname=Fhead+"wire"+nm+".txt";
fnameh=replace(fname,".txt","h.txt");
options=optionorg;
+ optionsh=select(optionshorg,length(#)>0); //181107
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -6407,9 +6271,24 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
options=remove(options,[#]);
);
);
- options=remove(options,eqL);
options=remove(options,reL);
options=select(options,length(#)>0);
+ tmp1=select(options,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C")); //181114from
+ if(length(tmp1)>0,
+ tmp1=tmp1_1;
+ tmp2=select(optionsh,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C"));
+ if(length(tmp2)==0,
+ if(length(optionsh)==0,
+ optionsh=["do",tmp1];
+ ,
+ optionsh=append(optionsh,tmp1);
+ );
+ );
+ ); //181114to
+ StyleListC=concat(StyleListC,[name3,options,name3h,optionsh]); //181107
+ options=remove(options,eqL);
if(islist(wr1),
udata=prepend(length(wr1),wr1);
,
@@ -6454,7 +6333,9 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
tmp=replace(tmp,"fname","fnameall"); cmdL_8=tmp;
cmdL_7=" readoutdata3(fnameall,"+Dqq(sfbd)+",sfbd);";
cmdL=append(cmdL," outputend(dirfname);");
- cmdL=remove(cmdL,[cmdL_3,cmdL_4]); //180827
+ tmp=remove(1..(length(cmdL)),[3,4]); //181113(2lines)
+ cmdL=cmdL_tmp;
+// cmdL=remove(cmdL,[cmdL_3,cmdL_4]); //180827
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6495,7 +6376,9 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
);
);
);
+////%Wireparadata end////
+////%Intersectcrvsf start////
Intersectcrvsf(nm,crv,fd):=IntersectcrvsfC(nm,crv,fd);
Intersectcrvsf(nm,crv,fd,Arg):=IntersectcrvsfC(nm,crv,fd,Arg);
Intersectcrvsf(nm,crv3d,fdorg,bdyeq,optionorg):=
@@ -6577,8 +6460,10 @@ IntersectcrvsfC(nm,crv3d,fdorg,bdyeq,optionorg):=(
];
if(cmdflg==1,//180531from
cmdL_6=" intersectcrvsf("+Dqq("a")+","+funnm+",crv3d,fnameall);";
- cmdL=remove(cmdL,[cmdL_2]);
- cmdL=remove(cmdL,[cmdL_(length(cmdL))]);
+ tmp=remove(1..(length(cmdL)),[2,length(cmdL)]); //181113(2lines)
+ cmdL=cmdL_tmp;
+// cmdL=remove(cmdL,[cmdL_2]);
+// cmdL=remove(cmdL,[cmdL_(length(cmdL))]);
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6596,20 +6481,72 @@ IntersectcrvsfC(nm,crv3d,fdorg,bdyeq,optionorg):=(
parse(name);
);
);
+////%Intersectcrvsf end////
+////%Sfcutparadatacdy start//// 181112
+Sfcutparadatacdy(nm,cutfun,fd):=
+ Sfcutparadatacdy(nm,cutfun,fd,[]);
+Sfcutparadatacdy(nm,cutfun,fd,options):=(
+//help:Sfcutparadatacdy("1","2*x+3*y+z=1","sfbd3d",fd,options);
+ regional(out3,out2,name3,name2,eps,fdL,rep,jj,pL,vn1,vn2,
+ tmp,tmp1,tmp2);
+ eps=10^(-5);
+ name2="sfcc2d"+nm;
+ name3="sfcc3d"+nm;
+ fdL=Fullformfunc(fd);
+ tmp=Strsplit(fdL_5,"=");
+ vn1=tmp_1;
+ tmp=Strsplit(fdL_6,"=");
+ vn2=tmp_1;
+ rep=["x",fdL_2,"y",fdL_3,"z",fdL_4];
+ tmp=Assign(cutfun,rep);
+ Implicitplot("sfc"+nm,tmp,fd_5,fd_6,["Msg=n","nodisp"]);
+ out3=[]; out2=[];
+ tmp1=parse("impsfc"+nm);
+ if(MeasureDepth(tmp1)==1,tmp1=[tmp1]);
+ forall(1..(length(tmp1)),jj,
+ pL=tmp1_jj;
+ tmp2=[];
+ forall(pL,
+ tmp=Assign("[x,y,z]",rep);
+ tmp=Assign(tmp,[vn1,#_1,vn2,#_2]);
+ tmp=parse(tmp);
+ tmp2=append(tmp2,tmp);
+ );
+ Spaceline("-sfc"+nm+"n"+text(jj),tmp2,append(options,"Msg=n"));
+ out3=append(out3,tmp2);
+ tmp=Projcurve(tmp2);
+ out2=append(out2,tmp);
+ );
+ tmp=name3+"=["; tmp1=name3+"=[";
+ forall(1..(length(out3)),
+ tmp=tmp+"sfc"+nm+"n"+text(#)+"3d"+",";
+ tmp1=tmp1+Dqq("sfc"+nm+"n"+text(#)+"3d")+",";
+ );
+ tmp=substring(tmp,0,length(tmp)-1)+"]";
+ parse(tmp);
+ tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
+ println("generate sfcutparadata "+tmp1);
+ tmp=name2+"="+Textformat(out2,6);
+ parse(tmp);
+ out3;
+);
+////%Sfcutparadatacdy end////
+
+////%Sfcutparadata start////
Sfcutparadata(nm,cutfunL,sfbd,fd):=SfcutparadataC(nm,cutfunL,sfbd,fd);
Sfcutparadata(nm,cutfunL,sfbd,fd,options):=SfcutparadataC(nm,cutfunL,sfbd,fd,options);
Sfcutparadata(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=
SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh);
SfcutparadataC(nm,cutfunL,sfbd,fd):=(//180505
- SfcutparadataC(nm,cutfunL,sfbd,fd,[],["nodisp"]);
+ SfcutparadataC(nm,cutfunL,sfbd,fd,[],["do"]);
);
SfcutparadataC(nm,cutfunL,sfbd,fd,options):=
SfcutparadataC(nm,cutfunL,sfbd,fd,options,["nodisp"]);
-SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
+SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionshorg):=(
//help:Sfcutparadata("1","2*x+3*y+z=1","sfbd3d",fd);
- regional(funnm,cutfunL,fd,options,name2,name3,name2h,name3h,waiting,
- eqL,reL,strL,fname,fnameh,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdflg);
+ regional(funnm,cutfunL,fd,options,optionsh,name2,name3,name2h,name3h,
+ waiting,eqL,reL,strL,fname,fnameh,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdflg);
eps=10^(-5);
fd=ConvertFdtoC(fdorg);
tmp=select(1..(length(FuncListC)),FuncListC_#==fd);
@@ -6631,6 +6568,7 @@ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
fname=Fhead+"sfcut"+nm+".txt";
fnameh=replace(fname,".txt","h.txt");
options=optionorg;
+ optionsh=select(optionshorg,length(#)>0); //181107
tmp=Divoptions(options);
eqL=tmp_5;
reL=tmp_6;
@@ -6657,9 +6595,24 @@ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
options=remove(options,[#]);
);
);
- options=remove(options,eqL);
options=remove(options,reL);
options=select(options,length(#)>0);
+ tmp1=select(options,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C")); //181114from
+ if(length(tmp1)>0,
+ tmp1=tmp1_1;
+ tmp2=select(optionsh,
+ (indexof(#,"=")>0)&(Toupper(substring(#,0,1))=="C"));
+ if(length(tmp2)==0,
+ if(length(optionsh)==0,
+ optionsh=["do",tmp1];
+ ,
+ optionsh=append(optionsh,tmp1);
+ );
+ );
+ ); //181114to
+ StyleListC=concat(StyleListC,[name3,options,name3h,optionsh]); //181107
+ options=remove(options,eqL);
tmp1=text(length(cutfunL));
cmdL=[
" char fname[]="+Dqq(fname)+";",
@@ -6675,7 +6628,8 @@ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
tmp=replace(tmp,"fname","fnameall"); cmdL_6=tmp;
cmdL_5=" readoutdata3(fnameall,"+Dqq(sfbd)+",sfbd);";
cmdL=append(cmdL," outputend(dirfname);");
- cmdL=remove(cmdL,[cmdL_1,cmdL_2]); //180827
+ cmdL=cmdL_(3..(length(cmdL))); //181113
+// cmdL=remove(cmdL,[cmdL_1,cmdL_2]); //180827
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6716,6 +6670,7 @@ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
);
);
);
+////%Sfcutparadata end////
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
index 160710e857b..b177e4245bb 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
@@ -16,10 +16,14 @@
#########################################
-ThisVersion<- "KeTpic for R v5_2_4(20181024)"
+ThisVersion<- "KeTpic for R v5_2_4(20181128)"
print(ThisVersion)
+# 20181128
+# Objthicksurf debugged
+# 20181031
+# space before # removed
# 20181024
# Wireparadata debugged ( for DuL(DvL)=c(..) )
# Nohiddenpara2 debugged (for SeL=Null )
@@ -964,8 +968,8 @@ Arrowdata<- function(...)
# 2013.11.13 No Intersect debugged
Arrowhead<-function(...){
- ## Scaling is implemented
-  ## 12.01.08 Kirikomi
+## Scaling is implemented
+## 12.01.08 Kirikomi
Eps=10^(-3)
varargin<-list(...)
Nargs<-length(varargin)
@@ -11954,25 +11958,25 @@ Objsurf<- function(...){ #17.12.18
Objthicksurf<- function(...){
Args=list(...)
Nargs=length(Args)
- Sel=Args[[Nargs]]; Nargs=Nargs-1
+ Sel=Args[[Nargs]]; Nargs=Nargs-1 #181128from
Selsurf=substring(Sel,1,1)
Selside=c("0","0","0","0")
- Tmp=grep("w",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[1]="w"
- }
- Tmp=grep("e",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[2]="e"
- }
- Tmp=grep("s",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[3]="s"
- }
- Tmp=grep("n",Sel,fixed=TRUE)
- if(length(Tmp)>0){
- Selside[4]="n"
- }
+ Tmp=strsplit(Sel,"w");Tmp=Tmp[[1]]
+ if(length(Tmp)==2){
+ Selside[[1]]=substr(Tmp[2],1,1)
+ }
+ Tmp=strsplit(Sel,"e");Tmp=Tmp[[1]]
+ if(length(Tmp)==2){
+ Selside[[2]]=substr(Tmp[2],1,1)
+ }
+ Tmp=strsplit(Sel,"s");Tmp=Tmp[[1]]
+ if(length(Tmp)==2){
+ Selside[[3]]=substr(Tmp[2],1,1)
+ }
+ Tmp=strsplit(Sel,"n");Tmp=Tmp[[1]]
+ if(length(Tmp)==2){
+ Selside[[4]]=substr(Tmp[2],1,1)
+ } #181128to
Nfth=Args[[Nargs-2]]
Thick1=Args[[Nargs-1]]
Thick2=Args[[Nargs]]
@@ -12058,21 +12062,20 @@ Objthicksurf<- function(...){
}
Dt2=Objsurf(F2,U,V,Tmp);
Out=list(Dt1,Dt2);
-
- if(Selside[1]!="0"){
- Dt=Objrecs(Op(3,Dt1),Op(3,Dt2),Selside[1])
+ if(Selside[[1]]!="0"){
+ Dt=Objrecs(Op(3,Dt1),Op(3,Dt2),Selside[[1]])
Out=c(Out,list(Dt))
}
- if(Selside[2]!="0"){
- Dt=Objrecs(Op(4,Dt1),Op(4,Dt2),Selside[2])
+ if(Selside[[2]]!="0"){
+ Dt=Objrecs(Op(4,Dt1),Op(4,Dt2),Selside[[2]])
Out=c(Out,list(Dt))
}
- if(Selside[3]!="0"){
- Dt=Objrecs(Op(5,Dt1),Op(5,Dt2),Selside[3])
+ if(Selside[[3]]!="0"){
+ Dt=Objrecs(Op(5,Dt1),Op(5,Dt2),Selside[[3]])
Out=c(Out,list(Dt))
}
- if(Selside[4]!="0"){
- Dt=Objrecs(Op(6,Dt1),Op(6,Dt2),Selside[4])
+ if(Selside[[4]]!="0"){
+ Dt=Objrecs(Op(6,Dt1),Op(6,Dt2),Selside[[4]])
Out=c(Out,list(Dt))
}
OBJJOIN<<- Join
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt b/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt
index 40f68d593ab..cb026b1a340 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlibC/ketlibClog.txt
@@ -1,3 +1,12 @@
+181105
+ output3h debugged ( ctr=0 added in varh )
+ readoutdata3 debugged (//,etc )
+181104
+ line display(123) for debugging removed
+181025
+ crv3onsfparadata debugged (case of out=NULL )
+181023
+ pthiddenQ changed ( int flg, double out[4] )
180705
nohiddenparadata2 debugged (|sp-sq}>1)
180703
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h b/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
index d502a2b15c3..a72eed58230 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
+++ b/Master/texmf-dist/scripts/ketcindy/ketlibC/surflib.h
@@ -1,7 +1,3 @@
-// 181025
-// crv3onsfparadata debugged (case of out=NULL )
-// 181023
-// pthiddenQ changed ( int flg, double out[4] )
// 180430
// crv2sfparadata,wireparadata added
// output3h,output3 chanded
@@ -96,6 +92,7 @@ int output3h(const char *wa,const char *var, const char *varh, const char *fname
for(i=1; i<=length2i(din2); i++){
fprintf(fp,"start//\n");
fprintf(fp,"[");
+ ctr=0; //181105
for(j=din2[i][0]; j<=din2[i][1]; j++){
pull3(j,out1,tmpd);
fprintf(fp,"[ %7.5f, %7.5f, %7.5f]",tmpd[0],tmpd[1],tmpd[2]);
@@ -130,7 +127,6 @@ int writedataC(const char *fname, double out[][3]){
int i, nall;
FILE *fp;
nall=length3(out);
- printf("123 %d\n",nall);
fp=fopen(fname,"w");
for(i=1; i<=nall; i++){
fprintf(fp,"%7.5f %7.5f %7.5f %6s",out[i][0],out[i][1],out[i][2],"-99999");
@@ -1963,6 +1959,7 @@ int skeletondata3(double data[][3], double r00,
void readoutdata3(const char *fname, const char *var, double data[][3]){
double x,y,z;
float xx;
+ char dstrorg[256] = {'\0'};
char dstr[256] = {'\0'};
char str[10] = {'\0'},tmp[2]={'\0'};
int linectr=0, start=0, jj,nn,nctr;
@@ -1977,6 +1974,12 @@ void readoutdata3(const char *fname, const char *var, double data[][3]){
while( !feof(fp)){
fgets(dstr,250,fp);
linectr++;
+ jj=strlen(dstr);
+ if(jj>1){
+ dstr[jj-3]='\0';
+ }else{
+ dstr[0]='\0';
+ }
if(strncmp(dstr,var,nn)==0){
start=linectr;
}else{
diff --git a/Master/texmf-dist/scripts/ketcindy/template0.cdy b/Master/texmf-dist/scripts/ketcindy/template0.cdy
index acf42570a94..e4425893ccf 100644
--- a/Master/texmf-dist/scripts/ketcindy/template0.cdy
+++ b/Master/texmf-dist/scripts/ketcindy/template0.cdy
Binary files differ
diff --git a/Master/texmf-dist/scripts/ketcindy/template1basic.cdy b/Master/texmf-dist/scripts/ketcindy/template1basic.cdy
index c2ab317098d..b75f05615c1 100644
--- a/Master/texmf-dist/scripts/ketcindy/template1basic.cdy
+++ b/Master/texmf-dist/scripts/ketcindy/template1basic.cdy
Binary files differ
diff --git a/Master/texmf-dist/scripts/ketcindy/template2slide.cdy b/Master/texmf-dist/scripts/ketcindy/template2slide.cdy
index 7e287d9f3b0..b4e955f5dc6 100644
--- a/Master/texmf-dist/scripts/ketcindy/template2slide.cdy
+++ b/Master/texmf-dist/scripts/ketcindy/template2slide.cdy
Binary files differ
diff --git a/Master/texmf-dist/scripts/ketcindy/template3Dfigure.cdy b/Master/texmf-dist/scripts/ketcindy/template3Dfigure.cdy
index 35f5fdf3b74..068aa2833f8 100644
--- a/Master/texmf-dist/scripts/ketcindy/template3Dfigure.cdy
+++ b/Master/texmf-dist/scripts/ketcindy/template3Dfigure.cdy
Binary files differ
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 927a1aee700..84b43132491 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -67,6 +67,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'TOPtesi', "die 'skipping, use toptesi'",
'TeXemplar', "die 'skipping, use texemplar'",
'TeXmacs', "die 'skipping, binary'",
+ 'a2ping', "die 'check that our pod fixes are installed'",
'a4', "die 'skipping, just a pointer to ntgclass'",
'aastex', "&MAKEflatten",
'accenti', "die 'skipping, use bosisio instead'",
@@ -1267,6 +1268,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'xetex-pstricks',"&MAKEcopy",
'xfakebold', "&MAKEflatten",
'xfrac', "die 'skipping, use mh (I think)'",
+ 'xindex', "&MAKEflatten",
'xindy-persian',"die 'skipping, do by hand in /texmf-dist/xindy/modules/lang/persian: too painful to preserve rest of xindy'",
'xinitials', "die 'skipping, will be in xpackages when ready (Morten says)'",
'xits', "&MAKEflatten",