本帖最后由 edata 于 2022-5-21 22:31 编辑
以前写了一个用于DCL版本基于MFC的二维码生成程序,有人说不能动态生成。
这不动态的他来了。
exe附件,例子解压到D盘,
2022-05-21更新附件,隐蔽运行
代码更新,添加边框,指定左上角点,单个方块大小

效果:
历史版本
2022-05-20更新附件,会有闪现
测试代码
;;例子简单的生成黑白色二维码,可以根据需求。
;;本质上调用就是 exe路径 空格 字符串
;;字符串参数换行可以使用\r\n 符合windows回车换行标准
;;字符串参数建议使用转义包裹 \" ,防止参数中有空格导致参数截断
;;路径建议使用转义包裹 \" ,防止路径中有空格导致参数截断
;;注 源码中原来的链接地址在论坛代码高亮中会被转义,去掉了链接地址

生成结果:
识别结果
补充
命令行手工操作生成二维码列表值txt文件,

网友答:
网友答:
完美。
qrencode 源代码见:
https://gitee.com/atlisp/atlisp- ... encode/qrencode.lsp
网友答:
更新了附件,你试试。。
网友答: 感谢长老共享资料!网友答: 本帖最后由 guosheyang 于 2022-5-20 08:16 编辑
长老 请问这个具体要咋操作呢 QRencodeForLisp.exe 已放在D盘根目录下了。 这句好像运行出错 我用的是win11家庭版 CAD2017 (setq WSreturn (vlax-invoke WScript 'exec "\"D:\\QRencodeForLisp.exe\" \"明经通道\r\n<a href="http://bbs.mjtd.com" target="_blank">http://bbs.mjtd.com</a>\r\ncode by edata\r\n\"")) 谢谢!网友答: 我运行 后 QQ 自动生成了一个智能备份文件夹 qqpcmgr_docpro 好像是防止勒索病毒加密的 网友答: E大,现在是二维码的天下,什么都要扫码。我有过问题,你这程序每次用“明经通道”生成的二维是否相同?假如我的图纸上,用自己的名字,而不是“明经通道”,那么这个二维码怎么同我自己联系起来?网友答:
https://www.zhihu.com/question/65253283
这里有文章教大家用钛合金眼人工解码
网友答:
可否用于图纸签名?网友答:
一般图纸上用来存储各类信息的,具体运用还要看行业需求,比如有的人用来存储项目信息,电子图档链接。网友答:
等你发个应用示例,我等好照虎画猫。网友答:
lisp源代码中的链接在论坛的代码高亮中会出现了异常,刚刚更新了帖子中的lisp源码,去掉了链接地址。
以前写了一个用于DCL版本基于MFC的二维码生成程序,有人说不能动态生成。
这不动态的他来了。
exe附件,例子解压到D盘,
2022-05-21更新附件,隐蔽运行
代码更新,添加边框,指定左上角点,单个方块大小

- (defun c:tt(/ wscript stdout wsreturn outstr pt n k lst ptbase h ptleftdown ptleftup ptrightdown ptrightup size w)
- (setq WScript (vlax-get-or-create-object "WScript.Shell"))
- (setq WSreturn (vlax-invoke WScript 'exec "\"D:\\QRencodeForLisp.exe\" \"明经通道\r\ncode by edata\r\n\""))
- (setq stdout (vlax-get WSreturn 'StdOut))
- (setq outstr (vlax-invoke stdout 'Readall))
- (setq lst(read outstr))
- (if (and lst (setq ptbase(getpoint "\n左上角点:")))
- (progn
- ;(setq ptbase '(0 0))
- (setq h(length lst) w(length (car lst)))
- ;;方块的大小
- (setq size 100.0)
- (setq ptLeftUp (polar ptbase (* pi 1.75) (* (sqrt 2.0) (* size 0.5))))
- (setq ptRightUp(polar ptLeftUp 0 (+ (* w size) size )))
- (setq ptLeftDown(polar ptLeftUp (* pi 1.5) (+ (* w size) size )))
- (setq ptRightDown(polar ptRightUp (* pi 1.5) (+ (* w size) size )))
- (mkFrame ptLeftUp ptLeftDown ptRightDown ptRightUp 16777215 size)
- (setq ptbase(polar (polar ptLeftUp 0 (* 0.5 size)) (* pi 1.5) size))
- (foreach n lst
- (setq pt ptbase)
- (foreach k n
- (if (= k 1) (mkpline pt 0 size) (mkpline pt 16777215 size))
- (setq pt(polar pt 0 size))
- )
- (setq ptbase(polar ptbase (* pi 1.5) size))
- )
- )
- )
- (princ)
- )
- (defun mkpline(pt col size)
- (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 420 col) (cons 90 2) (cons 10 pt) (cons 10 (polar pt 0 size))(cons 43 size)))
- )
- (defun mkFrame(p1 p2 p3 p4 col size / lst pt)
- (setq lst(list p1 p2 p3 p4))
- (entmake (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 420 col)(cons 90 (length lst))(cons 70 1)(cons 43 size))
- (mapcar '(lambda (pt)(cons 10 pt)) lst ))
- )
- )
-
效果:
历史版本
2022-05-20更新附件,会有闪现
测试代码
;;例子简单的生成黑白色二维码,可以根据需求。
;;本质上调用就是 exe路径 空格 字符串
;;字符串参数换行可以使用\r\n 符合windows回车换行标准
;;字符串参数建议使用转义包裹 \" ,防止参数中有空格导致参数截断
;;路径建议使用转义包裹 \" ,防止路径中有空格导致参数截断
;;注 源码中原来的链接地址在论坛代码高亮中会被转义,去掉了链接地址

- (defun c:tt(/ wscript stdout wsreturn outstr pt n k lst ptbase)
- (setq WScript (vlax-get-or-create-object "WScript.Shell"))
- (setq WSreturn (vlax-invoke WScript 'exec "\"D:\\QRencodeForLisp.exe\" \"明经通道\r\ncode by edata\r\n\""))
- (setq stdout (vlax-get WSreturn 'StdOut))
- (setq outstr (vlax-invoke stdout 'Readall))
- (setq lst(read outstr))
- (if lst
- (progn
- (setq ptbase '(0 0))
- (foreach n lst
- (setq pt ptbase)
- (foreach k n
- (if (= k 1) (mkpline pt 0) (mkpline pt 16777215))
- (setq pt(polar pt 0 1))
- )
- (setq ptbase(polar ptbase (* pi 1.5) 1))
- )
- )
- )
- (princ)
- )
- (defun mkpline(pt col)
- (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 420 col) (cons 90 2) (cons 10 pt) (cons 10 (polar pt 0 1))(cons 43 1)))
- )
生成结果:
识别结果
补充
命令行手工操作生成二维码列表值txt文件,

- QRencodeForLisp.exe "建设单位:明经通道\r\n设计单位:edata" >test.txt
网友答:
自贡黄明儒 发表于 2022-5-20 11:03
等你发个应用示例,我等好照虎画猫。

- (defun c:rrt (/ x lien util str strlst )
- (vl-load-com)
- (setq str (cdr (assoc 1 (entget (car(entsel"点击文本"))))))
- (setq WScript (vlax-get-or-create-object "WScript.Shell"))
- (setq WSreturn (vlax-invoke WScript 'exec (strcat ""QRencodeForLisp.exe" "" str """)))
- (setq stdout (vlax-get WSreturn 'StdOut))
- (setq outstr (vlax-invoke stdout 'Readall))
- (setq strlst (read outstr))
- (setq x (length strlst))
- (setq lw 1 ll lw pt (getpoint"指定插入点"))
- (repeat x
- (setq xlist (car strlst))
- (setq n x)
- (repeat x
- (setq ptn (polar pt 0 (* lw n)))
- (setq n (1- n))
- (setq ptx (rtos (nth n xlist) 2 0 ))
- (if (= ptx "1") (Mc:pl1-1fk ptn lw ll))
- )
- (setq pt (polar pt (* pi 1.5) lw))
- (setq strlst (vl-remove (car strlst) strlst))
- )
- (redraw)
- )
- ;;(Mc:pl1-1fk pt1 lw ll) 多义线起点 宽度 长度
- (defun Mc:pl1-1fk (pt lw ll / pta)
- (setq pta (polar pt 0 ll))
- (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 43 LW)(cons 90 2) (cons 10 pt) (cons 10 pta)))
- )
edata 发表于 2022-5-21 21:32
更新了附件,你试试。。
...
完美。
如果无法播放,请点击此处在新窗口打开
qrencode 源代码见:
https://gitee.com/atlisp/atlisp- ... encode/qrencode.lsp
网友答:
vitalgg 发表于 2022-5-20 22:14
https://atlisp.cn/package-info/qrencode-stable.html
屏幕会闪一下。
更新了附件,你试试。。
网友答: 感谢长老共享资料!网友答: 本帖最后由 guosheyang 于 2022-5-20 08:16 编辑
长老 请问这个具体要咋操作呢 QRencodeForLisp.exe 已放在D盘根目录下了。 这句好像运行出错 我用的是win11家庭版 CAD2017 (setq WSreturn (vlax-invoke WScript 'exec "\"D:\\QRencodeForLisp.exe\" \"明经通道\r\n<a href="http://bbs.mjtd.com" target="_blank">http://bbs.mjtd.com</a>\r\ncode by edata\r\n\"")) 谢谢!网友答: 我运行 后 QQ 自动生成了一个智能备份文件夹 qqpcmgr_docpro 好像是防止勒索病毒加密的 网友答: E大,现在是二维码的天下,什么都要扫码。我有过问题,你这程序每次用“明经通道”生成的二维是否相同?假如我的图纸上,用自己的名字,而不是“明经通道”,那么这个二维码怎么同我自己联系起来?网友答:
自贡黄明儒 发表于 2022-5-20 09:23
E大,现在是二维码的天下,什么都要扫码。我有过问题,你这程序每次用“明经通道”生成的二维是否相同?假 ...
https://www.zhihu.com/question/65253283
这里有文章教大家用钛合金眼人工解码
网友答:
vectra 发表于 2022-5-20 09:33
https://www.zhihu.com/question/65253283
这里有文章教大家用钛合金眼人工解码
可否用于图纸签名?网友答:
自贡黄明儒 发表于 2022-5-20 09:39
可否用于图纸签名?
一般图纸上用来存储各类信息的,具体运用还要看行业需求,比如有的人用来存储项目信息,电子图档链接。网友答:
edata 发表于 2022-5-20 10:39
一般图纸上用来存储各类信息的,具体运用还要看行业需求,比如有的人用来存储项目信息,电子图档链接。
等你发个应用示例,我等好照虎画猫。网友答:
guosheyang 发表于 2022-5-20 08:14
长老 请问这个具体要咋操作呢 QRencodeForLisp.exe 已放在D盘根目录下了。 这句好像运行出错 我用的是wi ...
lisp源代码中的链接在论坛的代码高亮中会出现了异常,刚刚更新了帖子中的lisp源码,去掉了链接地址。