autolisp获取目录服务器信息失败,大神们,帮忙看看这个代码哪儿有问题?老是出现“参数类型错误:...

博客内容涉及一个使用AutoLISP编写的程序,旨在转换等高线,但遇到错误提示"参数类型错误: lselsetp nil"或"参数类型错误: numberp: nil"。代码中定义了c:ZHDGX、claim和dgx函数,尝试通过用户输入的等高距转换等高线,并在转换过程中对不同类型的图元进行操作。然而,代码在处理某些图元时出现错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

defun c:ZHDGX()

(claim)

(command "layer" "m" "dgxj" "")

(command "layer" "c" "blue" "dgxj" "")

(dgx)

)

(princ "\n******** 键入ZHDGX 启动程序 ***\n")

;;;;;;;;;;;;;;;;;;;;;;;;;

(defun claim()

(alert"\n<< 转换等高线程序 >>")

)

;;;;;;;;;;;;;;;;;;;;;;;;;

(defun dgx()

(setq NEWDIST(getreal"请输入转换等高线的等高距:"))

(prompt "请选择等高线:")

(setq SS(ssget))

(setq len(sslength SS))

(setq n 0)

(repeat len

(setq ent(ssname ss n))

(setq entdate(entget ent))

(setq pd(assoc 0 entdate)))

(setq t1( * NEWDIST 5))

(if(=pd "TEXT")

(PROGN

(setq gc1(assoc 10 entdate))

(setq gc2(cdr gc1))

(setq x0(car gc2))

(setq y0(cadr gc2))

(setq z1(caddr gc2))

(setq ZC(/z1 t1))

(setq zd(fix(-ZC zd))

(if (/=kk 0)(command "erase" ent ""))

)

)

(if( = pd“LWPOLYLINE")

(command "change" ent "" "p" "la" "0" "" :)

(PROGN

(command "pedit" ent "8" "X" "")

(setq gel(assoc 38 entdate))

(setq x0(car ge2))

(setq y0(eadr gc2))

(setq z1(caddr go2))

(setq z0(atof(rtos z1 2 0)))

(setq lst(cons 28 z0))

(setq lst(list 10 x0 y0 z0))

(entmod(subst lst gcl engdate))

(setq Za(/z0 t1)))

(setq zb(fix(/z0 t1)))

(setq kk(-Za zb))

(if (=kk 0)

(PROGN

(command "change" ent "p" "la" "dgxj" "thickness" "8120000" "" )

)

(PROGN

(setq go3(/z0 NEWDIST)))

(setq ge4(fix(/z0 NEWDIST)))

(setq k(-ge4 ge3))

(if(/=k 0)(command "erase" ent ""))

(if(=k 0)(command "change" ent "" "p" "la" "dgx" "p" "thickness" "8110000" ""))

)

)

)

)

(if(= pd "POLYLINE")

(PROGN

(setq ge1(assoc 10 entdate))

(setq go2(cdr ge1))

(setq x0(car gc2))

(setq y0(eadr go2))

(setq z1(erddr go2))

(setq z0(atof(rtos z1 2 0 )))

(setq lst(list 10 x0 y0 z0 ))

(entmod(subst lst ge1 entdate))

(setq Za(/z0 t1))

(setq zb(fix(/z0 t1)))

(setq kk(-Za zb))

(if(= kk 0)

(PROGN

(command "change" ent "" "p" "la" "dgxj" "p" "thickness" "8120000" ""))

)

(PROGN

(setq go3(/z0 NEWDIST))

(setq go4(fix(/z0 NEWDIST)))

(setq k(-gc4 ge3))

(if (/=k 0)(comrllarld "erase" ent ""))

(if (=k 0)(command "change" ent "" "p" "la" "dgx" "p" "thickness" "8110000" "" ))

)

)

)

)

(setq n(+n 1))

)

end repeat

(princ)

)

上面运行以后老师出现”参数类型错误: lselsetp nil“或者”参数类型错误: numberp: nil“或者未知命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值