挚友02 发表于 2025-2-13 11:09:54

用VLISP如何生成二维码????????

在网上找了一遍关于用VLISP如何生成二维码的方法,试着修改了一下,有几处不明,请高手们多多指教。。。。




Vlisp 二维码生成
Vlisp 是一种编程语言,主要用于 AutoCAD 的 LISP 编程。虽然 Vlisp 本身并不直接支持二维码生成,但你可以通过调用外部工具或库来实现这一功能。例如,你可以使用 PHP 生成二维码,然后在 Vlisp 中调用 PHP 脚本。

使用 PHP 生成二维码
根据搜索结果,可以使用 phpqrcode 这个 PHP 类库来生成二维码。以下是具体步骤:

下载 phpqrcode 类文件

你可以从官方网站或其他可信来源下载 phpqrcode.php 文件。
【注】这个下载了,存到...d:\phpqrcode

确保 PHP 环境支持 GD2 扩展库

通常情况下,PHP 环境已经开启了 GD2 扩展库支持。如果没有,你需要手动开启。
【注】这个不知道如何开启

使用 QRcode 类生成二维码

phpqrcode 类库中的 QRcode 类提供了 png() 方法来生成二维码。以下是该方法的参数说明:

参数      描述
text二维码包含的内容,可以是链接、文字、JSON字符串等����二维码包含的内容,可以是链接、文字、����字符串等outfile      默认为 false,不生成文件,只将二维码图片返回输出;否则需要给出存放生成二维码图片的文件名及路径
level控制二维码容错率,可选值为L(7�����控制二维码容错率,可选值为�(7size      控制生成图片的大小,默认为 4
margin控制生成二维码的空白区域大小,默认为4������控制生成二维码的空白区域大小,默认为4saveandprint      保存二维码图片并显示出来,$outfile 必须传递图片路径
示例代码

以下是一个生成二维码的示例代码:

【注】建立了个1.php 文件同样放到D:\phpqrcode,以下是php文件内容

Php
require_once 'phpqrcode.php';

value=′https://example.com′;//二维码内容�����=′ℎ����://�������.���′;//二维码内容errorCorrectionLevel = 'L'; // 容错级别
matrixPointSize=5;//生成图片大小//生成二维码图片���������������=5;//生成图片大小//生成二维码图片filename = 'qrcode/' . microtime() . '.png';
QRcode::png(value,�����,filename, errorCorrectionLevel,��������������������,matrixPointSize, 2);

// 显示二维码图片
header('Content-Type: image/png');
readfile($filename);

【注】php 文件结束

在 Vlisp 中调用 PHP 脚本
你可以在 Vlisp 中使用 shell 函数来调用 PHP 脚本,并生成二维码。以下是一个示例代码:

(defun c:generateQRCode ()
(setq phpScript "path/to/your/php/script.php")   ;【注】这里是不是应该写成   (setq phpScript "D:\\phpqrcode\\1.php")
(setq qrCodeFile "path/to/output/qrcode.png")   ;【注】这里是不是应该写成   (setq phpScript "D:\\phpqrcode\\qrcode.png")

;; 调用 PHP 脚本生成二维码
(vl-shell (strcat "php " phpScript))   ; 【注】vl-shell 不好使,如何加载?我换成了 (command "shell" (strcat "php " phpScript))

;; 在 AutoCAD 中显示二维码
(command "_.INSERT" qrCodeFile 0 0 1)
)
请确保将 phpScript 和 qrCodeFile 变量设置为你实际的 PHP 脚本路径和二维码输出路径。

应该生成qrcode.png或qrcode.png.dwg ,但无果。如何改这段代码?

飞雪神光 发表于 2025-2-13 12:52:23

直接vlisp 不行论坛里搜一搜就有好几个辅助的

kozmosovia 发表于 2025-2-13 13:13:20

本帖最后由 kozmosovia 于 2025-2-13 13:23 编辑

EDATA有个生成二维码01数据表的EXE,然后根据这个数据表可以生成二维码。

VLDCL已经集成了生成的界面。

另外老外有个网站也提供在线生成01数据表的功能
https://www.xcad.ch/tests/getqrcode.php?string=DataToGetQRCode

你有种再说一遍 发表于 2025-2-14 17:12:49

可能你低估了二维码难度,
光是类的数量都多到飞起,还是大量的矩阵运算,
想转为Lisp会吐血的.
调用才是你的目标

hn10183051 发表于 2025-4-5 11:34:58

kozmosovia 发表于 2025-2-13 13:13
EDATA有个生成二维码01数据表的EXE,然后根据这个数据表可以生成二维码。

VLDCL已经集成了生成的界面。
...

他这个01数据包怎么显示幻灯片呢

kozmosovia 发表于 2025-4-5 12:08:40

hn10183051 发表于 2025-4-5 11:34
他这个01数据包怎么显示幻灯片呢

铺个底色,然后遇到1就再放个另外颜色的正方形

hn10183051 发表于 2025-4-5 12:49:40

kozmosovia 发表于 2025-4-5 12:08
铺个底色,然后遇到1就再放个另外颜色的正方形

能帮你出个函数吗

jinan1913 发表于 2025-4-11 15:44:53

中望CAD有二维码模块。


(setq inspt (getpoint"\n二维码插入点:"))
(command "-qrcode" "二维码文字内容二维码文字内容二维码文字内容二维码文字内容二维码文字内容二维码文字内容" "M" 10 1 inspt)

zml84 发表于 2025-4-12 23:06:44

在客户端,用vlisp发送字符串内容,访问云端url;
在服务端,用PHP语言生成二维码,数据返回给客户端;
最后客户端绘制二维码图形。

https://tool.zml84.xyz/qr/

zml84 发表于 2025-4-12 23:14:33

https://mp.weixin.qq.com/s/7c6BT1vpin7novpuXHn3gA

页: [1]
查看完整版本: 用VLISP如何生成二维码????????