479274135 发表于 2024-1-27 18:34:01

命令修改器v2.0 opendcl

刚接触opendcl把之前dcl做的命令修改器重做了边,只能说真难呀 资料太少了!
先发出来供大家参考学习,所有代码均已经详细标注
原版网址:
命令修改器 - AutoCAD工具插件 - AutoCAD论坛 - 明经CAD社区 - ET - Powered by Discuz! (mjtd.com)

有币的出个币,没币的兄弟也让用
我就怕急着找资料的时候没币用
希望大家文明使用,最起码得给我留个名吧
有问题欢迎讨论,回头我看看怎么tab 进入下一格子

williamhub 发表于 2024-1-29 22:24:05

冒个烟圈 发表于 2024-1-28 09:03
命令: C_KJJ
; 错误: 参数类型错误: stringp nil
主要是这个文件mydcl.odcl不知道如何使用,已安装OpenDc ...

;;功能:自动加载 32/64 位 Opendcl 的支持库
;;参数:不需要
;;返回:成功后返回加载提示 如:OpenDCL Runtime 已加载
;;用法:放到一个 lisp 程序的最前面,CAD 加载 lisp 时本函数自动运行
(vl-load-com)
(setq ODCLREG (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key)
   "\\Applications\\OpenDCL"))
(or dcl_getversionex ;;判断 OPENDCL 环境是否加载
        (if (setq Phd (vl-registry-read ODCLREG "Loader")) ;;ODCL 是否安装
                (progn
                (arxload Phd)
                (setq ODCLREG nil Phd nil)
                );end progn
                (progn;;如果 OPENDCL 没有安装则搜索 arx 文件是否存在
                (defun Load_OdclRuntime (/ vers arxname darx *error*)
                        (defun *error* (msg) ;;错误中断提示
                                (princ (strcat "\n程序加载失败,文件 " arxname " 缺失"))
                                (princ)
                        )
                        (setq vers (substr (getvar "acadver") 1 2))
                        (setq arxname (strcat "OpenDCL."
                                (if (= (getenv "PROCESSOR_ARCHITECTURE") "AMD64") "x64." "")
                                vers ".arx"));;区分 CAD 位
                        (if (setq darx (findfile arxname))
                                (if (null (member arxname (arx)))(arxload darx))
                                (exit) ;;支持路径未搜到 arx,调用错误中断
                        )
                )
                (Load_OdclRuntime) ;;运行加载函数
                (setq Load_OdclRuntime nil) ;;释放加载函数
                );end progn
        );end if
);;The End of Load ODCL

;用这个函数代替 gxl-AutoLoadODclArx,注释掉 (gxl-AutoLoadODclArx)

liuhe 发表于 2024-1-27 19:17:36

Grid-SetCurCell Support Forum
Report A Bug

--------------------------------------------------------------------------------

Function Name dcl-Grid-SetCurCell
Syntax   (dcl-Grid-SetCurCell mydcl/Form1/Grid1 Row {Column })
Return Type Boolean (T if successful; otherwise NIL)
Applies To Grid

此方法设置活动单元格。 如果Row为-1,则激活整个列。 如果省略column或-1,则激活整行。 如果需要,将滚动网格,以确保显示活动单元格。



用这个尝试激活单元格

williamhub 发表于 2024-1-29 22:29:21

冒个烟圈 发表于 2024-1-28 09:03
命令: C_KJJ
; 错误: 参数类型错误: stringp nil
主要是这个文件mydcl.odcl不知道如何使用,已安装OpenDc ...

mydcl.odcl和ini文件放在CAD支持文件搜索路径下,错误: 参数类型错误: stringp nil应该是没找到ini配置文件

wangsr 发表于 2024-1-27 23:36:37

命令: KJJ
未知命令“KJJ”。按 F1 查看帮助。
是怎么回事

479274135 发表于 2024-1-28 07:50:54

wangsr 发表于 2024-1-27 23:36
命令: KJJ
未知命令“KJJ”。按 F1 查看帮助。
是怎么回事

ini文件需要在cad支持搜索的文件下

479274135 发表于 2024-1-28 07:52:20

liuhe 发表于 2024-1-27 19:17
用这个尝试激活单元格

感谢分享!!

冒个烟圈 发表于 2024-1-28 09:03:15

命令: C_KJJ
; 错误: 参数类型错误: stringp nil
主要是这个文件mydcl.odcl不知道如何使用,已安装OpenDcl Studio 9.0.3.0
问题如何解决,知道的大神普及下!

ghgh0130 发表于 2024-1-28 10:04:56

感谢分享!!

panliang9 发表于 2024-1-28 10:06:48

谢谢楼主分享。

jkop 发表于 2024-1-29 08:14:37

路过,收藏,感谢分享。
页: [1] 2
查看完整版本: 命令修改器v2.0 opendcl