As a generate string to -> ASCII Binary (FeatureScript to generate QR )

Fda
Fda Member Posts: 42 ✭✭
edited January 2020 in FeatureScript
Hi, I'm trying to create a FeatureScript to generate QR as a solid body.




The question is:
As a generate -> ASCII -> Binary
Hi, I'm trying to create a FeatureScript to generate QR as a solid body.
Is it an easy way to generate an ASCII Binary?
(Surely something easy lol)
const chrMap_Binary = {

	'='		:	"00111101"	,//		chr(61)
	'>'		:	"00111110"	,//		chr(62)
	'?'		:	"00111111"	,//		chr(63)
	'@'		:	"01000000"	,//		chr(64)
	'A'		:	"01000001"	,//		chr(65)
	'B'		:	"01000010"	,//		chr(66)
	'C'		:	"01000011"	,//		chr(67)
	'D'		:	"01000100"	,//		chr(68)
	'E'		:	"01000101"	,//		chr(69)
	'F'		:	"01000110"	,//		chr(70)
	'G'		:	"01000111"	,//		chr(71)
	'H'		:	"01001000"	,//		chr(72)
	'I'		:	"01001001"	,//		chr(73)
	'J'		:	"01001010"	,//		chr(74)
	'K'		:	"01001011"	,//		chr(75)
	'L'		:	"01001100"	,//		chr(76)
	'M'		:	"01001101"	,//		chr(77)
	'N'		:	"01001110"	,//		chr(78)
	'O'		:	"01001111"	,//		chr(79)
	'P'		:	"01010000"	,//		chr(80)
	'Q'		:	"01010001"	,//		chr(81)
	'R'		:	"01010010"	,//		chr(82)
	'S'		:	"01010011"	,//		chr(83)
	'T'		:	"01010100"	,//		chr(84)
	'U'		:	"01010101"	,//		chr(85)
	'V'		:	"01010110"	,//		chr(86)
	'W'		:	"01010111"	,//		chr(87)
	'X'		:	"01011000"	,//		chr(88)
	'Y'		:	"01011001"	,//		chr(89)
	'Z'		:	"01011010"	,//		chr(90)
	'['		:	"01011011"	,//		chr(91)
	'\''	:	"01011100"	,//		chr(92)
	']'		:	"01011101"	,//		chr(93)
	'^'		:	"01011110"	//		chr(94)
};

