谢谢你的回复-
至少现在我明白了为什么我的帖子不合适了——但对于一个没有接受过CAD培训并且在6个月前33岁才开始使用它的人来说——其中一些对我来说有点法语!
我相信我有一个数学头脑,能够很好地理解逻辑——只是我读的关于LISP的书越多,我就越会对参数、顺序和反向逻辑感到困惑。
我们公司在CAD方面不是最好的,我已经比其他用户更先进了——只是因为我想知道事情是如何运作的。
我并没有试图过滤我意识到有价值的信息和技能——我也不想把工作当成自己的工作——我要求在工作中接受培训——但没有。
我只是想改进一些东西和我们的工作方式——因为产生了很多错误,我知道这很令人沮丧,只要投入一点资金,公司就可以消除这些错误。
我的出发点和落脚点是将原始documnet(LISP)文件与新文件进行比较,然后查看所做的更改以及它们对代码的影响。
然后对于类似的函数,我希望能够生成一个工作的LISP。
我试图替换代码中的变量,但不知道如何更改顺序。
如果你能给我推荐一本书或一个有帮助的网页,我很乐意去研究。
我有太多的问题,把它们都写下来太疯狂了,我希望用前置和后置的方式来回答其中的大部分问题,而不会打扰到别人。
有没有写代码和常数列表的方法!
在这个阶段,我不了解预修复及其应用程序,即vlax-getvar等
此外,我如何预设属性,而不是“steq hgt”和(getdist。。。
我只是删除(getdist。。
然后大概使用命令设置高度设置hgt 50
我的问题是,我有太多的问题,我不知道从哪里开始!
我将附上LISP并用红色写下我的问题-我希望你能看到我有兴趣学习这些功能以及它们是如何工作的!
谢谢你的回复
- [size=3]; +-------+---------+---------+-----SCANLINE.lsp----+---------+--------+--------+ ;[/size]
- [size=3](vl-load-com)[/size]
- [size=3](defun C:SCANLINE (/ acsp adoc ang der ent gap midp mtx oid pline pref txp txt)[/size]
- [color=red][size=3]Does above set the variables for this lisp[/size][/color]
- [size=3] (or adoc[/size]
- [size=3] (setq adoc[/size]
- [size=3] (vla-get-activedocument[/size]
- [size=3] (vlax-get-acad-object) [/size]
- [size=3] )[/size]
- [size=3] )[/size]
- [size=3] )[/size]
- [size=3] (if (and[/size]
- [size=3] (= (getvar "tilemode") 0) [color=red]?[/color][/size]
- [size=3] (= (getvar "cvport") 1) [color=red]?[/color][/size]
- [size=3] )[/size]
- [size=3] (setq acsp (vla-get-paperspace adoc))[/size]
- [size=3] (setq acsp (vla-get-modelspace adoc))[/size]
- [size=3] )[/size]
- [size=3](if (and (tblsearch "layer" (setq layerName "TL - LD - Scanlight Interconnecting Leads"))[/size]
- [size=3] (setq ss (ssget "_x" (list (cons 8 layerName)))))[/size]
- [size=3] ;; ...code [/size]
- [color=red][size=3]Can you select the layer then all polylines after - just incase someone has put the wrong thing on this layer[/size][/color]
- [size=3] )[/size]
- [size=3](if (setq ent (entsel "\nSelect polyline >>")) [color=red]I need to select all polylines “nSelect ..[/color][/size]
- [size=3] (progn[/size]
- [size=3](setq oid (vla-get-objectid[/size]
- [size=3] (setq pline (vlax-ename->vla-object[/size]
- [size=3] (car ent))))[/size]
- [size=3] )[/size]
- [size=3](setq midp (vlax-curve-getclosestpointto pline[/size]
- [size=3] (vlax-curve-getpointatdist pline[/size]
- [size=3] (/ (vla-get-length pline) 2)))[/size]
- [size=3] )[/size]
- [size=3](vlax-invoke acsp 'AddCircle midp 2.0) [color=red]- don’t need this can I just remove it[/color][/size]
- [size=3](setq der (vlax-curve-getfirstderiv pline[/size]
- [size=3] (vlax-curve-getparamatpoint pline midp)))[/size]
- [size=3](if (zerop (cadr der))[/size]
- [size=3] (setq ang (/ pi 2))[/size]
- [size=3] (setq ang (- pi (atan (/ (car der) (cadr der)))))[/size]
- [size=3] )[/size]
- [size=3](initget 6)[/size]
- [size=3](setq hgt (getdist "\nEnter text height <5.0>: ")) [color=red]- can this just be (set hgt 50))[/color][/size]
- [size=3](if (not hgt)(setq hgt 5.))[/size]
- [size=3](initget 6) [color=red]- what is (initget 6) ??[/color][/size]
- [size=3](setq gap (getdist "\nEnter distance of the text offset <2.5>: ")) [/size]
- [color=red][size=3]- can this be (setq gap 75)[/size][/color]
- [size=3](if (not gap)(setq gap 2.5)) [color=red]- can I delete these[/color][/size]
- [size=3](setq txp (polar midp ang gap))[/size]
- [size=3](setq pref (getstring T "\nEnter label prefix <920>: ")) [/size]
- [size=3](if (eq "" pref)(setq pref "920")) [color=red]can all this just be :-[/color][/size]
- [size=3](setq pref (strcat pref " (")) [color=red](setq pref (strcat pref “>(“))[/color][/size]
- [size=3](setq txt (strcat pref [color=red]I want the prefix to be a >[/color][/size]
- [size=3]"%<\\AcObjProp Object(%<\\_ObjId "[/size]
- [size=3] (itoa oid)[/size]
- [size=3] ">%).Length \\f "%lu2%pr2">% m)");--> number of decimals = 1[/size]
- [size=3]) [/size]
- [color=red][size=3]I want it to only 1 decimal place ie 7.4m[/size][/color]
- [size=3](setq mtx (vlax-invoke acsp 'AddMText txp 0.0 txt)[/size]
- [size=3] )[/size]
- [size=3](setq ang (- ang (/ pi 2)))[/size]
- [size=3](setq ang (cond [/size]
- [size=3] ((> pi ang (/ pi 2))(- pi ang))[/size]
- [size=3] ((> (* pi 1.5) ang pi)(- ang pi))[/size]
- [size=3] ((> (* pi 2) ang (* pi 1.5))(- (* pi 2) ang))[/size]
- [size=3] (T ang))[/size]
- [size=3] )[/size]
- [size=3](vlax-put mtx 'AttachmentPoint 5 )[/size]
- [size=3](vlax-put mtx 'InsertionPoint txp)[/size]
- [size=3](vlax-put mtx 'Height hgt)[/size]
- [size=3](vlax-put mtx 'Rotation ang)[/size]
- [size=3](vla-update mtx)[/size]
- [size=3](vlax-put mtx 'layer "TL - LD - Scanlight Interconnecting Dimension") - [color=red]does this go here?[/color][/size]
- [size=3])[/size]
- [size=3] )[/size]
- [size=3] (princ)[/size]
- [size=3] )[/size]
- [size=3](princ "\n Start command with SCANLINE ...")[/size]
- [size=3](princ)[/size]
- [size=3]; +---------+---------+---------+---------+---------+---------+---------+ ;[/size]
|