东距和北距Lisp路由
大家好我是这个论坛的新手,所以如果之前有人问我这个问题,请原谅我(我做了搜索,没有找到我想要的东西)。
现在是否有人使用lisp例程等,该例程可以同时生成X和Y坐标,并将一个坐标放置在另一个坐标之上,并使用指示原点的引线或圆选项(请参见随附的gif)。
我必须在工作中随时制作放样计划,以便对建筑物、停车场和道路进行放样。
我知道AutoCAD的“坐标”命令,但这只会同时执行X或Y。
我还想选择以米或毫米为单位生成坐标。我倾向于在mm中工作,但由于要显示的数字较少,所以生成以米为单位的co。
非常感谢您的帮助/建议。
当做
2007年CAD猴子冠军
我有一对夫妇,mm和m。但没有领导。我还有一个也提供了作为RL的Z值。如果你想要他们,就喊。 你好
听起来他们可能有用,如果我能有一个副本,这将是伟大的,我可能能够定制一点。
干杯 好的,给你。原始配置文件是米,需要相关的配置文件。另外两个(后缀mm)是最近才为Tiger重写的,即mm。我认为它们比我写的原件好多了。
坐标。拉链 谢谢你的帮助
CAD猴子 你们有并没有考虑过用这些信息更新一个奇特的区块,我们只是复制区块然后选取点。十、 Y、Z属性已更新。 你们是否希望能够选择一个点,并有一个和北纬和东纬相关联的领导者?如果是这样的话,我有一个这样做的常规,如果你需要,请告诉我。。 这听起来像是块的作业,其中字段使用块的插入点作为其属性,或类似的内容。 试试这个
(defun layer_set (lyr col ltp)
(setvar "cmdecho" 0)
(if (tblsearch "layer" lyr)
(command "._-layer" "t" lyr "u" lyr "on" lyr"s" lyr "")
(command "._-layer" "m" lyr "c" col lyr "lt" ltp lyr ""))
)
(or (vl-load-com))
(defun C:lne (/ *debug* *error* acsp adoc ang anno atp
col lead lyr mtextobj mtpt nodpt
ort osm pt ptlist ss tmparray
tmpvar txh xval yval
)
(defun *Error* (msg)
(cond ((not msg))
((member msg '("Function cancelled" "quit / exit abort")))
((princ (strcat "\nError: " msg))
(cond (*Debug* (vl-bt)))
)
)
(setvar "cmdecho" 1)
(setvar "delobj" 1)
(if osm (setvar "osmode" osm))
(if ort (setvar "orthomode" ort))
(if lyr (setvar "clayer" lyr))
(if col (setvar "cecolor" col))
(vla-endundomark
(vla-get-activedocument (vlax-get-acad-object))
)
)
(or adoc
(setq adoc (vla-get-activedocument
(vlax-get-acad-object)
)
)
)
(or acsp
(setq acsp (if (= (getvar "TILEMODE") 0)
(vla-get-paperspace
adoc
)
(vla-get-modelspace
adoc
)
)
)
)
(vla-endundomark adoc)
(vla-startundomark adoc)
(setq osm (getvar "osmode"))
(setq lyr (getvar "clayer"))
(setq ort (getvar "orthomode"))
(setq col (getvar "cecolor"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(initget 6)
(setq txh (getreal (strcat "\nEnter New Value For Text Height <" (rtos (getvar "dimtxt")) "> :")))
(if (not txh)(setq txh (getvar "dimtxt")))
(setvar "textsize" txh)
(if (not (tblsearch "block" "ArrowDonut"))
(progn
(setq ss (ssadd))
(setvar "delobj" 1)
(layer_set "ANNO-LEADER" "10" "Continuous")
(setvar "cecolor" "256")
(command "._circle" "0,0,0" 1.0);<-change outer diameter of donut here
(ssadd (entlast) ss)
(command "._circle" "0,0,0" 0.75);<-change inner diameter of donut here
(ssadd (entlast) ss)
(command "._-block" "ArrowDonut" "0,0,0" ss "")
)
)
(while
(setq pt (getpoint "\nSpecify the starting point of the leader (press Enter to exit): \n"))
(setq ptlist (cons pt ptlist))
(while (setq
pt (getpoint "\nSpecify next point press Enter to finish: " pt)
)
(setq ptlist (cons pt ptlist)
)
)
(setq ptlist (reverse ptlist))
(setq ang (angle (car ptlist )(cadr ptlist)))
(if (< (/ pi 2) ang (* pi 1.5))
(setq atp acAttachmentPointMiddleRight)
(setq atp acAttachmentPointMiddleLeft))
(setq nodpt (car ptlist)
xval (rtos (car nodpt) 2 3); easting
yval (rtos (cadr nodpt) 2 3);northing
anno (strcat "N " yval "\\PE " xval)
mtpt (vlax-3d-point (cadr ptlist)))
(layer_set "ANNO-TEXT" "2" "Continuous")
(setvar "cecolor" "256")
(setq mtextobj (vla-addmtext
acsp
mtpt
0.0
anno
)
)
(vla-put-height mtextobj txh)
(vla-put-attachmentPoint mtextobj atp)
(vla-put-insertionPoint mtextobj mtpt)
(setq ptlist (apply 'append ptlist))
(setq tmparray
(vlax-make-safearray
vlax-vbdouble
(cons 0 (- (length ptlist) 1))
)
)
(vlax-safearray-fill tmparray ptlist)
(setq tmpvar (vlax-make-variant tmparray))
(layer_set "ANNO-LEADER" "10" "Continuous")
(setvar "cecolor" "256")
(setq lead (vla-addleader acsp tmpvar mtextobj acLineWithArrow))
(vla-put-verticaltextposition lead acvertcentered)
(vla-put-arrowheadblock lead "arrowdonut")
(vla-put-arrowheadsize lead (* 0.5 txh))
(vla-update lead)
(setq ptlist nil);optional
)
(vla-regen adoc acactiveviewport);optional
(*Error* nil)
(princ)
)
(princ "\n\t\t\t |-----------------------------|\n")
(princ "\n\t\t\t<|Start with LNE to execute|>\n")
(princ "\n\t\t\t |-----------------------------|\n")
http://www.cadtutor.net/forum/showthread.php?t=10812&highlight=ordi
有X,Y坐标,如果你想的话,我可以改变它。
页:
[1]
2