annotation { "Feature Type Name" : "QR" }
export const myFeature = defineFeature(function(context is Context, id is Id, definition is map)
    precondition
    {
        // Define the parameters of the feature type
        annotation { "Name" : "My String" }
        definition.myString is string;
        
    }
    { // Define the function's action

        var chartt = splitIntoCharacters(definition.myString); //returns Characters<br>
   ????????????  T<b></b>he question is:   ?????????????<br>

// front chartt
 var qr_data = [[1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1],
            [1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1],
            [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1],
            [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1]

];
    for (var axis_x = 0; axis_x < mySizeStrign + 1; axis_x += 1)
            {
                if ((qr_data[axis_x ][axis_y ]) == (1)) // is true ?
                {

                    fCuboid(context, id + ("cuboid1" ~ axis_x ), {
     
    });

https://cad.onshape.com/documents/c147851704bf76a3ee2c0a30/w/4febbbd4c01a9812f459fe10/e/e9ef4309e41a74f961e25983

I was inspired by this "OpenSCAD" code
https://ridercz.github.io/OpenSCAD-QR/

Tagged:

Answers

  • MBartlett21
    MBartlett21 Member, OS Professional, Developers Posts: 2,064 ✭✭✭✭✭
    I don't think this is currently possible

    Here is an example that will do all characters to a number, including control and punctuation characters:
    (Script was generated externally :) )
    const charToByte = {
        "\u0000" : 0,
        "\u0001" : 1,
        "\u0002" : 2,
        "\u0003" : 3,
        "\u0004" : 4,
        "\u0005" : 5,
        "\u0006" : 6,
        "\u0007" : 7,
        "\u0008" : 8,
        "\u0009" : 9,
        "\n" : 10,
        "\u000b" : 11,
        "\u000c" : 12,
        "\u000d" : 13,
        "\u000e" : 14,
        "\u000f" : 15,
        "\u0010" : 16,
        "\u0011" : 17,
        "\u0012" : 18,
        "\u0013" : 19,
        "\u0014" : 20,
        "\u0015" : 21,
        "\u0016" : 22,
        "\u0017" : 23,
        "\u0018" : 24,
        "\u0019" : 25,
        "\u001a" : 26,
        "\u001b" : 27,
        "\u001c" : 28,
        "\u001d" : 29,
        "\u001e" : 30,
        "\u001f" : 31,
        " " : 32,
        "!" : 33,
        "\"" : 34,
        "#" : 35,
        "$" : 36,
        "%" : 37,
        "&" : 38,
        "'" : 39,
        "(" : 40,
        ")" : 41,
        "*" : 42,
        "+" : 43,
        "," : 44,
        "-" : 45,
        "." : 46,
        "/" : 47,
        "0" : 48,
        "1" : 49,
        "2" : 50,
        "3" : 51,
        "4" : 52,
        "5" : 53,
        "6" : 54,
        "7" : 55,
        "8" : 56,
        "9" : 57,
        ":" : 58,
        ";" : 59,
        "<" : 60,
        "=" : 61,
        ">" : 62,
        "?" : 63,
        "@" : 64,
        "A" : 65,
        "B" : 66,
        "C" : 67,
        "D" : 68,
        "E" : 69,
        "F" : 70,
        "G" : 71,
        "H" : 72,
        "I" : 73,
        "J" : 74,
        "K" : 75,
        "L" : 76,
        "M" : 77,
        "N" : 78,
        "O" : 79,
        "P" : 80,
        "Q" : 81,
        "R" : 82,
        "S" : 83,
        "T" : 84,
        "U" : 85,
        "V" : 86,
        "W" : 87,
        "X" : 88,
        "Y" : 89,
        "Z" : 90,
        "[" : 91,
        "\\" : 92,
        "]" : 93,
        "^" : 94,
        "_" : 95,
        "`" : 96,
        "a" : 97,
        "b" : 98,
        "c" : 99,
        "d" : 100,
        "e" : 101,
        "f" : 102,
        "g" : 103,
        "h" : 104,
        "i" : 105,
        "j" : 106,
        "k" : 107,
        "l" : 108,
        "m" : 109,
        "n" : 110,
        "o" : 111,
        "p" : 112,
        "q" : 113,
        "r" : 114,
        "s" : 115,
        "t" : 116,
        "u" : 117,
        "v" : 118,
        "w" : 119,
        "x" : 120,
        "y" : 121,
        "z" : 122,
        "{" : 123,
        "|" : 124,
        "}" : 125,
        "~" : 126,
        "\u007f" : 127,
        "€" : 128,
        "" : 129,
        "‚" : 130,
        "ƒ" : 131,
        "„" : 132,
        "…" : 133,
        "†" : 134,
        "‡" : 135,
        "ˆ" : 136,
        "‰" : 137,
        "Š" : 138,
        "‹" : 139,
        "Œ" : 140,
        "" : 141,
        "Ž" : 142,
        "" : 143,
        "" : 144,
        "‘" : 145,
        "’" : 146,
        "“" : 147,
        "”" : 148,
        "•" : 149,
        "–" : 150,
        "—" : 151,
        "˜" : 152,
        "™" : 153,
        "š" : 154,
        "›" : 155,
        "œ" : 156,
        "" : 157,
        "ž" : 158,
        "Ÿ" : 159,
        " " : 160,
        "¡" : 161,
        "¢" : 162,
        "£" : 163,
        "¤" : 164,
        "¥" : 165,
        "¦" : 166,
        "§" : 167,
        "¨" : 168,
        "©" : 169,
        "ª" : 170,
        "«" : 171,
        "¬" : 172,
        "u00ad" : 173,
        "®" : 174,
        "¯" : 175,
        "°" : 176,
        "±" : 177,
        "²" : 178,
        "³" : 179,
        "´" : 180,
        "µ" : 181,
        "¶" : 182,
        "·" : 183,
        "¸" : 184,
        "¹" : 185,
        "º" : 186,
        "»" : 187,
        "¼" : 188,
        "½" : 189,
        "¾" : 190,
        "¿" : 191,
        "À" : 192,
        "Á" : 193,
        "Â" : 194,
        "Ã" : 195,
        "Ä" : 196,
        "Å" : 197,
        "Æ" : 198,
        "Ç" : 199,
        "È" : 200,
        "É" : 201,
        "Ê" : 202,
        "Ë" : 203,
        "Ì" : 204,
        "Í" : 205,
        "Î" : 206,
        "Ï" : 207,
        "Ð" : 208,
        "Ñ" : 209,
        "Ò" : 210,
        "Ó" : 211,
        "Ô" : 212,
        "Õ" : 213,
        "Ö" : 214,
        "×" : 215,
        "Ø" : 216,
        "Ù" : 217,
        "Ú" : 218,
        "Û" : 219,
        "Ü" : 220,
        "Ý" : 221,
        "Þ" : 222,
        "ß" : 223,
        "à" : 224,
        "á" : 225,
        "â" : 226,
        "ã" : 227,
        "ä" : 228,
        "å" : 229,
        "æ" : 230,
        "ç" : 231,
        "è" : 232,
        "é" : 233,
        "ê" : 234,
        "ë" : 235,
        "ì" : 236,
        "í" : 237,
        "î" : 238,
        "ï" : 239,
        "ð" : 240,
        "ñ" : 241,
        "ò" : 242,
        "ó" : 243,
        "ô" : 244,
        "õ" : 245,
        "ö" : 246,
        "÷" : 247,
        "ø" : 248,
        "ù" : 249,
        "ú" : 250,
        "û" : 251,
        "ü" : 252,
        "ý" : 253,
        "þ" : 254,
        "ÿ" : 255,
    };
    mb - draftsman - also FS author: View FeatureScripts
    IR for AS/NZS 1100